初始化数据库
public class MyJApplication 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("mydb")//创建数据库的名称
.setDbVersion(1)//数据库版本号
.setDbUpgradeListener(new DbManager.DbUpgradeListener() {
@Override
public void onUpgrade(DbManager db, int oldVersion, int newVersion) {
// TODO: ...
// db.addColumn(...);
// db.dropTable(...);
// ...
}
});//数据库更新操作
}
}
上面的注释明了,有必要说明的一点是setDbDir(new File(“/sdcard”)),可以将数据库存储在你想存储的地方,如果不设置,那么数据库默认存储在/data/data/你的应用程序/database/xxx.db下。这里我们就默认放在应用程序下。
实体类
@Table(name = "history_url")
public class HistoryUrl {
@Column(name = "_id", isId = true)
private int id;
@Column(name = "url")
private String url;
//保留空参构造器
public HistoryUrl() {
}
public HistoryUrl(int id, String url) {
this.id = id;
this.url = url;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
HistoryUrl that = (HistoryUrl) o;
return url.equals(that.url);
}
@Override
public int hashCode() {
return url != null ? url.hashCode() : 0;
}
@Override
public String toString() {
return "HistoryUrl{" +
"id=" + id +
", url='" + url + '\'' +
'}';
}
}
查找与保存
/**
* 返回包含所有记录的对象集合
*
* @return
*/
public List<HistoryUrl> getAll(){
List<HistoryUrl> list = null;
DbManager db = null;
try {
db = x.getDb(config);
list = db.findAll(HistoryUrl.class);
} catch (Exception e) {
e.printStackTrace();
}finally {
try {
db.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if(list==null){
list = new ArrayList<>();
}
return list;
}
/**
* 保存一条记录
*
* @param historyUrl
*/
public void save(HistoryUrl historyUrl) {
DbManager db = null;
try {
db = x.getDb(config);
//将数据插入表, 同时将生成的id设置到对象中
db.saveBindingId(historyUrl);
}catch (Exception e){
e.printStackTrace();
}finally {
try {
db.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}