本文已参与「新人创作礼」活动,一起开启掘金创作之路
Android创建SQLite数据库之后要怎么对数据库进行增删改查呢
应该用到SQLITE里面的SQLiteDatabase的这个类来操作
例子:我创建了一个有姓名和电话号码两个值的数据库
一.增加数据
public void add(){
DatabaseHelper helper = new DatabaseHelper(this);
SQLiteDatabase db = helper.getWritableDatabase();
ContentValues values = new ContentValues();
String num =phone.getText().toString().trim();
String people =Name.getText().toString().trim();
if(!TextUtils.isEmpty(num) && !TextUtils.isEmpty(people)){
values.put("name",people);
values.put("phone",num);
long id = db.insert("phone","nullColumnHack",values);
db.close();
Toast.makeText(this, "添加成功", Toast.LENGTH_LONG).show();
phone.setText(null);
}
else {
Toast.makeText(this, "姓名或电话为空", Toast.LENGTH_LONG).show();
}
}
首先是打开一个SQLiteDatabase连接
然后创建一个ContentValues类 ContentValues类和Hashtable比较类似,它也是负责存储一些名值对,但是它存储的名值对当中的名是一个String类型,而值都是基本类型, 然后用ContentValues去存储我们需要添加进数据库的数据
然后使用db.insert方法去添加数据 其中重要的是这个里面有三个参数
1.第一个参数是插入的表名
2.第二个参数nullColumnHack :这是可选参数, 因为数据库表中不允许插入空数据, 如果后面的参数ContentValues是null, 并且列的名称不存在, 那么插入操作会失败, 为了避免这种情况, 就出现了nullColumnHack参数, 为了防止 values为null的情况;如果为空 会插入为nullColumnHack 参数列为空的值
源码如下 仔细看就明白了
3.第三个参数就是我们需要插入到表里的数据了
二:查找数据
代码如下:
public void findAll( ){
DatabaseHelper helper = new DatabaseHelper(this);
SQLiteDatabase db = helper.getWritableDatabase();
String sql = "select * from phone";
Cursor cursor = db.rawQuery(sql,null);
if (cursor.getCount() != 0) {
while (cursor.moveToNext()) {
String name = cursor.getString(cursor.getColumnIndex("name"));
String phone = cursor.getString(cursor.getColumnIndex("phone"));
Phone ph = new Phone(name,phone);
phonelist.add(ph);
db.close();
}}}
首先是打开一个SQLiteDatabase连接
然后把写的SQL语句赋值到字符串里
然后用db.rawQuery(sql,null) 获取到执行的sql语句的数据存放到数据缓冲区Cursor
其中rawQuery有两个参数
1.参数1为要执行的数据库语句
2.参数2为参数1里面占位符的值,就是下面代码问号的值 ( db.rawQuery("select * from phone where age=?", new String[]{"钟AH"}); )
最后用while循环来遍历出游标Cursor里面的值 最后关闭数据库连接