设为首页 加入收藏

TOP

使用事务操作SQLite数据库和一些常用的SQL语句
2014-11-23 20:16:38 来源: 作者: 【 】 浏览:18
Tags:使用 事务 操作 SQLite 数据库 一些 常用 SQL 语句
使用SQLiteDatabase的beginTransaction()方法可以开启一个事务,程序执行到endTransaction() 方法时会检查事务的标志是否为成功,如果程序执行到endTransaction()之前调用了setTransactionSuccessful() 方法设置事务的标志为成功则提交事务,如果没有调用setTransactionSuccessful() 方法则回滚事务。使用例子如下: SQLiteDatabase db = ....;
db.beginTransaction();//开始事务
try {
db.execSQL("insert into person(name, age) values( , )", new Object[]{"传智播客", 4});
db.execSQL("update person set name= where personid= ", new Object[]{"传智", 1});
db.setTransactionSuccessful();//调用此方法会在执行到endTransaction() 时提交当前事务,如果不调用此方法会回滚事务
} finally {
db.endTransaction();//由事务的标志决定是提交事务,还是回滚事务
}
db.close();
上面两条SQL语句在同一个事务中执行。
一些常见的SQL语句:
CREATE TABLE person (personid integer primary key autoincrement, name varchar(20))
SQLite可以解析大部分标准SQL语句,如:
查询语句:select * from 表名 where 条件子句 group by 分组字句 having ... order by 排序子句
如:select * from person
select * from person order by id desc
select name from person group by name having count(*)>1
分页SQL与mysql类似,下面SQL语句获取5条记录,跳过前面3条记录
select * from Account limit 5 offset 3 或者 select * from Account limit 3,5
插入语句:insert into 表名(字段列表) values(值列表)。如: insert into person(name, age) values(‘传智’,3)
更新语句:update 表名 set 字段名=值 where 条件子句。如:update person set name=‘传智‘ where id=10
删除语句:delete from 表名 where 条件子句。如:delete from person where id=10
创建 数据库
db.execSQL("CREATE TABLE person (personid integer primary key autoincrement, name varchar(20), amount integer)");//执行有更改的sql语句
删除数据库
db.execSQL("DROP TABLE IF EXISTS person");
插入一条数据
db.execSQL("insert into person (name,amount) values( , )", new Object[]{person.getName(),person.getAmount()});
更新一条数据
db.execSQL("update person set name= where personid= ", new Object[]{person.getName(),person.getId()});
删除一条数据
db.execSQL("delete from person where personid= ", new Object[]{id.toString()});
查询一条数据
Cursor cursor = db.rawQuery("select * from person where personid= ", new String[]{id.toString()});
分页
Cursor cursor = db.rawQuery("select * from person limit , ", new String[]{offset.toString(), maxResult.toString()});
返回游标
db.rawQuery("select personid as _id, name, amount from person limit , ",new String[]{offset.toString(), maxResult.toString()});
得到总数
db.rawQuery("select count(*) from person", null);


作者 forrest001
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇SQL语句行列转换(附带数据库、表.. 下一篇从数据库中获取Insert语句

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: