关于SQLite数据库的那点事
1.sqlite属于轻型的数据库,事物有四种属性,原子性,一致性,隔离性,持久性。
2.在进行创建数据库时候采用继承SQLiteOpenHelper,然后实现其中的方法,在DatabaseHelper方法中factory方法可以为Null
3.在onCreate方法中执行sql语句创建数据库。
4.数据库中的四种操作前首先要进行开启事务,并且创建数据库SQLiteDatabase。
(1)增加数据
通过创建ContentValues对象创建键值对,实现内容的增加,
db=databaseHelper.getWritableDatabase();
String name=srxm.getText().toString();//获取输入的名字
String phone=srsjh.getText().toString();//获取输入的手机号
values=new ContentValues();//创建存储数据的ContentValues类
values.put("name",name);
values.put("phone",phone);
//执行sql预计
db.insert("information",null,values);
Log.d("My debug","插入成功");
Toast.makeText(this,"您已添加",Toast.LENGTH_SHORT).show();
db.close();//关闭数据库
(2)更新数据
在更新数据的时候同样采用创建ContentValues对象的方法进行更新,并且通过.update更新方法进行更新
db=databaseHelper.getWritableDatabase();
values=new ContentValues();
values.put("phone",srsjh.getText().toString());
db.update("information",values,"name=?",new String[]{srxm.getText().toString()});//将数据进行更改
Toast.makeText(this,"数据更新成功",Toast.LENGTH_SHORT).show();
Log.d("My debug","数据更新成功");
db.close();
(3)查询数据
在查询数据库中内容的时候,通过创建Cursor对象进行查询,并且在进行查询的时候要记得进行判断数据库中的数据行数,否则会报错,并且在运行结束的时候关闭cursor对象,否则会造成内存溢出
db=databaseHelper.getReadableDatabase();//获取读对象
Cursor cursor=db.query("information",null,null,null,null,null,null);
//通过Cursor对象查询数据库中的数据
if(cursor.getCount()==0)//判断数据库中的数据行数
{
tv_show.setText("");
Log.d("My debug","数据库中无消息");
}
else {
cursor.moveToFirst();//如果有信息,挪向第一条数据
tv_show.setText("name:"+cursor.getString(1)+" phone:"+cursor.getString(2));
}
while(cursor.moveToNext())
{
tv_show.append("\n"+"name"+cursor.getString(1)+";"+"phone"+cursor.getString(2));
}
Toast.makeText(this,"数据已经查询",Toast.LENGTH_SHORT).show();
Log.d("My debug","数据查询成功");
cursor.close();
db.close();