一看就会Android之SQLite数据库的使用思路



SQLite数据库适用于小型手机APP的数据存储,如果是为某个网站开发手机客户端app,那么它所公用的数据库就不是SQLite了,而是服务器端安装的MySQL或者其他比较大的数据库,此时要进行数据访问就要进行网络编程,使用Socket等知识。

在实际的开发中通常使用SQLiteOpenHelper的子类来管理数据库的链接,使用此方法如果数据库以及数据库表还不存在,系统会自动调用onCreateSQLiteDatabase db)方法来完成创建,此外如果创建SQLiteOpenHelper的子类的实例时传入的版本号高于之前的版本号,系统会自动调用onUpgrade()方法来更新数据库。

1.SQLiteOpenHelper的子类的作用是用来初始化数据库,即第一次使用时的建库和建表,并且允许应用程序通过该子类的实例通过调用getWritableDatabase()方法或者getReadableDatabase()方法来获取SQLiteDatabase对象db,从而就可以利用该对象db来操作数据库了(CRUD;

例如如下的数据库操作工具类:

public classDBOpenHelper extends SQLiteOpenHelper{

 

  //定义数据库的名称和数据库版本号

  private static final String DBNAME = "acount.db3";

  private static final int VERSION = 1;

 

  //定义创建表的sql语句

 String sql_flag = "createtable tb_flag(_id integer primary key autoincrement,flag varchar(20))" ;

 

    //构造方法

  public DBOpenHelper(Contextcontext) {

     super(context, DBNAME, null, VERSION);

  }

 

  @Override

  public voidonCreate(SQLiteDatabase db) {

     //第一次使用数据库时执行该方法,创建4张表

     db.execSQL(sql_flag);    

  }

 

  @Override

  public voidonUpgrade(SQLiteDatabase arg0, int oldVersion, intnewVersion) {

     //该方法在数据库的版本发生变化时会被调用

     System.out.println("数据库版本发生了改变!");

  }

 

}

 

2.以上创建了数据库管理类DBOpenHelper之后,在dao层的各个类中就可以使用如下来创建数据库的SQLiteDatabase对象db了:

public classInaccountDAO {

 

  private DBOpenHelper helper;//创建DBOpenHelper对象

  private SQLiteDatabase db;//创建SQLiteDatabase对象

 

  //定义构造方法,在通过构造方法创建InaccountDAO对象的过程中,同时初始化了helper对象

  public InaccountDAO(Contextcontext){

     helper = newDBOpenHelper(context);

  }

 

  //1.添加收入信息记录,参数为收入信息对象,返回值为空

  public voidadd(Tb_inaccount inaccount){

     //初始化db对象

     db = helper.getReadableDatabase();

     //执行添加的操作

//或者直接使用helper.getReadableDatabase().execSQL(……);这样就不用声明db对象了

     db.execSQL("insertinto tb_inaccount (_id,money,time,type,handler,mark)values(null,?,?,?,?,?)",

         newObject[]{inaccount.getMoney(),inaccount.getTime(),inaccount.getType(),

         inaccount.getHandler(),inaccount.getMark()

     });

  }

3.然后再每个activity中创建dao层对象时,传入参数Context,就可以调用各个方法了:

InaccountDAOinaccountDAO = new InaccountDAO(AddInaccount.this);

//调用指定的方法返回list集合等类型结果

Listlist = inaccountDAO.XXX();

你可能感兴趣的:(Android)