1、创建sqlit基础操作类
【1】创建一个类继承SQLiteOpenHelper
【2】创建构造函数
/**
* context 上下文
* name 数据库名称 String
* factory 游标工程 CurSorFactory 默认为null。 游标默认位置0,第一列数据为1
* version 版本号 int 默认开始为1,版本号必须大于等于1,版本可升不可降
**/
public MySQLiteOpenHelper(Context context){
supper(context,name,factory,version);
}
【3】onCreate(SQLiteDatabase db)
数据库第一次创建的时候调用
一般做数据库的初始化(创建表结构)
【4】onUpgrade(SQLiteDatabase db,int oldVersion,int newVersion)
当数据库版本升级的时候调用
一般用于数据库表结构的更新
【5】执行sql语句
//返回void
SQLiteDatabase.execSQL("create table tName(_id integer,name varchar(20))");
SQLiteDatabase.execSQL("update tableName set phone=? where name=?",new Object[]("1","2"));
//返回Cursor
SQLiteDatabase.rowQuery("SELECT * from tableName",null);//第二各参数为占位
while(cursor.moveToNext()){
String name = cursor.getString(1);
String phone = cursor.getLong(2);
}
【6】在Android使用指令查询sql
sqlite3 进入sql查询
乱码问题,修改DOS编码方式使用命令chcp 936 gbk ||| chcp 65001 utf-8
【7】Android 封装好的方法执行数据库的操作
1)插入
ContentValues values = new ContentValues();//类似map
values.put("列名1","值2");
values.put("列名2","值2");
//参数说明 表名,占位,需要插入的数据(类型为ContentValues)
//返回long,代表插入的行号
db.insert("表名",null,values);
//关闭数据库链接
db.close();
2)修改
//valuses 类型ContentValues
//返回更新的行号
db.update("表名",values,whereClause,whereArgs);
3)删除
//whereClause where条件 例:name=?
//whereArgs where的值例:new String[]{"name"}
//返回值为删除的行数
db.delete("表名",whereClause,whereArgs)
4)查询
//columns 查询的列,例:new String[]{"name","phone"},查询所有的null
//selection 查询的条件 例:"name=?"
//selectionArgs 查询条件的值 例:new String[]{"name",1111}
//groupBy|having|orderBy 分组|过滤|排序 没有写null
//返回Cursor
db.query(table,columns,selection,selectionArgs,groupBy,having,orderBy);
【8】事物,标准写法
db.beginTransaction();//开启事物
try{
这里写需要执行的sql
//给当前事物设置一个成功的标记
db.setTransactionSuccessful();
}catch(Exception e){
//捕获异常
}finaly{
db.endTransaction()//关闭事物
}
【9】打开或创建数据库
SQLiteDatabase dataBase = mysqlit.getWritableDatebase();//打开或创建数据库,第一次打开新建
SQLiteDatabase dataBase = mysqlit.getReadableDatebase();//磁盘满了返回一个只读数据库对象