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();//磁盘满了返回一个只读数据库对象