Android中使用SQLiteOpenHelper对SQLite数据库进行增删改查

 

SQLiteOpenHelper类给我们提供了两个方法。onCreate(SQLiteDatabasedb)和onUpgrade(SQLiteDatabase db, int oldVersion, intnewVersion)。

onCreate(SQLiteDatabasedb),当数据库被第一次创建时调用,一般将创建表等初始化操作在该方法中执行。其中参数表示数据库的名称。onUpgrade(SQLiteDatabse dv, int oldVersion,int new Version):当打开数据库时传入的版本号与当前的版本号不同时会调用该方法。具体实例看代码:

public class PersonSQLite extendsSQLiteOpenHelper {

 

   /**

    * 数据库的构造方法,用来定义数据库的名称、查询结果集,版本

    * @param context数据库创建的环境

    * @param name   数据库的名称

    * @param factory查询结果集

    * @param version数据库的版本,最小为1

    */

   publicPersonSQLite(Contextcontext) {

       super(context,"person.db",null, 1);

       // TODO Auto-generated constructor stub

   }

 

   /*

    * 数据库第一次创建时调用(non-Javadoc)

    * db为创建的数据库

    * @seeandroid.database.sqlite.SQLiteOpenHelper#onCreate(android.database.sqlite.SQLiteDatabase)

    */

   @Override

   public voidonCreate(SQLiteDatabase db) {

       //初始化数据库的表结构

       db.execSQL("create table person id integer primary keyautoincrement,name varchar(20),number varchar(20)");

      

   }

  

   @Override

   public voidonUpgrade(SQLiteDatabase db,intoldVersion,intnewVersion) {

       // TODO Auto-generated method stub

      

   }

在创建了数据库的表结构后,可以对数据库惊行增删改查的操作。在对数据库怎行操作前要得到数据库的实例SQLiteDatabase db= help.getWritableDatabase(),具体操作代码里有注解。

public class PersoDao {

 

   private PersonSQLitehelp;

 

   publicPersoDao(Contextcontext) {

       help = new PersonSQLite(context);

   }

 

   /**

    * 添加数据到数据库

    *

    * @param name

    * @param number

    */

   public void add(String name, String number) {

       SQLiteDatabase db = help.getWritableDatabase();

 

       db.execSQL("insert into person(name,number) values (?,?)",

              new Object[] {name,number });

 

       db.close();

   }

 

   /**

    * 查询结果是否存在

    *

    * @param name

    *            姓名

    * @return true则表示结果存在

    */

   public boolean find(String name) {

 

       SQLiteDatabase db = help.getReadableDatabase();

       Cursor cursor = db.rawQuery("select * from person where name=?",

              new String[] {name });

       booleanresult =cursor.moveToNext();

       cursor.close();

       db.close();

       returnresult;

   }

  

   /**

    * 更新一条记录

    * @param name更改人的姓名

    * @param newnumber电话号码

    */

   public void update(String name,Stringnewnumber) {

      

       SQLiteDatabase db=help.getWritableDatabase();

       db.execSQL("update person set number=? where name=?",new Object[]{newnumber,name});

      

       db.close();

   }

  

   /**

    * 删除一条记录

    * @param name

    */

   public void delete(String name){

      

       SQLiteDatabase db=help.getWritableDatabase();

       db.execSQL("delete from person where name=? ",new Object[]{name});

      

       db.close();

   }

  

你可能感兴趣的:(Android)