最近在尝试学习android应用中对数据库的操作。
我写了一个工程,在通过继承一个SQLiteOpenHelper中重载了一下函数private static final String DATABASE_CREATE =
"CREATE TABLE notes1("
+ "_id integer primary key,"
+"note text,"
+"created integer,"
+"modified integer"
+");";
@Override
public void onCreate(SQLiteDatabase arg0) {
// TODO Auto-generated method stub
arg0.execSQL(DATABASE_CREATE);
}但是我发现这个数据库无法通过asb shell来查看到。而且在我再次打开数据库时,我之前往数据库中写入的全部内容全部没有了。给我的感觉就像上次创建的数据库没有了。重新创建了一个。我不知道这是什么原因。
希望有大牛能给我解答一下。谢谢
我写了一个工程,在通过继承一个SQLiteOpenHelper中重载了一下函数private static final String DATABASE_CREATE =
"CREATE TABLE notes1("
+ "_id integer primary key,"
+"note text,"
+"created integer,"
+"modified integer"
+");";
@Override
public void onCreate(SQLiteDatabase arg0) {
// TODO Auto-generated method stub
arg0.execSQL(DATABASE_CREATE);
}但是我发现这个数据库无法通过asb shell来查看到。而且在我再次打开数据库时,我之前往数据库中写入的全部内容全部没有了。给我的感觉就像上次创建的数据库没有了。重新创建了一个。我不知道这是什么原因。
希望有大牛能给我解答一下。谢谢
解决方案 »
- 跪求android4.0开发入门书籍Pdf
- android 把第三方apk打包到System.img的问题
- 怎样控制imageview使图片充满imageview
- 只剩50分了,求解答,下载暂停功能..谢谢.
- 安装sdk,出现failed to fetch url http:....的错误
- android 获取声音
- userdata.img镜像的一个问题
- 关于android地图的编码问题
- 读取sd卡中多媒体文件名到列表中不能成功,求改正
- 在service中循环获取蓝牙设备 list_Device一直为空,在activity中测试不为空
- Activity 中 onTouchEvent 没有执行...
- WebView访问wiki时自动重定向,该怎么解决
启动模拟器
电脑运行cmd进入android-sdk-windows下platfom-tools目录
adb shell
cd data
cd data
cd 工程包名
cd databases
里面就有你创建的数据库
我这么做过了。但是数据库里面没有我创建的表。比如调用.schema没有东西显示出来。然后我的工程可以给这个表添加项。然后显示出来。但是下次我启动应用后我显示出来的内容还是空的。不知道是为什么。
import android.content.Context;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;public class NotesDbAdapter{
private static final String DATABASE_NAME = "notes.db";
private static final int DATABASE_VERSION = 1;
private static final String DATABASE_TABLE = "notes1";
private static final String DATABASE_CREATE =
"CREATE TABLE notes1("
+ "_id integer primary key,"
+"note text,"
+"created integer,"
+"modified integer"
+");";
private static class DatabaseHelper extends SQLiteOpenHelper { public DatabaseHelper(Context context, String name,
CursorFactory factory, int version) {
super(context, name, factory, version);
// TODO Auto-generated constructor stub
} @Override
public void onCreate(SQLiteDatabase arg0) {
// TODO Auto-generated method stub
arg0.execSQL(DATABASE_CREATE);
} @Override
public void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) {
// TODO Auto-generated method stub
arg0.execSQL("drop table if exists" + DATABASE_TABLE);
onCreate(arg0);
}
}
private Context mCtx = null;
private DatabaseHelper dbHelper;
private SQLiteDatabase db;
public NotesDbAdapter(Context ctx) {
this.mCtx = ctx;
}
public NotesDbAdapter open() throws SQLException {
dbHelper = new DatabaseHelper(mCtx, null, null, 1);
db = dbHelper.getWritableDatabase();
return this;
}
public void close() {
dbHelper.close();
}
public static final String KEY_ROWID = "_id";
public static final String KEY_NOTE = "note";
public static final String KEY_CREATED = "created";
String[] strCols = new String[] {
KEY_ROWID,
KEY_NOTE,
KEY_CREATED
};
public Cursor getall() {
//return db.rawQuery("select * from notes1", null);
return db.query(
DATABASE_TABLE,
strCols,
null,
null,
null,
null,
null
);
}
public long create(String Note) {
Date now = new Date(0);
ContentValues args = new ContentValues();
args.put(KEY_NOTE, Note);
args.put(KEY_CREATED, now.getTime());
return db.insert(DATABASE_TABLE, null, args);
}
public boolean delete(long rowId) {
return db.delete(DATABASE_TABLE, KEY_ROWID + "=" + rowId, null) > 0;
}
//query single entry
public Cursor get(long rowId) throws SQLException {
Cursor mCursor = db.query(
true,
DATABASE_TABLE,
new String[] {KEY_ROWID, KEY_NOTE, KEY_CREATED},
KEY_ROWID + "+" + rowId,
null, null, null, null, null);
if(mCursor != null) {
mCursor.moveToFirst();
}
return mCursor;
}
//update
public boolean updata(Long rowId, String note ) {
ContentValues args = new ContentValues();
args.put(KEY_NOTE, note);
return db.update(DATABASE_TABLE, args, KEY_ROWID + "=" + rowId, null) > 0;
}
}
import android.app.ListActivity;
import android.content.Intent;
import android.database.Cursor;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.SimpleCursorAdapter;public class DummyNoteActivity extends ListActivity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setContentView(R.layout.main);
setAdapter();
}
private String[] note_array = {
"gasolin",
"crota",
"louk",
"magicion"
};
private NotesDbAdapter mDbHelper;
private Cursor mNotesCursor;
private void setAdapter(){
mDbHelper = new NotesDbAdapter(this);
mDbHelper.open();
ListAdapter adapter = new ArrayAdapter<String>(
this,
android.R.layout.simple_list_item_1,
note_array
);
setListAdapter(adapter);
fillData();
}
private void fillData() {
mNotesCursor = mDbHelper.getall();
startManagingCursor(mNotesCursor);
String[] from = new String[]{"note"};
int[] to = new int[] {android.R.id.text1};
SimpleCursorAdapter adapter = new SimpleCursorAdapter
(this, android.R.layout.simple_list_item_1, mNotesCursor, from, to);
setListAdapter(adapter);
}
private int mNoteNumber = 1;
protected static final int MENU_INSERT = Menu.FIRST;
protected static final int MENU_DELETE = Menu.FIRST + 1; @Override
public boolean onCreateOptionsMenu(Menu menu) {
// TODO Auto-generated method stub
super.onCreateOptionsMenu(menu);
menu.add(0, MENU_INSERT, 0, "新增记事");
menu.add(0, MENU_DELETE, 0, "删除记事");
return super.onCreateOptionsMenu(menu);
} @Override
public boolean onOptionsItemSelected(MenuItem item) {
// TODO Auto-generated method stub
switch(item.getItemId()) {
case MENU_INSERT:
String noteName = "Note " + mNoteNumber++;
mDbHelper.create(noteName);
fillData();
return true;
case MENU_DELETE:
mDbHelper.delete(getListView().getSelectedItemId());
fillData();
return true;
}
return super.onOptionsItemSelected(item);
}
private static final int ACTIVITY_EDIT = 0x1001; @Override
protected void onListItemClick(ListView l, View v, int position, long id) {
// TODO Auto-generated method stub
super.onListItemClick(l, v, position, id);
Intent intent = new Intent(this, NoteEdit.class);
intent.putExtra(NotesDbAdapter.KEY_ROWID, id);
startActivityForResult(intent, ACTIVITY_EDIT);
} @Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);
fillData();
}
}
sqlite> .databases执行看看, 你数据库是main 还是temp