1、使用Sqlite的关键是创建一类,这个类继承SQLiteOpenHelper,继承的类必须重写三个方法:构造方法,onCreate方法,onUpgrate方法
2、SQLiteDatabase是直接操作数据库的对象,可以使用SQLiteOpenHelper的getReadableDatabase或 getWritableDatabase方法得到SQLiteDatabase对象。具体使用这两个方法得到的SQLiteDatabase对象的不同 点,根据方法名就可以看出。一个是得到可读的,一个是得到可写的。
实例代码:
1、布局文件
XML/HTML代码
- <?xmlversion="1.0"encoding="utf-8"?>
- <LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
- android:orientation="vertical"android:layout_width="fill_parent"
- android:layout_height="fill_parent">
- <Buttonandroid:id="@+id/createDatabase"android:layout_width="fill_parent"
- android:layout_height="wrap_content"android:text="CreateDatabase"></Button>
- <Buttonandroid:id="@+id/upgrateDatabase"android:layout_width="fill_parent"
- android:layout_height="wrap_content"android:text="UpgrateDatabase"></Button>
- <Buttonandroid:id="@+id/insert"android:layout_width="fill_parent"
- android:layout_height="wrap_content"android:text="Insert"></Button>
- <Buttonandroid:id="@+id/update"android:layout_width="fill_parent"
- android:layout_height="wrap_content"android:text="Update"></Button>
- <Buttonandroid:id="@+id/query"android:layout_width="fill_parent"
- android:layout_height="wrap_content"android:text="Query"></Button>
- <Buttonandroid:id="@+id/delete"android:layout_width="fill_parent"
- android:layout_height="wrap_content"android:text="Delete"></Button>
- </LinearLayout>
2、自定义继承SQLiteOpenHelper的类,重写三个方法
Java代码
- packageyyl.db;
- importandroid.content.Context;
- importandroid.database.sqlite.SQLiteDatabase;
- importandroid.database.sqlite.SQLiteDatabase.CursorFactory;
- importandroid.database.sqlite.SQLiteOpenHelper;
- publicclassDatabaseHelperextendsSQLiteOpenHelper{
- publicDatabaseHelper(Contextcontext,Stringname,CursorFactoryfactory,intversion)
- {
- super(context,name,factory,version);
- }
- @Override
- publicvoidonCreate(SQLiteDatabasedb){
- System.out.println("Creaetadatabasetest_userandtableuser");
- db.execSQL("createtableuser(idint,namevarchar(20))");
- }
- @Override
- publicvoidonUpgrade(SQLiteDatabasedb,intoldVersion,intnewVersion){
- System.out.println("upgrateadatabase");
- }
- }
3、数据库操作代码
Java代码
- packageyyl.sqlite;
- importyyl.db.DatabaseHelper;
- importandroid.app.Activity;
- importandroid.content.ContentValues;
- importandroid.database.Cursor;
- importandroid.database.sqlite.SQLiteDatabase;
- importandroid.os.Bundle;
- importandroid.view.View;
- importandroid.widget.Button;
- publicclassSqliteActivityextendsActivity{
- privateButtoncreateDatabase=null;
- privateButtonupgrateDatabase=null;
- privateButtoninsert=null;
- privateButtonupdate=null;
- privateButtonquery=null;
- privateButtondelete=null;
- @Override
- publicvoidonCreate(BundlesavedInstanceState){
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- createDatabase=(Button)findViewById(R.id.createDatabase);
- upgrateDatabase=(Button)findViewById(R.id.upgrateDatabase);
- insert=(Button)findViewById(R.id.insert);
- update=(Button)findViewById(R.id.update);
- query=(Button)findViewById(R.id.query);
- delete=(Button)findViewById(R.id.delete);
- createDatabase.setOnClickListener(newView.OnClickListener(){
- @Override
- publicvoidonClick(Viewv){
- DatabaseHelperdatabaseHelper=newDatabaseHelper(SqliteActivity.this,"sqlite_user",null,1);
- databaseHelper.getReadableDatabase();
- }
- });
- upgrateDatabase.setOnClickListener(newView.OnClickListener(){
- @Override
- publicvoidonClick(Viewv){
- DatabaseHelperdatabaseHelper=newDatabaseHelper(SqliteActivity.this,2);
- databaseHelper.getReadableDatabase();
- }
- });
- insert.setOnClickListener(newView.OnClickListener(){
- @Override
- publicvoidonClick(Viewv){
- ContentValuesvalues=newContentValues();
- values.put("id",1);
- values.put("name","yangyulin");
- DatabaseHelperdbHelper=newDatabaseHelper(SqliteActivity.this,"test_user",1);
- SQLiteDatabasedb=dbHelper.getWritableDatabase();
- db.insert("user",values);
- }
- });
- update.setOnClickListener(newView.OnClickListener(){
- @Override
- publicvoidonClick(Viewv){
- DatabaseHelperdbHelper=newDatabaseHelper(SqliteActivity.this,1);
- SQLiteDatabasedb=dbHelper.getWritableDatabase();
- ContentValuesvalues=newContentValues();
- values.put("name","newSky");
- db.update("user",values,"id=?",newString[]{"1"});
- }
- });
- query.setOnClickListener(newView.OnClickListener(){
- @Override
- publicvoidonClick(Viewv){
- DatabaseHelperdbHelper=newDatabaseHelper(SqliteActivity.this,1);
- SQLiteDatabasedb=dbHelper.getReadableDatabase();
- Cursorcursor=db.query("user",newString[]{"id","name"},newString[]{"1"},null);
- while(cursor.moveToNext())
- {
- Stringname=cursor.getString(cursor.getColumnIndex("name"));
- System.out.println("name-->"+name);
- }
- }
- });
- delete.setOnClickListener(newView.OnClickListener(){
- @Override
- publicvoidonClick(Viewv){
- DatabaseHelperdbHelper=newDatabaseHelper(SqliteActivity.this,1);
- SQLiteDatabasedb=dbHelper.getWritableDatabase();
- db.delete("user",newString[]{"1"});
- }
- });
- }
- }
查看数据库:
1、在CMD命令行下输入以下命令
>adb shelll
#>cd data/data/yyl.sqlite
#>cd databases
#>sqlite3 test_user
#>.schema
#>select * from user; (编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|