译自:https://github.com/dmytrodanylyk/dmytrodanylyk/blob/gh-pages/articles/Concurrent%20Database%20Access.md   我曾经写过一篇很简短的文章,阐述了线程安全的访问android sqlite数据库。样例程序可以在这里获取到。   ///华丽的分割线//   假设你已经有一个自己的SQLiteOpenHelper。 public class DatabaseHelper extends…

2018年9月13日 0条评论 3点热度 阅读全文

最近项目中涉及到sqlite并发读写的问题,参考一些文档并结合自己的实践,对sqlite3并发问题总结了几点: sqlite3的锁及事务类型 sqlite3总共有三种事务类型:BEGIN [DEFERRED /IMMEDIATE / EXCLUSIVE] TRANSCATION,五种锁,按锁的级别依次是:UNLOCKED /SHARED /RESERVERD /PENDING /EXCLUSIVE。当执行select即读操作时,需要获取到SHARED锁(共享锁),当执行insert/update…

2018年9月13日 0条评论 3点热度 阅读全文

在进行数据库查询时,有完整查询和模糊查询之分。 一般模糊查询语句如下: SELECT 字段 FROM 表 WHERE 某字段 Like 条件 其中关于条件,SQL提供了四种匹配模式: 1,% :表示任意0个或多个字符。可匹配任意类型和长度的字符,有些情况下若是中文,请使用两个百分号(%%)表示。 比如 SELECT * FROM [user] WHERE u_name LIKE '%三%' 将会把u_name为“张三”,“张猫三”、“三脚猫”,“唐三藏”等等有“三”的记录全找出来。 另外,如果需要找出u_name中…

2015年11月22日 0条评论 5点热度 阅读全文

(SELECT a FROM tbl_name WHERE a=10 AND B=1) UNION (SELECT a FROM tbl_name WHERE a=11 AND B=2)ORDER BY a LIMIT 10;

2014年8月27日 0条评论 6点热度 阅读全文

1.public abstract void onUpgrade(SQLiteDatabase db,int oldVersion,int new Version) public abstract void onUpgrade(SQLiteDatabase db,int oldVersion,int new Version) 这个方法在实现时需要重写。 onUpgrade方法会在数据库需要升级的时候调用。可以用来增删表或者其他任何操作。如果你想添加新的列你可以使用ALTER TABLE 插入表中。如果需要重命名或者…

2014年4月23日 0条评论 4点热度 阅读全文

一、在SQLite数据库中获取新插入数据自增长的ID值 使用last_insert_rowid()函数,例如: 01.SQLiteDatabase db = helper.getWritableDatabase(); 02.db.execSQL("insert into person(name,phone,amount) values(?,?,?) ", 03. new Object[]{person.getName(),person.getPhone(),person.getAmount()}); 04.Curs…

2013年10月11日 0条评论 12点热度 阅读全文