Tag: sqlite

如何将datepicker格式转换为dd-MM-yyyy

在我的数据库表中,我使用日期格式插入日期,如04-04-2015 。 然后使用datePicker通过变量from_date我选择相同的日期,那个日期就像4-4-2015 。 如果我想使用从datepicker中选择的日期选择行,即使行可用,我也不会获得任何行。 如何将datePicker日期从4-4-2015更改为04-04-2015,或者插入日期如4-4-2015而不是04-04-2015 ? private DatePickerDialog.OnDateSetListener myDateListener = new DatePickerDialog.OnDateSetListener() { @Override public void onDateSet(DatePicker arg0, int year, int month, int day) { dateView.setText(new StringBuilder() // Month is 0 based so add 1 .append(day).append(“-“) //day .append(month+1).append(“-“)//month .append(year).append(” “));//year from_date=dateView.getText().toString(); startActivity(new Intent(datefrom.this, dateto.class)); } }; 插入代码: contentvalues.put(VivzHelper.TX_DATE, new SimpleDateFormat(“dd-MM-yyyy”).format(new Date()));

android.database.CursorIndexOutOfBoundsException …再一次

所以,我在我的应用程序的用户崩溃报告中有这个错误。 这是报告: android.database.CursorIndexOutOfBoundsException: Index 0 requested, with a size of 0 at android.database.AbstractCursor.checkPosition(AbstractCursor.) at android.database.AbstractWindowedCursor.checkPosition(AbstractWindowedCursor.) at android.database.AbstractWindowedCursor.getString(AbstractWindowedCursor.java:50) at rs.androidaplikacije.zastaveigradovi.Kviz10Hard.nextQuestionGrad(Kviz10Hard.) at rs.androidaplikacije.zastaveigradovi.Kviz10Hard.access$1(Kviz10Hard.) at rs.androidaplikacije.zastaveigradovi.Kviz10Hard$2.run(Kviz10Hard.java:68) at android.os.Handler.handleCallback(Handler.) at android.os.Handler.dispatchMessage(Handler.java:92) at android.os.Looper.loop(Looper.) at android.app.ActivityThread.main(ActivityThread.) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.) at com.android.internal.os.ZygoteInit.main(ZygoteInit.) at dalvik.system.NativeStart.main(Native Method) 这是提到的代码: private void nextQuestionGrad() { flag.setVisibility(View.GONE); dodatnoPitanje.setVisibility(View.VISIBLE); TestAdapter mDbHelper = new TestAdapter(this); […]

如何从(SQLite)数据库加载的JTable中插入,更新和删除项目

我目前有2个类,一个显示GUI,一个是从数据库中获取项目。 我的代码如下: 此代码用于在GUI中显示JTable public void table() { if(SOMR.tableCall() == true) { this.columnNames = SOMR.getCol(); this.data = SOMR.getData(); JTable table = new JTable(data, columnNames) { public Class getColumnClass(int column) { for (int row = 0; row < getRowCount(); row++) { Object o = getValueAt(row, column); if (o != null) { return o.getClass(); } } return Object.class; […]

在sqlite数据库android中保存和检索键值对

美好的一天,基本上我正在寻找一种方法来检索和保存关于sqlite数据库中的列项的键值对,以便我可以更新列表视图。 示例:如果我有一个名为“group”的列,其项目条目名为“family”; 关于该项目,我希望能够保存或检索仅为该项目“家庭”的联系人列表(姓名和号码)。 同一个项目条目。 什么是最好的方法呢? 我尝试通过json使用Hashmap的ArrayList将联系人详细信息保存在表的列中。 但这样做有麻烦。 我试过这个: 保存时: //already have the name and number from using the android contacts api final ArrayList<HashMap> contacts = new ArrayList<HashMap>(); HashMap map = new HashMap(); map.put(name, number); contacts.add(map); JSONObject json_contacts = new JSONObject(); try { json_contacts.put(“contacts_Arrays”, new JSONArray(contacts)); arraylist_to_string = json_contacts.toString(); } catch (JSONException e) { // TODO […]

Android SQLite如何获取特定列:行值

我有一个数据库,我正在使用它进行查询 Cursor mCursor = mapDb.query(MY_TABLE, new String[] {KEY_ONEID, KEY_TWOID}, “trim(“+KEY_TWOID + “) != ” “, null, null, null, null); 在SQL术语中字面意思是: SELECT OneId, TwoId FROM auth WHERE trim(TwoId) != ” 使用原始SQL查询,这在我的SQLite浏览器中可以显示有问题的行,因此Cursor对象应该包含相同的结果。 其次在我的java方法中,我使用一个条件来检查这个结果是否有任何结果 if(mCursor.getColumnIndex(KEY_ONEID) > -1) //if > -1 then the mCursor returned a row { if(mCursor.getString(mCursor.getColumnIndex(KEY_ONEID)).contains(id)) //breaks here return mCursor.getString(mCursor.getColumnIndex(KEY_TWOID)); else return “”; } 但由于某种原因,即使mCursor hashmap应该返回所有值,这是下一个条件语句 […]

SQLite – 在Android应用中加速4,000行插入

public synchronized void updateStop(ArrayList beanList){ SQLiteDatabase db = getWritableDatabase(); String query = “DELETE FROM ‘stop'”; db.execSQL(query); for(StopBean bean : beanList){ String atco_code = bean.getAtco_code(); String name = bean.getName(); String locality = bean.getLocality(); String bearing = bean.getBearing(); String latitude = bean.getLatitude()+””; String longitude = bean.getLongitude()+””; ContentValues values = new ContentValues(); values.put(“atco_code”, atco_code); values.put(“name”, name); values.put(“locality”, locality); […]

如何将SQLite数据库打包到jar中?

我有一个Java项目,它使用一个小的SQLite数据库。 现在我想创建一个可执行jar文件,里面有Database文件和驱动程序( sqlitejdbc-v056 ),只有一个包含所有内容的包。 我的包结构如下所示: Bank | | +—src | … | +—bin | … | +—data | bank_database.db | +—img | ajax-refresh-icon.gif | +—doc | Datenbankschema.uxf | \—resources sqlitejdbc-v056.jar 我使用这个小Java类访问数据库: package model; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class DBHandle { Connection conn; public DBHandle() throws Exception { Class.forName(“org.sqlite.JDBC”); } public Connection openConnection() […]

使用SQLite处理POJO的DAO创建的更好模式

我正在开发一个使用SQLCipher的Android应用程序, 用于Android的ORMLite处理与SQLite和Jackson进行解析的POJO存储。 我想知道是否会有一个更好的模式,我正在使用(由stayforit推荐)获得对应于给定的实体类的DAO。 我有超过30个实体类,我不断添加一些时间,每次,我必须创建一个看起来与前一个完全相同的DAO类。 我如何使用generics类进行推广? 这是我的DbManager类: public class DbManager { private static DbManager instance; private CipherDbHelper dbHelper; private SecureSharedPreferences settings; private DbManager() { } private DbManager(Context context, String password) { SQLiteDatabase.loadLibs(context); dbHelper = new CipherDbHelper(context, password); } public static void init(Context context, String password) { instance = new DbManager(context, password); } public static DbManager getInstance() […]

为什么以及在哪里调用setLocale

我需要为我的应用程序创建一个SQLite DB。 我需要以几种欧洲语言存储文本,因此会有大量的重音字符和其他奇怪的标记。 我正在扩展SQLiteOpenHelper 。 检查.db文件我注意到有一个名为android_metadata的额外表。 有一个名为locale列,默认情况下在我的模拟器中设置为“en_US”。 我已经开发了开发人员指南中的SQLite部分,以及在SO和Google中搜索过的SQLiteOpenHelper和SQLiteDatabase的javadocs,但我无处可找到将语言环境设置到数据库的正确位置,或者是否真的是必要的。 猜测它应该在DB创建时完成,我尝试在helper的onCreate方法中调用db.setLocale ,但是我得到了这个exception: BEGIN TRANSACTION failed setting locale FATAL EXCEPTION: Thread-9 android.database.sqlite.SQLiteException: cannot start a transaction within a transaction at android.database.sqlite.SQLiteDatabase.native_setLocale(Native Method) at android.database.sqlite.SQLiteDatabase.setLocale(SQLiteDatabase.java:1950) 这是我的方法的样子: public class MyOpenHelper extends SQLiteOpenHelper { @Override public void onCreate(SQLiteDatabase db) { db.setLocale(new Locale(“en”,”EN”)); … } … } 以下是我的问题: 我真的需要将语言环境设置为DB吗? 我真的不需要开箱即用的查询,因为我总是可以自己对结果进行排序。 我应该在哪里调用setLocale ?

在Android中使用SQLite和ContentProvider设置_ID字段

我正在尝试在Android应用中设置ContentProvider来保存有关房屋的信息。 我希望能够将_ID字段设置为与外部数据库中的ID字段相同(程序将ContentProvider与此外部数据库同步)。 这样做的原因是我希望能够像这样引用ID: content://com.example.acme.propertyprovider/properties/23 其中23是外部数据库和内部数据库中的相同ID。 以下只会导致错误“android.database.SQLException:无法将行插入内容://com.example.acme.propertyprovider/properties ContentValues values = new ContentValues(); values.put(Properties._ID, 23); values.put(Properties.COLUMN_NAME_ROAD, “123 Sample Property”); values.put(Properties.COLUMN_NAME_RENT, 320); getContentResolver().insert(Properties.CONTENT_URI, values);