1、DbHelper类 继承自SQLiteOpenHelper类,实现对数据库的基本操作
package com.example.utils; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; /** * Created by Administrator on 2017/12/18. */ public class DbHelper extends SQLiteOpenHelper { //声明数据库的名称 private static final String DATABASE_NAME="content.db"; //声明版本号 private static final int VERSION=1; //重写构造方法 private DbHelper(Context context) { super(context, DATABASE_NAME,null, VERSION); } private DbHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) { super(context, DATABASE_NAME,null, VERSION); } //创建数据库的方法 @Override public void onCreate(SQLiteDatabase sqLiteDatabase) { String sql="create table if not exists tb_stu(" + "_id integer primary key," + "sname text," + "sage integer," + "ssex text" + ")"; sqLiteDatabase.execSQL(sql); sql="insert into tb_stu(sname,sage,ssex) values('Jack',23,'男')"; sqLiteDatabase.execSQL(sql); sql="insert into tb_stu(sname,sage,ssex) values('Lucy',22,'女')"; sqLiteDatabase.execSQL(sql); } //当数据库发生版本更新的方法 @Override public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) { String sql="drop table tb_stu"; sqLiteDatabase.execSQL(sql); onCreate(sqLiteDatabase); } //单例模式 private static DbHelper dbHelper; public static synchronized DbHelper getInstance(Context context){ if(dbHelper==null) dbHelper=new DbHelper(context); return dbHelper; } }
2、使用单例模式,对DbHelper进行封装(一般在实现数据操作时,调用此类中的方法,而不是DbHelper类中的)
package com.example.utils; import android.content.ContentValues; import android.content.Context; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; /** * Created by Administrator on 2017/12/18. */ public class DbUtils { //声明SQLite数据库 SQLiteDatabase sdb; //创建构造方法并实例化SQLiteDatabase对象 public DbUtils(Context context){ sdb=DbHelper.getInstance(context).getReadableDatabase(); } //调用SQLiteDatabase对象的 添加 方法进行数据添加,返回值为添加数据行的ID public long insert(String tableName, ContentValues values){ long id=sdb.insert(tableName,null,values); return id; } //调用SQLiteDatabase对象的 修改 方法进行数据添加,返回值为修改数据行的ID public int update(String tableName,ContentValues values,String where,String[] whereArgs){ int i=sdb.update(tableName,values,where,whereArgs); return i; } //调用SQLiteDatabase对象的 删除 方法进行数据添加,返回值为删除行 public int delete(String tableName,String where,String[] whereArgs){ int i=sdb.delete(tableName,where,whereArgs); return i; } //调用SQLiteDatabase对象的 查询 方法进行数据添加,返回值为游标 public Cursor query(String tableName,String[] columns,String selection,String[] selectArgs,String groupBy,String having,String orderBy,String limit){ Cursor cursor=sdb.query(tableName,columns,selection,selectArgs,groupBy,having,orderBy,limit); return cursor; } }