Android数据库框架-xUtils使用(数据库映射(增删改查))

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

(0)
上一篇 2022年3月21日
下一篇 2022年3月21日

相关推荐