DbUtils在SQLite中的应用

前端之家收集整理的这篇文章主要介绍了DbUtils在SQLite中的应用前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

why use DbUtils ?

DBUtils.PersistentDB 实现了强硬的、线程安全的、顽固的数据库连接,使用DB-API 2模块。DBUtils.PooledDB 实现了一个强硬的、线程安全的、有缓存的、可复用的数据库连接。
DbUtils作用有三:
    1.丢一个sql,给一个结果;
    2.把结果包装成Bean、Map、List或Object[]形式;
    3.关闭Connection、Statement、ResultSet时候无需写try catch,一行关闭

DbUtils用在sql数据库的查找

dbutils支持返回以下类型的结果:

  • ArrayHandler :将结果集中第一行的数据转化成对象数组。返回值类型:–Object[]
  • ArrayListHandler将结果集中所有的数据转化成List。返回值类型:List (Object[])
  • BeanHandler :将Object中第一行的数据转化成类对象。返回值类型:T
  • BeanListHandler :将Object中所有的数据转化成List,List中存放的是类对象。返回值类型:List
  • ColumnListHandler :将Object中某一列的数据存成List,List中存放的是 Object对象。返回值类型:List
  • KeyedHandler :将Object中存成映射,key为某一列对应为Map。Map中存放的是数据。Map<关键字字段值,map<列名,字段值>>返回值类型:
  • MapHandler :将结果集中第一行的数据存成Map<列名,字段值>映射。返回值类型:Map(String,Object)
  • MapListHandler :将结果集中所有的数据存成List。List中存放的是Map<列名,字段值>。
  • ScalarHandler :返回结果集中的第一行的指定列的一个值。返回值类型:Object

案例

1.在MysqLiteOpenHelpter类中新建库

public class MysqLiteOpenHelpter extends sqliteOpenHelper {
    public MysqLiteOpenHelpter(Context context,String name,sqliteDatabase.CursorFactory factory,int version) {
        super(context,name,factory,version);
    }
    public MysqLiteOpenHelpter(Context context,String name){
        this(context,null,1);//创建数据库
    }
                               @Override
    public void onCreate(sqliteDatabase db) {
      db.execsql("create table if not exists student(id integer primary key autoincrement,name varchar(20),password varchar(20))");
    }

    @Override
    public void onUpgrade(sqliteDatabase db,int oldVersion,int newVersion) {

    }
}

2、Student类,包含属性方法

@Table(name="student")//注意要导入xUtils包
public class Student {
    @Column(column="id")
    private  String id;
    private  String name;
    private String password;

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }
}

3、activity中

public class MainActivity extends Activity implements View.OnClickListener {

……

 MysqLiteOpenHelpter helpter = new MysqLiteOpenHelpter(getApplicationContext(),"MY_FIRST_DB.db");//DB的名字
 ……
//通常的查询方法

Cursor cursor=database.rawQuery("select * from student",null);
                cursor.moveToFirst();
                while(!cursor.isAfterLast()){
                    String name=cursor.getString(cursor.getColumnIndex("name"));
                    String password = cursor.getString(cursor.getColumnIndex("password"));
                    Log.d("cursor","用户名"+name+" 密码 "+password);
                    Toast.makeText(MainActivity.this,"用户名"+name+"密码 "+password,Toast.LENGTH_SHORT).show();
                    cursor.moveToNext();
                } 
//使用DbUtils查询
 DbUtils dbUtils = DbUtils.create(this,"MY_FIRST_DB.db");//只需要对应库的名字即可
        try {
            List<Student> students = dbUtils.findAll(Selector.from(Student.class));//结果包装成list的形式
            for(Student student:students){
                Log.d("cursor","用户名 "+student.getName()+" 密码"+student.getPassword());
            }
        } catch (DbException e) {
            e.printStackTrace();
        }
原文链接:https://www.f2er.com/sqlite/199345.html

猜你在找的Sqlite相关文章