今天学习了SqLite
SQL语句
create table 表名( g_id integer PRIMARY KEY AUTOINCREMENT NOT NULL, g_name varchar,)
select * from 表名 where t_id=条件值
delete from 表名where id=条件值
insert into 表名 (字段名) values(值
update 表名 set(字段名) values(值)where id=1
新建数据库继承SQLiteOpenHelper
重写两个方法
onCreate(SQLiteDatabase db):创建数据库,在其中建表
onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion):更新数据库
增加数据
sqLiteDatabase.execSQL("insert into stu values(?,?,?)",new String[]{null,"dhg","20"});
sqLiteDatabase.execSQL("insert into stu values(?,?,?)",new String[]{null,"细狗","21"});
sqLiteDatabase.execSQL("insert into stu values(?,?,?)",new String[]{null,"大黄狗","22"});
查询数据
Cursor cursor=sqLiteDatabase.rawQuery("select *from stu",null);
while (cursor.moveToNext())
{
@SuppressLint("Range") int id=cursor.getInt(cursor.getColumnIndex("id"));
@SuppressLint("Range") String name=cursor.getString(cursor.getColumnIndex("name"));
@SuppressLint("Range") int age=cursor.getInt(cursor.getColumnIndex("age"));
Log.i("---dd", "querydata: "+id+name+age);
}
cursor.close();
修改数据
sqLiteDatabase.execSQL("update stu set age=? where name=?",new String[]{"50","大黄狗"});
删除数据
sqLiteDatabase.execSQL("delete from stu where name=? ",new String[]{"dhg"});
然后是第二种方法
增加数据
ContentValues contentValues=new ContentValues();
contentValues.put("name","cdd");
contentValues.put("age",50);
sqLiteDatabase.insert("stu",null,contentValues);
查询数据
Cursor cursor=sqLiteDatabase.query("stu",null,null,null,null,null,null);
while (cursor.moveToNext())
{
@SuppressLint("Range") int id=cursor.getInt(cursor.getColumnIndex("id"));
@SuppressLint("Range") String name=cursor.getString(cursor.getColumnIndex("name"));
@SuppressLint("Range") int age=cursor.getInt(cursor.getColumnIndex("age"));
Log.i("---dd", "querydata: "+id+name+age);
}
cursor.close();
修改数据
ContentValues contentValues=new ContentValues();
contentValues.put("age",100);
sqLiteDatabase.update("stu",contentValues,"name=?",new String[]{"cdd"});
删除数据
sqLiteDatabase.delete("stu","name=?",new String[]{"cdd"});
然后学习了事务
就是将大量数据添加到数据库
事务的方法:
beginTransaction();
db.endTransaction();
db.rollBack();
public void swdata(View view) {
ContentValues contentValues=new ContentValues();
for (int i = 0; i <=20 ; i++) {
contentValues.put("name","opo"+i);
contentValues.put("age",20+i);
sqLiteDatabase.insert("stu",null,contentValues);
}
sqLiteDatabase.setTransactionSuccessful();
sqLiteDatabase.endTransaction();
}