xUtils3之数据库笔记

数据库的初始化放在Application,且必须提供获取数据库的方法,使得在应用程序的任何地方都可以直接获取数据库,并操作数据库,不然重复的获取与释放只能增加内存无谓的消耗


首先:修改AndroidManifest.xml

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

android:name=".AppApplication"


Application.java

package com.snow.myapplication;

import android.app.Application;

import org.xutils.DbManager;
import org.xutils.x;

/**
 * Created by snow on 2016/4/18.
 */
public class AppApplication extends Application {


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


    @Override
    public void onCreate() {
        super.onCreate();
        x.Ext.init(this);//Xutils初始化
        daoConfig = new DbManager.DaoConfig()
                .setDbName("snow_db")//创建数据库的名称
                .setDbVersion(1)//数据库版本号
                .setDbUpgradeListener(new DbManager.DbUpgradeListener() {
                    @Override
                    public void onUpgrade(DbManager db, int oldVersion, int newVersion) {
                        // TODO: ...
                        // db.addColumn(...);
                        // db.dropTable(...);
                        // ...
                    }
                });//数据库更新操作
    }
}

Child.java



package com.snow.myapplication;


import org.xutils.DbManager;
import org.xutils.db.annotation.Column;
import org.xutils.db.annotation.Table;
import org.xutils.ex.DbException;

/**
 * Author: wyouflf
 * Date: 13-7-29
 * Time: 下午5:04
 */
@Table(name = "child")
public class Child {

    @Column(name = "id", isId = true)
    private int id;

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

    @Column(name = "email")
    private String email;

    @Column(name = "parentId" /*, property = "UNIQUE"//如果是一对一加上唯一约束*/)
    private long parentId; // 外键表id

    // 这个属性被忽略,不存入数据库
    private String willIgnore;

    @Column(name = "text")
    private String text;

    public Parent getParent(DbManager db) throws DbException {
        return db.findById(Parent.class, parentId);
    }

    public long getParentId() {
        return parentId;
    }

    public void setParentId(long parentId) {
        this.parentId = parentId;
    }

    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 getWillIgnore() {
        return willIgnore;
    }

    public void setWillIgnore(String willIgnore) {
        this.willIgnore = willIgnore;
    }

    public String getText() {
        return text;
    }

    public void setText(String text) {
        this.text = text;
    }

    @Override
    public String toString() {
        return "Child{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", email='" + email + '\'' +
                ", parentId=" + parentId +
                ", willIgnore='" + willIgnore + '\'' +
                ", text='" + text + '\'' +
                '}';
    }
}

MainActivity.java

package com.snow.myapplication;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;

import org.xutils.DbManager;
import org.xutils.ex.DbException;
import org.xutils.x;

import java.util.List;

public class MainActivity extends AppCompatActivity {

    private AppApplication appApplication;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        appApplication=new AppApplication();

        DbManager db = x.getDb(appApplication.getDaoConfig());
        Child child=new Child();
        child.setName("小黑");
        child.setEmail("gmaillove@163.com");


        try {
            db.save(child);

        } catch (DbException e) {
            e.printStackTrace();
        }


        try {
            //List<Child> lyjPersons=db.selector(Child.class).findAll();
            List<Child> lyjPersons=db.selector(Child.class).where("name","==","小白").findAll();
            System.out.println("总共找到:"+lyjPersons.size());






            for (int i=0;i<lyjPersons.size();i++){
               System.out.println("Child:"+i+"  .name="+lyjPersons.get(i).getName());
                lyjPersons.get(i).setName("小白猪");
                db.update(lyjPersons.get(i));
               // db.delete(lyjPersons.get(i));

            }
        } catch (DbException e) {
            e.printStackTrace();
        }


    }
}

package com.snow.myapplication;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import org.xutils.DbManager;
import org.xutils.ex.DbException;
import org.xutils.x;
import java.util.List;


public class MainActivity extends AppCompatActivity {


    private AppApplication appApplication;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        appApplication=new AppApplication();

        //添加数据
        DbManager db = x.getDb(appApplication.getDaoConfig());
        Child child=new Child();
        child.setName("小黑");
        child.setEmail("gmaillove@163.com");
        try {
            db.save(child);
        } catch (DbException e) {
            e.printStackTrace();
        }


        //查找数据
        DbManager db = x.getDb(appApplication.getDaoConfig());
        Child child=new Child();
        child.setName("小黑");
        child.setEmail("gmaillove@163.com");
        try {
            List<Child> lyjPersons=db.selector(Child.class).findAll();
            for (int i=0;i<lyjPersons.size();i++){
               System.out.println("Child:"+i+"  .name="+lyjPersons.get(i).getName());
            }
        } catch (DbException e) {
            e.printStackTrace();
        }


        //查找字段
        DbManager db = x.getDb(appApplication.getDaoConfig());
        Child child=new Child();
        child.setName("小黑");
        child.setEmail("gmaillove@163.com")
        try {
            List<Child> lyjPersons=db.selector(Child.class).where("name","==","小黑").findAll();
            System.out.println("总共找到:"+lyjPersons.size());
            for (int i=0;i<lyjPersons.size();i++){
               System.out.println("Child:"+i+"  .name="+lyjPersons.get(i).getName());
            }
        } catch (DbException e) {
            e.printStackTrace();
        }

        //更新字段
        DbManager db = x.getDb(appApplication.getDaoConfig());
        Child child=new Child();
        child.setName("小黑");
        child.setEmail("gmaillove@163.com")

        try {
            List<Child> lyjPersons=db.selector(Child.class).where("name","==","小黑").findAll();
            System.out.println("总共找到:"+lyjPersons.size());

            for (int i=0;i<lyjPersons.size();i++){
               System.out.println("Child:"+i+"  .name="+lyjPersons.get(i).getName());
                lyjPersons.get(i).setName("小白猪");
                db.update(lyjPersons.get(i));
            }
        } catch (DbException e) {
            e.printStackTrace();
        }


       //删除字段
        DbManager db = x.getDb(appApplication.getDaoConfig());
        Child child=new Child();
        child.setName("小黑");
        child.setEmail("gmaillove@163.com")


        try {
            List<Child> lyjPersons=db.selector(Child.class).where("name","==","小黑").findAll();
            System.out.println("总共找到:"+lyjPersons.size());
            for (int i=0;i<lyjPersons.size();i++){
               System.out.println("Child:"+i+"  .name="+lyjPersons.get(i).getName());
                db.delete(lyjPersons.get(i));
            }
        } catch (DbException e) {
            e.printStackTrace();
        }

    }
}







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值