数据库之xUtils:增删改查_表与表之间

这篇博客介绍了如何在Android中使用xUtils框架进行数据库操作,包括引入框架、创建BaseApplication、定义User和Order类来表示数据库表、实现增删改查的函数,并给出了在其他类中调用这些函数的示例。xUtils是一个包含DbUtils、ViewUtils、HttpUtils和BitmapUtils等模块的快速开发框架。
摘要由CSDN通过智能技术生成

xUtils数据库是xUtils框架里包含的一部分。xUtils是一款快速开发android移动应用的框架,其包含了很多实用的android工具. 目前xUtils主要有四大模块:DbUtils模块、ViewUtils模块、HttpUtils模、BitmapUtils模块。
详细介绍请见:
kevin-gox的Utils3中对Sqlite数据库的操作 - CSDN博客 http://blog.csdn.net/tybaoerge/article/details/50414471

此处我只介绍此数据库的使用方法。

1.引入xUtils框架:

  compile 'org.xutils:xutils:3.3.26'

添加权限:

 <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

<application
        android:name=".BaseApplication"
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".activity.HomeActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
      
    </application>

2.新建BaseApplication,建立数据库

注释很详细,就不多做介绍了:

import android.app.Application;
import org.xutils.DbManager;
import org.xutils.db.table.TableEntity;
import org.xutils.ex.DbException;
import org.xutils.x;

/**
 * daoCinfig对象主要用于对于数据库的一些初始化设置
 * 1.setDbName 设置数据库的名称
 * 2.setDbDir 设置数据库存放的路径
 * 3.setDbVersion 设置数据库的版本
 * 4.setAllowTransaction(true) 设置允许开启事务
 * 5.setDbUpgradeListener 设置一个版本升级的监听方法
 *
 * 注意:
 * 数据库里面表的创建的时间,
 * 只有在你对数据库里面的操作涉及到这张表的操作时,会先判断当前的表是否存在,
 * 如果不存在,才会创建一张表,如果存在,才会进行相应的CRUD操作
 */

public class BaseApplication extends Application{

    public static DbManager.DaoConfig daoConfig;

    @Override
    public void onCreate() {
        super.onCreate();
        //框架初始化
        x.Ext.init(this);
        //初始化数据库
        initDb();
    }

    public static DbManager.DaoConfig getDaoConfig() {
        return daoConfig;
    }

    /**
     * 初始化数据库、建表
     */
    protected void initDb() {
        //本地数据的初始化
        daoConfig = new DbManager.DaoConfig()
                .setDbName("xutils_db") //设置数据库名
                .setDbVersion(1) //设置数据库版本,每次启动应用时将会检查该版本号,
                //发现数据库版本低于这里设置的值将进行数据库升级并触发DbUpgradeListener
                .setAllowTransaction(true)//设置是否开启事务,默认为false关闭事务
                .setTableCreateListener(new DbManager.TableCreateListener() {
                    @Override
                    public void onTableCreated(DbManager db, TableEntity<?> entity) {

                    }
                })//设置数据库创建时的Listener
                .setDbUpgradeListener(new DbManager.DbUpgradeListener() {
                    @Override
                    public void onUpgrade(DbManager db, int oldVersion, int newVersion) {
                        if( oldVersion < newVersion ){
                            db.getDatabase().setVersion( newVersion);
                        }
                    }
                });//设置数据库升级时的Listener,这里可以执行相关数据库表的相关修改,比如alter语句增加字段等
        //.setDbDir(null);//设置数据库.db文件存放的目录,默认为包名下databases目录下

    }

}

3.建立User和Order类(其实就是表table):

一个User对应多个Order

User

/**
 * 如果需要添加联合唯一索引则可以在@Table注解加上
 * onCreated = “CREATE UNIQUE INDEX unique_name ON table_name(column1, column2)”)
 * 为表创建column1,column2联合唯一索引
 */
//为表创建NAME,EMAIL联合唯一索引
@Table(name = "user",
        onCreated = "CREATE UNIQUE INDEX realative_unique ON user(NAME, EMAIL)")
public class User implements Serializable{
    @Column(
            name = "ID",
            isId = true,
            autoGen = true
    )
    private int id;
    @Column(name = "NAME",property = "NOT NULL")//NAME字段非空
    private String name;

    @Column(name = "EMAIL",property = "NOT NULL")
    private String email;

    @Column(name = "MOBILE")
    private String mobile;

    @Column(name = "REGTIME")
    private Date regTime;

    @Column(name = "ORDER")
    private List<Order> orderlist;

    //国家
    @Column(name = "country",property = "China")
    private String country = "";

    public User(){

    }

    public User(String name, String email, String mobile){
        this.name = name;
        this.email = email;
        this.mobile = mobile;
    }


    public String getCountry() {
        return country;
    }

    public void setCountry(String country) {
        this.country = country;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }

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

    public String getEmail() {
        return email;
    }
    public void setEmail(String email) {
        this.email = email;
    }

    public String getMobile() {
        return mobile;
    }

    public void setMobile(String mobile) {
        this.mobile = mobile;
    }

    public Date getRegTime() {
        return regTime;
    }

    public void setRegTime(Date regTime) {
        this.regTime = regTime;
    }

    public List<Order> getOrders(DbManager db) throws DbException {
        return db.selector(Order.class).where("USERID", "=", this.id).findAll();
    }

    public void setOrderlist(List<Order> orderlist) {
        this.orderlist = orderlist;
    }

    public String toString(){
        return "{id=" + id + ",  name=" + name + ",  email=" + email + ",  mobile="
                + mobile + ",country = " + country + "}\n";
    }

}

o

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值