一、创建一个类继承SQLiteOpenHelper,覆盖构造方法,实现两个未实现方法
public class SQLiteHelper extends SQLiteOpenHelper{
public SQLiteHelper(Context context) {
super(context, "sql.db", null, 1);
}
@Override
public void onCreate(SQLiteDatabase db) {
String sql = "create table if not exist "+"表名"+"_id integer primary key autoincrement, name text not null)";
db.execSQL(sql);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
二、创建一个db类,操作数据库
public class SQLiteDb{
private Context context;
private SQLiteHelper helper;
public SQLiteDb(Context context){
this.context = context;
helper = new SQLiteHelper(context);
}
public void insertName(ContentValues values){
SQLiteDatabase sdb = getWritableDatabase();
sdb.insert("表名", null, values);
sdb.close();
}
public Cursor query(){
SQLiteDatabase sdb = getWritableDatabase();
// String[] columns, String selection, String[] selectionArgs, String groupBy,
//String having, String orderBy, String limit
// sdb.query("表名", columns, selection, selectionArgs, groupBy, having, orderBy, limit);
String sql ="select * from "+"表名";
Cursor cursor = sdb.rawQuery(sql, null);
sdb.close();
return cursor;
}
public Cursor queryByName(String name){
SQLiteDatabase sdb = getWritableDatabase();
String sql = "select from 表名 where name=?";
Cursor rawQuery = sdb.rawQuery(sql, new String[]{name});
sdb.close();
return rawQuery;
}
public void update(ContentValues values,String whereClause, String [] whereArgs){
SQLiteDatabase sdb = getWritableDatabase();
sdb.update("表名", values, whereClause, whereArgs);
sdb.close();
}
public void delete(String whereClause, String [] whereArgs){
SQLiteDatabase sdb = getWritableDatabase();
sdb.delete("表名", whereClause, whereArgs);
sdb.close();
}
}
}
三、操作数据库代码详解
(1)、插入数据
插入数据有两种方法:
①SQLiteDatabase的insert(String table,String nullColumnHack,ContentValues values)方法,参数一是表名称,参数二是空列的默认值,参数三是ContentValues类型的一个封装了列名称和列值的Map;
②编写插入数据的SQL语句,直接调用SQLiteDatabase的execSQL()方法来执行
第一种方法的代码:
第二种方法的代码:
(2)、删除数据
删除数据也有两种方法:
①调用SQLiteDatabase的delete(String table,String whereClause,String[] whereArgs)方法,参数一是表名称,参数二是删除条件,参数三是删除条件值数组;
②编写删除SQL语句,调用SQLiteDatabase的execSQL()方法来执行删除。
第一种方法的代码:
第二种方法的代码:
(3)、修改数据
修改数据有两种方法:
①调用SQLiteDatabase的update(String table,ContentValues values,String whereClause, String[] whereArgs)方法。参数是表名称,参数是更行列ContentValues类型的键值对(Map),参数是更新条件(where字句),参数是更新条件数组。
②编写更新的SQL语句,调用SQLiteDatabase的execSQL执行更新。
第一种方法的代码:
第二种方法的代码:
(4)、查询数据