Xutils 3.0+数据库操作
源码下载地址:http://download.csdn.net/detail/sserf/9838505
DbManager db;
public void inItDateBase() {
try {
db = x.getDb(daoConfig);
} catch (Exception e) {
System.out.println("创建数据库失败");
}
}
DbManager.DaoConfig daoConfig = new DbManager.DaoConfig()
.setDbName("testBB.db")
// 不设置dbDir时, 默认存储在app的私有目录.
// .setDbDir(new File("/sdcard")) // "sdcard"的写法并非最佳实践, 这里为了简单, 先这样写了.
.setDbVersion(3)
.setDbOpenListener(new DbManager.DbOpenListener() {
@Override
public void onDbOpened(DbManager db) {
// 开启WAL, 对写入加速提升巨大
db.getDatabase().enableWriteAheadLogging();
}
})
.setDbUpgradeListener(new DbManager.DbUpgradeListener() {
@Override
public void onUpgrade(DbManager db, int oldVersion, int newVersion) {
Toast.makeText(MainActivity.this,newVersion,Toast.LENGTH_SHORT).show();
// TODO: ...
// db.addColumn(...);
// db.dropTable(...);
// ...
// or
try {
db.dropDb();
} catch (Exception e) {
// TODO: handle exception
}
}
});
//submit
private void submit() {
Persion persion = new Persion();
persion.name = et_name.getText().toString();
persion.age = et_age.getText().toString();
persion.sex = et_sex.getText().toString();
try {
db.saveOrUpdate(persion);
Toast.makeText(this, "添加成功", Toast.LENGTH_SHORT).show();
et_name.setText("");
et_age.setText("");
et_sex.setText("");
} catch (DbException e) {
Toast.makeText(this, "ERROR!", Toast.LENGTH_SHORT).show();
e.printStackTrace();
}
}
//query
private void query() {
tv_detail.setText("");
try {
persions = db.findAll(Persion.class);
for (int i = 0; i < persions.size(); i++) {
tv_detail.append(persions.get(i).toString() +"\n");
}
} catch (DbException e) {
e.printStackTrace();
}
}
//delete
private void delete() {
try {
int posi = persions.size() - 1;
if(posi < 0)
return;
db.deleteById(Persion.class, persions.get(posi).id);
Toast.makeText(this, "删除成功", Toast.LENGTH_SHORT).show();
} catch (DbException e) {
e.printStackTrace();
}
}
//edit
private void edit() {
try {
persions = db.findAll(Persion.class);
} catch (DbException e1) {
e1.printStackTrace();
}
if (persions.size() <= 0)
return;
persions.get(0).name = et_name.getText().toString();
persions.get(0).age = et_age.getText().toString();
persions.get(0).sex = et_sex.getText().toString();
try {
//假设修改第一个
db.saveOrUpdate(persions.get(0));
Toast.makeText(this, "修改成功!", Toast.LENGTH_SHORT).show();
} catch (DbException e) {
e.printStackTrace();
}
}
private static final int REQUECT_CODE_SDCARD = 11;//内存卡
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
PermissionGen.onRequestPermissionsResult(this, requestCode, permissions, grantResults);
}
@PermissionSuccess(requestCode = REQUECT_CODE_SDCARD)
public void doSomething() {
inItDateBase();
}
@PermissionFail(requestCode = REQUECT_CODE_SDCARD)
public void doFailSomething() {
Toast.makeText(MainActivity.this, getPermessionStr("存储卡"), Toast.LENGTH_SHORT).show();
this.finish();
}
public String getPermessionStr(String permessName) {
return "在设置 - 应用 - " + getString(R.string.app_name) + " - 权限中开启" + permessName + "权限,以正常使用相关功能";
}