Java Android SQLite警告
我在SQLite中有一些奇怪的警告。 这是什么意思 11-30 13:05:23.653 9964-9964/com.hikari.dev.servermonitor D/SQLiteDatabase:开放数据库 java.lang.Throwable:stacktrace 位于android.database.sqlite.SQLiteDatabase.open(SQLiteDatabase.java:815) 位于android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:714) 位于android.app.ContextImpl.openOrCreateDatabase(ContextImpl.java:578) 位于android.content.ContextWrapper.openOrCreateDatabase(ContextWrapper.java:269) 位于android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:223) 位于android.database.sqlite.SQLiteOpenHelper.getReadableDatabase(SQLiteOpenHelper.java:187) ->位于com.hikari.dev.servermonitor.main.onClick(main.java:40) 在android.view.view.performClick上(view.java:5269) 在android.view.view$PerformClick.run(view.java:21556) 位于android.os.Handler.handleCallback(Handler.java:815) 位于android.os.Handler.dispatchMessage(Handler.java:104) 位于android.os.Looper.loop(Looper.java:207) 位于android.app.ActivityThread.main(ActivityThread.java:5769) 位于java.lang.reflect.Method.invoke(本机方法) 在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run上(ZygoteInit.java:789) 位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:679) 数据库_helper.java(单例) main.javaJava Android SQLite警告,java,android,sqlite,Java,Android,Sqlite,我在SQLite中有一些奇怪的警告。 这是什么意思 11-30 13:05:23.653 9964-9964/com.hikari.dev.servermonitor D/SQLiteDatabase:开放数据库 java.lang.Throwable:stacktrace 位于android.database.sqlite.SQLiteDatabase.open(SQLiteDatabase.java:815) 位于android.database.sqlite.SQLiteDatabase.
(40) SQLiteDatabase database = database_helper.getInstance(this).getReadableDatabase();
在这里,我正在特定位置创建数据库:
public class MessageLocalDB extends SQLiteOpenHelper {
private static MessageLocalDB mDB;
private static final String MSG_TABLE_NAME = "message_table";
private static final String KEY_SRNO = "SRNO";
private static final String KEY_ENQUIRYID = "ENQUIRYID";
private static final String KEY_OPERATORID = "OPERATORID";
public static synchronized MessageLocalDB getInstance(Context context, String StrDBNAme){
if (mDB==null){
mDB= new MessageLocalDB(context.getApplicationContext(),StrDBNAme);
}
return mDB;
}
private MessageLocalDB(Context context, String StrDBNAme) {
super(context,StrDBNAme,null,1);
}
@Override
public void onCreate(SQLiteDatabase db) {
String strQueryComment = "create table " +
MSG_TABLE_NAME + "(SRNO string,ENQUIRYID string,OPERATORID string)";
db.execSQL(strQueryComment);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
String DROP_MSG_TABLE = "DROP TABLE IF EXISTS" + MSG_TABLE_NAME;
db.execSQL(DROP_MSG_TABLE);
}
public void insertMSG(String srno,String enquiryid,String operatorid,String operatorname,String message,String time,String msgtype){
SQLiteDatabase sqdb=getWritableDatabase();
sqdb.beginTransaction();
try{
ContentValues values= new ContentValues();
values.put(KEY_SRNO,srno);
values.put(KEY_ENQUIRYID,enquiryid);
values.put(KEY_OPERATORID,operatorid);
sqdb.insert(MSG_TABLE_NAME,null,values);
sqdb.setTransactionSuccessful();
}catch (Exception ee){ee.printStackTrace();}
finally {
sqdb.endTransaction();
sqdb.close();
}
}
public Cursor fetchMSG(int enquiryid){
SQLiteDatabase sqdb=getReadableDatabase();
return sqdb.rawQuery("select * from "+MSG_TABLE_NAME+" where "+KEY_ENQUIRYID+"=" + enquiryid + "", null);
}
}
在活动中:
MessageLocalDB msgDB;
String LocalDBMesage ="_chatdb.db";
String FinalLocalDBName = Environment.getExternalStorageDirectory().getAbsolutePath() + "/Android/data/" + LocalDBMesage;
msgDB= MessageLocalDB.getInstance(MainActivity.this,FinalLocalDBName);
并将数据写入数据库,如:
msgDB.insertMSG(strSr,strenquiryID,"2323","DIvyesh",currentMSG,fdfg,msgStatus);
并读取如下数据:
Cursor count=msgDB.fetchMSG(Integer.parseInt(strenquiryID));
您的logcat不完整,只需在数据库末尾添加.db即可name@Divyesh它没有帮助。try:在主活动数据库中\u helper dbhelper;dbhelper=database_helper.getInstance(getContext());注意,它只是一个以调试日志级别记录的堆栈跟踪。我看不出有什么问题。
Cursor count=msgDB.fetchMSG(Integer.parseInt(strenquiryID));