SQLite简单理解常用方法与相关类
来源:互联网 发布:lazada卖家数据分析 编辑:程序博客网 时间:2024/04/28 22:58
SQLite一个开源嵌入式数据库
类继承SQLiteOpenHelper重写
// public MySQLOpenHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version);// 构造方法去掉(String name, SQLiteDatabase.CursorFactory factory, int version)只保留上下文Context public MySQLOpenHelper(Context context) { super(context, "sql.db", null, 1); }// onCreate 只能创建一次,数据表存在数据库 将不执行onCreate,此方法给数据表初始化只执行一次 @Override public void onCreate(SQLiteDatabase db) { System.out.println("数据库创建"); db.execSQL("create table student(_id integer primary key autoincrement, name varchar(20), phone varchar(30))"); }// onUpgrade 升级更新版本时调用,增加新功能,只能升级不能降级,否则报错,当更改构造方法version版本号时会自动调onUpgrade方法// oldVersion 旧版本 newVersion 新版本 @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { System.out.println("数据库升级"); }
数据库事务:同开同关
格式:db.beginTransaction(); // 开启事务try{ db.setTransactionSuccessful();// 设置事务执行成功}finally{ db.endTransaction();//结束当前事务}
例如转账时银行突然停电,用到数据库事务时,钱就不会莫名消失,而会交易直接同时关闭。// 创建数据库MySQLOpenHelper helper = new MySQLOpenHelper(this);SQLiteDatabase db = helper.getWritableDatabase();db.beginTransaction(); // 开启事务try { // 模拟转账的操作 db.execSQL("update account set money=money-100 where name='zhangsan'"); s.endsWith("haha");// 此处是空指针模拟突然断电 db.execSQL("update account set money=money+100 where name='lisi'"); db.setTransactionSuccessful();// 设置事务执行成功} finally { db.endTransaction();//结束当前事务}db.close();
execSQL(String sql, Object[] bindArgs):
第二个参数 Object[] bindArgs 的理解:代入占位符(?)
例题:String sql = "select * from table_name where id=? and name = ?";obj.execSQL(sql, new Object[]{1, "张三"});// 然后将 1 传给 id = 1// 将 "张三" 传给 name = "张三"
SQLiteDatabases(自建的类)继承SQLiteOpenHelper(数据库管理),此方法进行连接来获取创建数据库,传入上下文context
private SQLiteDatabases sql; public SQLiteFunction(Context context) { sql = new SQLiteDatabases(context); }
SQLiteDatabase 类来创建、删除、执行SQL命令,执行其他常见的数据库管理任务
常用方法:
sql.execSQL()// 执行SQL
sql.rawQuery()// 原始查询
SQLite增删改查,可以用谷歌提供的方法
long result = db.insert() //增 返回值是long@return result 添加到数据库的那一行, -1添加失败int result = db.delete() //删 返回值是 int@return result 删除了几行 0 代表删除失败int result = db.update() //改 返回值 int@return 更新了几行 0更新失败Cursor cursor = db.query() //查 返回值是 Cursor@return 学生性别 null代表学生不存在
继承SQLiteOpenHelper
常用方法:
helper.getWritableDatabase()//可写数据库helper.getReadableDatabase()//可读数据库//写入数据库,进行增删改SQLiteDatabase database = sql.getWritableDatabase();//读取数据库,进行查询SQLiteDatabase database = sql.getReadableDatabase();
Cursor类
cursor.moveToNext() // 游标移动到下一个 返回值boolean类型
1 0
- SQLite简单理解常用方法与相关类
- Android学习--SQLite与简单调试方法
- Sqlite简单介绍与一些常用的例子
- Sqlite简单介绍与一些常用的例子
- Sqlite简单介绍与一些常用的例子
- Sqlite简单介绍与一些常用的例子
- Sqlite简单介绍与一些常用的例子
- [Android]SQLite 常用方法
- [ios]SQLite 常用方法
- sqlite常用方法
- 与HTTP相关的常用方法
- iOS中的initialize与load两个类方法简单理解
- iOS中的initialize与load两个类方法简单理解
- Sqlite 相关特性与编程
- SQLite数据库常用方法汇总
- sqlite的几个常用方法
- sqlite的几个常用方法
- android中与SQLite数据库相关的类
- 火狐flash debug配置
- 2016夏季练习——三分
- oracle数据库操作
- jQuery 操作DOM总结,DOM Core操作,HTML-DOM操作和CSS-DOM操作
- 数据预处理
- SQLite简单理解常用方法与相关类
- HDU 1162 Eddy's picture
- Java ClassLoader的一些事
- NYOJ 58 最少步数(广搜入门经典)
- 软件构架、架构和框架的区别
- Ubuntu16.04 GCC5.4.0降级到GCC5.3.0
- OpenCV read video
- 华为OJ 初级:人民币转换
- linux shell 自动输入y/yes