目录
1 创建数据库和相应表
public class SqliteDBHelper extends SQLiteOpenHelper {
public SqliteDBHelper(Context context) {
super(context, "demo.db", null, 1);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("create table t_user (_id integer primary key autoincrement,username varchar(20));");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
2 增,删,查,绑定事务方法
1 插入方法(不绑定事务)
private void insert() {
try{
SqliteDBHelper dbHelper = new SqliteDBHelper(SqliteActivity.this);
db = dbHelper.getWritableDatabase();
long time0 = System.currentTimeMillis();
for (int i = 0; i < 1000; i++) {
ContentValues contentValues = new ContentValues();
contentValues.put("username","aaa"+i);
db.insert("t_user",null,contentValues);
}
long time1 = System.currentTimeMillis();
long dis = time1-time0;
Log.i("","不绑定事物的耗时 dis = "+dis);//12368
db.close();
}catch (Exception e){
e.printStackTrace();
}
}
2删除方法
private void deleteData() {
SqliteDBHelper dbHelper = new SqliteDBHelper(SqliteActivity.this);
db = dbHelper.getWritableDatabase();
db.delete("t_user",null,null);
db.close();
}
3 查询方法
private void queryData() {
ArrayList<String> stringList = new ArrayList<>();
SqliteDBHelper dbHelper = new SqliteDBHelper(SqliteActivity.this);
db = dbHelper.getWritableDatabase();
Cursor cursor = db.query("t_user", new String[]{"username"},
null, null, null, null, null);
while (cursor.moveToNext()){
String string = cursor.getString(0);
stringList.add(string);
}
cursor.close();
db.close();
for (int i = 0; i < stringList.size(); i++) {
Log.i("",stringList.get(i).toString());
}
}
4插入过程中绑定事务
private void insertTransaction() {
try{
SqliteDBHelper dbHelper = new SqliteDBHelper(SqliteActivity.this);
db = dbHelper.getWritableDatabase();
long time0 = System.currentTimeMillis();
db.beginTransaction();//开启事物,指定事物回滚点
for (int i = 0; i < 1000; i++) {
ContentValues contentValues = new ContentValues();
contentValues.put("username","aaa"+i);
if (i == 5){
int a = 1/0;
}
db.insert("t_user",null,contentValues);
}
db.setTransactionSuccessful();//如果没有异常,就提交事物
long time1 = System.currentTimeMillis();
long dis = time1-time0;
Log.i("","绑定事物的耗时 dis = "+dis);
}catch (Exception e){
e.printStackTrace();
}finally {
db.endTransaction();//结束事物,如果有异常则会回滚事物
db.close();
}
}