嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300
本次赞助数额为: 3 元微信扫码支付:3 元
请留下您的邮箱,我们将在2小时内将文件发到您的邮箱
本实验主要涉及的知识点是数据库的创建和数据库的增、删、查、改。Android系统推荐创建数据库的方法,是创建自己的继承自SQLiteOpenHelper类的子类,并重写其中的两个抽象方法onCreate()和onUpdate(),然后分别在这两个方法中去实现创建、升级数据库的逻辑。
除了上面提到的两个抽象的方法外,SQLiteOpenHelper中还有两个非常重要的实例方法:getReadableDatabase()和getWriteableDatabase(),SQLiteOpenHelper的子类通过这两个方法来获取SQlite数据库的实例对象,并保证以同步的方式访问。通常情况下getReadableDatabase()和getWriteableDatabase()方法都是创建或者打开一个现有的数据库,并返回一个对数据库进行读写操作的对象。但是在某些情况下,例如磁盘已经满的情况下,getReadableDatabase()方法返回的对象将只以读的方式打开数据库,而getWriteableDatabase()方法将抛出异常。
1. 在本实验中,在书上的实验基础上增加了一个按照姓名查询的按钮,还有一个按照性别查询的按钮。首先这两个都需要在ContactDao.java中增加分别增加数据库。如下所示:
//根据姓名查询记录
public Cursor selectByName(String name){
SQLiteDatabase db = helper.getReadableDatabase();
return db.query(TABLE_NAME,null,"name=?",new String[]{name},null,null,null);
}
//根据性别查询记录
public Cursor selectBySex(String sex){
SQLiteDatabase db = helper.getReadableDatabase();
return db.query(TABLE_NAME,null,"sex=?",new String[]{sex},null,null,null);
}
2. 然后在MainActivity.java中对这新增加的两个按钮进行监听。又因为增加了性别选项,所以要在添加数据中加入获取性别的数据
CheckedSexButton = findViewById(radioGroup.getCheckedRadioButtonId());
sex=CheckedSexButton.getText().toString();
3. 然后还要在MainActivity.java中写按姓名查询的逻辑和按性别查询的逻辑,这个可以参考上面查询整个数据的代码。
case R.id.btn_query1: // 按姓名查询
name = etName.getText().toString().trim();
Cursor cursor1 =dao.selectByName(name);
if (cursor1.getCount() == 0) {
tvList.setText("");
} else {
cursor1.moveToFirst();
tvList.setText(cursor1.getString(1) " : " cursor1.getString(2) " " cursor1.getString(3));
}
while (cursor1.moveToNext()) {
tvList.append("\n" cursor1.getString(1) " : " cursor1.getString(2) " " cursor1.getString(3));
}
cursor1.close();
break;
4. 最后要在DBHelper.java中的数据库里增加性别。
String sql = "CREATE TABLE contact(_id INTEGER PRIMARY KEY AUTOINCREMENT ,name VARCHAR(10),phonenumber VARCHAR(12),sex VARCHAR(2))";