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();
        }

    }
}







  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
xUtils 包含了很多实用的android工具. xUtils 支持超大文件(超过2G)上传,更全面的http请求协议支持(11种谓词),拥有更加灵活的ORM,更多的事件注解支持且不受混淆影响... xUtils 最低兼容Android 4.0 (api level 14). (Android 2.3?) xUtils3变化较多所以建立了新的项目不在旧版(github.com/wyouflf/xUtils)上继续维护, 相对于旧版本: HTTP实现替换HttpClient为UrlConnection, 自动解析回调泛型, 更安全的断点续传策略. 支持标准的Cookie策略, 区分domain, path. 事件注解去除不常用的功能, 提高性能. 数据库api简化提高性能, 达到和greenDao一致的性能. 图片绑定支持gif, webp; 支持圆角, 圆形, 方形等裁剪, 支持自动旋转... 使用Gradle构建时添加一下依赖即可: compile 'org.xutils:xutils:3.1.+' // or // compile 'org.xutils:xutils:3.1.15' 如果使用eclipse可以 点击这里下载aar文件, 然后用zip解压, 取出jar包和so文件. 混淆配置参考示例项目sample的配置 使用前配置 需要的权限 初始化 // 在application的onCreate中初始化 @Override public void onCreate() { super.onCreate(); x.Ext.init(this); x.Ext.setDebug(true); // 是否输出debug日志 ... } 使用@Event事件注解(@ContentView, @ViewInject等更多示例参考sample项目) /** * 1. 方法必须私有限定, * 2. 方法以Click或Event结尾, 方便配置混淆编译参数 : * -keepattributes *Annotation* * -keepclassmembers class * { * void *(android.view.View); * *** *Click(...); * *** *Event(...); * } * 3. 方法参数形式必须和type对应的Listener接口一致. * 4. 注解参数value支持数组: value={id1, id2, id3} * 5. 其它参数说明见{@link org.xutils.event.annotation.Event}类的说明. **/ @Event(value = R.id.btn_test_baidu1, type = View.OnClickListener.class/*可选参数, 默认是View.OnClickListener.class*/) private void onTestBaidu1Click(View view) { ... } 访问网络(更多示例参考sample项目) /** * 自定义实体参数类请参考: * 请求注解 {@link org.xutils.http.annotation.HttpRequest} * 请求注解处理模板接口 {@link org.xutils.http.app.ParamsBuilder} * * 需要自定义类型作为callback的泛型时, 参考: * 响应注解 {@link org.xutils.http.annotation.HttpResponse} * 响应注解处理模板接口 {@link org.xutils.http.app.ResponseParser} * * 示例: 查看 org.xutils.sample.http 包里的代码 */ BaiduParams params = new BaiduParams(); params.wd = "xUtils"; // 有上传文件时使用multipart表单, 否则上传原始文件流. // params.setMultipart(true); // 上传文件方式 1 // params.uploadFile = new File("/sdcard/test.txt"); // 上传

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值