SQLite
-
- 1.SQLite的简介
- 2.SQLite的操作
- 3.SQLite中事务的处理
- 4.SQLiteOpenHelper类
1.SQLite的简介
SQLite,是一款轻型的数据库,它的设计目标是嵌入式产品,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。
Android中使用SQLiteDatabase代表数据库,并且提供一系列的方法来操作数据。
2.SQLite的操作
1.创建或者打开数据库
database = SQLiteDatabase.openOrCreateDatabase(path + "/mydb.db",
null);
2.创建数据库表
String createSQL = "CREATE TABLE EMPLOYEE(" +
"ID INTEGER PRIMARY KEY AUTOINCREMENT," +
"NAME TEXT," +
"SALARY FLOAT)";
database.execSQL(createSQL);//执行SQL语句
break;
3.插入数据
ContentValues newData = new ContentValues();
//添加数据时,第一个参数必须同数据库表中字段名称一致
newData.put("name", "张三");
newData.put("salary", 4000.0f);
//第二个参数是当第三个参数为null时起作用
long rowId = database.insert("employee",null, newData);
Log.e("新插入的记录的id",rowId+"");
break;
4.查询数据库表
Cursor result = database.query("EMPLOYEE",null,
null,null,null,null,null);
//将游标移动到第一条记录
if (result.moveToFirst()){
ArrayList<Employee> employees = new ArrayList<>();
do {
Employee employee = new Employee();
//getColumnIndex方法区分字段名的大小写
employee.setName(result.getString(
result.getColumnIndex("NAME")));
employee.setSalary(result.getFloat(
result.getColumnIndex("SALARY")));
// Log.e("职工信息",employee.toString());
employees.add(employee);
}while (result.moveToNext());
Log.e("AAA", employees.toString());
}
break;
5.修改数据
ContentValues updateData = new ContentValues();
updateData.put("SALARY", 5000.0f);
int row = database.update("EMPLOYEE",updateData,
"name=?", new String[]{ "张三"});
Log.e("修改的行数", row + "");
break;
6.删除数据
int rowNum = database.delete("EMPLOYEE",
"ID=?",new String[]{ "3"});
Log.e("删除的条数",rowNum+"");
break;
3.SQLite中事务的处理
1.事务处理
//处理事务
//开启数据库事务
database.beginTransaction();
//事务操作
try {
for (int i = 0; i < 3; i++){
ContentValues values = new ContentValues();
values.put("name","李四");
values.put("salary",3000.0f);
database.insert("employee",null,values);
}
database.setTransactionSuccessful();//设置事务成功执行
}finally {
//结束事务
//判断:如果执行了setTransactionSuccessful方法就提交事务
//否则回滚事务
database.endTransaction();
}
break;
4.SQLiteOpenHelper类
Android提供SQLiteOpenHelper类来管理数据库。主要负责数据库的创建、版本更新,一般情况通过创建它的子类并扩展onCreate()和onUpgrade()方法来实现。
使用步骤:
1.自定义MyDBHelper类继承自SQLiteOpenHelper类
public class MyDBHelper extends SQLiteOpenHelper {
public MyDBHelper(@Nullable Context context, @Nullable String name, @Nullable SQLiteDatabase.CursorFactory factory, int version) {
super(context, name, factory, version);
}
@Override
public void onCreate(SQLiteDatabase db) {
//创建数据库表,第一次打开数据库时调用,仅执行一次
String createSQL = "CREATE TABLE EMPLOYEE(" +
"ID INTEGER PRIMARY KEY AUTOINCREMENT," +
"NAME TEXT," +
"SALARY FLOAT)";
db.execSQL(createSQL);//执行SQL语句
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
//更新数据库时执行
Log.e("MyDBHelper","onUpgrade");
}
}
2.用MyHelper来创建数据库
MyDBHelper myDBHelper = new MyDBHelper(this,
"employee.db", null, 3);//数据库的版本号
database = myDBHelper.getWritableDatabase();