当前位置: 首页 > 科技观察

AndroidSQLiteOpenHelper应用

时间:2023-03-15 17:25:42 科技观察

1.SQLiteOpenHelper  SQliteOpenHelper是一个管理数据库创建和版本管理的抽象类。要使用它,必须实现它的nCreate(SQLiteDatabase)、onUpgrade(SQLiteDatabase,int,int)方法  onCreate:在第一次创建数据库时执行,比如创建表、初始化数据等。  onUpgrade:当数据库需要更新时执行,例如删除长期存在的表和创建新表。2.实现代码包xqh.utils;importandroid.content.Context;importandroid.database.sqlite.SQLiteDatabase;importandroid.database.sqlite.SQLiteOpenHelper;importandroid.database.sqlite.SQLiteDatabase.CursorFactory;publicclassDBHelperextendsSQLiteOpenHelper{//数据库版本privatestaticfinalintVERSION=1;//创建一个新表Stringsql="createtableifnotexistsTestUsers"+"(idintprimarykey,namevarchar,sexvarchar)";publicDBHelper(Contextcontext,Stringname,CursorFactoryfactory,intversion){super(context,name,factory,version);}publicDBHelper(Contextcontext,Stringname,intversion){this(context,name,null,version);}publicDBHelper(Contextcontext,Stringname){this(context,name,VERSION);}@OverridepublicvoidonCreate(SQLiteDatabasedb){db.execSQL(sql);}@OverridepublicvoidonUpgrade(SQLiteDatabasedb,intoldVersion,intnewVersion){}}3.SQLite的使用  Android提供了一个名为SQLiteDatabase的类,它封装了一些操作数据库的API。可用于实现基本的CRUD操作,可通过getWritableDatabase()和getReadableDatabase()获取数据库实例。4、实现代码包xqh.sqlite;importxqh.utils.DBHelper;importandroid.app.Activity;importandroid.database.SQLException;importandroid.database.sqlite.SQLiteDatabase;importandroid.os.Bundle;importandroid.widget.Button;importandroid.util。日志;导入安卓。看法。看法;导入安卓。看法。看法。OnClickListener;;;@OverrideprotectedvoidonCreate(BundlesavedInstanceState){//TODOAuto-generatedmethodstubsuper.onCreate(savedInstanceState);setContentView(R.layout.sqlitetest);OpenDb();textBtn=(Button)findViewById(R.id.btnHeader););//btnCreateDb=(Button)findViewById(R.id.btnCreateDb);//btnCreateDb.setOnClickListener(createDbListener);////btnCreateTb=(Button)findViewById(R.id.btnCreateTb);//btnCreateTb.setOnClickListener(createTbListener);btnInsert=(Button)findViewById(R.id.btnInsert);btnInsert.setOnClickListener(insertTbListener);btnUpdate=(按钮)findViewById(R.id.btnUpdate);btnUpdate.setOnClickListener(updateTbListener);btnDelete=(按钮)findViewById(R.id.btnDelete);btnDelete.setOnClickListener(deleteTbListener);}publicOnClickListenerdeleteTbListener=newOnClickListener(){publicvoidonClick(Viewv){DeleteTb();}};publicOnClickListenerupdateTbListener=newOnClickListener(){publicvoidonClick(Viewv){UpdateTb();}};publicOnClickListenerinsertTbListener=newOnClickListener(){publicvoidonClick(Viewv){InsertTb();}};//publicOnClickListenercreateDbListener=newOnClickListener(){//publicvoidonClick(Viewv){//CreateDatabase("TestDb01");////};//publicOnClickListenercreateTbListener=newOnClickListener(){//publicvoidonClick(Viewv){//CreateTable();//}//};///**//*新建一个数据库//*@paramdbName//*@return//*///publicSQLiteDatabaseCreateDatabase(StringdbName){//dbHelper=newDBHelper(this,dbName);//returndbHelper.getWritableDatabase();////***新建一个表*@paramdb*/publicvoidCreateTable(){db=dbHelper.getWritableDatabase();Stringsql="createtableifnotexistsTestUsers"+"(idintprimarykey,namevarchar,sexvarchar)";try{db.execSQL(sql);}catch(SQLExceptione){Log.i("err","createtablefailed");}}/***插入数据*/publicvoidInsertTb(){db=dbHelper.getWritableDatabase();Stringsql="insertintoTestUsers(id,name,sex)values(2,'hongguang','men')";try{db.execSQL(sql);}catch(SQLExceptione){Log.i("err","insertfailed");}}/***更新数据*/publicvoidUpdateTb(){db=dbHelper.getWritableDatabase();Stringsql="UpdateTestUserssetname='anhong',sex='men'whereid=2";try{db.execSQL(sql);}catch(SQLExceptione){Log.i("err","updatefailed");}}/***删除数据*/publicvoidDeleteTb(){db=dbHelper.getWritableDatabase();Stringsql="deletefromTestUserswhereid=2";try{db.execSQL(sql);}catch(SQLExceptione){Log.i("err","deletefailed");}}/***打开数据库*/publicvoidOpenDb(){dbHelper=newDBHelper(this,"TestDb01");db=dbHelper.getWritableDatabase();}/***关闭数据库*/publicvoidCloseDb(){dbHelper.close();}@OverrideprotectedvoidonDestroy(){极好的。onDestroy();if(db!=null){db.close();}if(dbHelper!=null){dbHelper.close();}}}5.一些SQLite操作命令5.1adbshell进入命令模式  5.2cd文件名进入文件  5.3ls或ls-l查看目录下文件  5.4sqlite3数据库名进入数据库  5.5.schema查看数据库下信息  5.6ctrl+d退出sqlite模型