Android入门数据库框架-xUtils(数据库映射(增删改查))
- 1.xUtils框架使用方法
- 2.数据库映射
- 1.增加数据
- 2.查看表格方式
- —修改数据库后查看表格方式
- 3.删除数据
- 1.根据id 删除
- 2.根据条件删除
- 4.修改数据
- 1.根据id 删除
- 2.根据条件删除
- 5.查询数据
- 1.根据条件查询数据
- 2.查询所有数据
Android 入门第七讲03- SQLite数据库(SQLite数据库概述,使用方法(SQL语法复习,SQLite的增删改查),案例实战-增加查询学生数据)
1.xUtils框架使用方法
第一步,导入依赖
implementation 'org.xutils:xutils:3.8.5'
第二步,MainActivity中添加代码
x.Ext.init(getApplication()); x.Ext.setDebug(BuildConfig.DEBUG);// 是否输出debug日志, 开启debug会影响性能. x.view().inject(this);//没有用到view注解可以先不用
第三步,在布局文件当中添加一个button
<?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <Button
android:id="@+id/button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="增加数据" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> </androidx.constraintlayout.widget.ConstraintLayout>
2.数据库映射
原生数据库:通过sql语法来对数据库进行操作
数据库框架-xUtils:通过对对象的操作 来对数据库进行操作
第一步,创建实体类对象 User
使用框架的好处是,我们不需要像之前一样去用sql语法创建表,而是通过在实体类中添加注解表示表名,然后通过实体类中的字段刚好对应上数据库表中的字段,可以通过ture来指定主键
@Table(name = "user") public class User { @Column(name = "id", isId = true) private int id; @Column(name = "username") private String username; @Column(name = "password") private String password; @Column(name = "age") private int age; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } @Override
public String toString() { return "User{" + "id=" + id + ", username='" + username + '\'' + ", password='" + password + '\'' + ", age=" + age + '}'; } }
在对数据库操作前,先创建DaoConfig 对象(作为成员变量)
DbManager.DaoConfig daoConfig = new DbManager.DaoConfig() .setDbName("test.db") // 不设置dbDir时, 默认存储在app的私有目录. // .setDbDir(new File("/sdcard")) // "sdcard"的写法并非最佳实践, 这里为了简单, 先这样写了. .setDbVersion(2) .setDbOpenListener(new DbManager.DbOpenListener() { @Override
public void onDbOpened(DbManager db) { // 开启WAL, 对写入加速提升巨大 db.getDatabase().enableWriteAheadLogging(); } }) .setDbUpgradeListener(new DbManager.DbUpgradeListener() { @Override
public void onUpgrade(DbManager db, int oldVersion, int newVersion) { // TODO: ... // db.addColumn(...); // db.dropTable(...); // ... // or // db.dropDb(); } });
1.增加数据
原来增加数据还要用到sql语法,这里直接创建一个DbManager ,然后这个DbManager 可以调用save方法来增加数据,然后这个save里面传的是这个user对象
DbManager db = null; try { db = x.getDb(daoConfig); User user = new User(); user.setUsername("test"+System.currentTimeMillis()); user.setPassword("passwd"); user.setAge(30); db.save(user); } catch (DbException e) { e.printStackTrace(); return; }
可以发现我们对数据库的操作实际上是对对象的操作,省去了很多sql的语法
查看
2.查看表格方式
Android中SQLite数据库查看推荐博客《Android Studio查看SQLite数据库方法大全》
我们这里 采用SQLite Expert Professional工具来查看
第一步:导出模拟器数据库文件
找到data目录下的—》data目录—》应用程序包名—》databases文件夹下的数据库文件
右键保存到本地
保存到指定位置
第二步:查看数据库文件(
打开第一步保存的db文件
找到文件路径
查看
—修改数据库后查看表格方式
第一步,关闭已经打开的数据库
第二步,重新运行,并且执行修改操作–这里我们执行添加数据
第三步,重新导出db文件
第三步,打开db文件所对应数据库(可以看到我们已经成功添加数据)
3.删除数据
1.根据id 删除
在点击事件中添加
DbManager db = null; try { db = x.getDb(daoConfig); User user = new User(); user.setId(2); db.delete(user); } catch (DbException e) { e.printStackTrace(); return; }
删除后查看
点击文内跳转到—修改数据库后查看表格方式
2.根据条件删除
DbManager db = null; try { db = x.getDb(daoConfig); db.delete(User.class, WhereBuilder.b("age", "=",30)); } catch (DbException e) { e.printStackTrace(); return; }
删除后查看
点击文内跳转到—修改数据库后查看表格方式
4.修改数据
1.根据id 删除
try { DbManager db = null; db = x.getDb(daoConfig); User user = new User(); user.setId(32); user.setUsername("new user"); user.setPassword("new passwd"); user.setAge(30); db.saveOrUpdate(user); // db.update(user);或者用这个方法修改 } catch (DbException e) { e.printStackTrace(); return; }
修改后查看
点击文内跳转到—修改数据库后查看表格方式
2.根据条件删除
try { DbManager db = null; db = x.getDb(daoConfig); db.update(User.class, WhereBuilder.b("age", "=", 30), // WhereBuilder.b("id", "=", 1).and("isAdmin", "=", true)., new KeyValue("username", "test_name"), new KeyValue("password", "new pss")); } catch (DbException e) { e.printStackTrace(); return; }
修改后查看
点击文内跳转到—修改数据库后查看表格方式
5.查询数据
1.根据条件查询数据
查询id=32的数据
DbManager db = null; try {// 删除1 db = x.getDb(daoConfig); List<User> users = new ArrayList<>(); users= db.selector(User.class).orderBy("id", true).limit(1000).where("id","=",32).findAll(); for (User user : users){ Log.i("testdb","test" + user); } } catch (DbException e) { e.printStackTrace(); return; }
运行,点击查询
2.查询所有数据
最后我们梳理一下,查询所有数据的操作是,通过创建一个db对象,然后调用它的selector的方法,往里面传一个User.class,表示我们要去User.class这个表里面去查,然后查到的数据自动封装到一个User对象里面,由于我们这个有很多条数据,所以就封装到了一个List集合里面,findAll()就表示查询所有的数据,
我们可以发现这个方法并不带有任何的sql语法
DbManager db = null; try {// 删除1 db = x.getDb(daoConfig); List<User> users = new ArrayList<>(); users= db.selector(User.class).findAll(); for (User user : users){ Log.i("testdb","test" + user); } } catch (DbException e) { e.printStackTrace(); return; }
ye,本讲讲的内容数据库框架-xUtils是不是简单又实用,谢谢您的阅读,本讲就到此结束啦
本文地址:https://blog.csdn.net/qq_46526828/article/details/107774238