数据库的初始化放在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();
}
}
}
本文介绍如何使用XUtils库进行数据库的初始化配置及增删改查等基本操作,展示了具体的代码实现。
695

被折叠的 条评论
为什么被折叠?



