1 创建数据库创建表
public class OrmliteDBHelper extends OrmLiteSqliteOpenHelper {
private HashMap<String,Dao> daoMap = new HashMap<>();
public OrmliteDBHelper(Context context) { super(context, "demo1.db", null, 1); } @Override public void onCreate(SQLiteDatabase database, ConnectionSource connectionSource) { try { TableUtils.createTable(connectionSource,User.class); } catch (SQLException e) { e.printStackTrace(); } } @Override public void onUpgrade(SQLiteDatabase database, ConnectionSource connectionSource, int oldVersion, int newVersion) { } public Dao getDao(Class clazz){Dao dao = daoMap.get(clazz.getSimpleName());
try { if (dao == null){
dao = super.getDao(clazz);
daoMap.put(clazz.getSimpleName(),dao);
}
return dao;
} catch (SQLException e) { e.printStackTrace(); } return null; }}2 增,删,查,绑定事务方法
1插入方法
private void insert() {
for (int i = 0; i < 10; i++) {
User user = new User();
user.username = "aaa"+i;
try {
dao.create(user);
} catch (SQLException e) {
e.printStackTrace();
}
}
}
2删除方法
private void deleteData() {
ArrayList<User> userList = new ArrayList<>();
for (int i = 0; i < 10; i++) {
User user = new User();
user.username = "aaa"+i;
userList.add(user);
try {
DeleteBuilder<User, Integer> deleteBuilder = dao.deleteBuilder();
dao.deleteBuilder().where().eq("username", "aaa" + i);
deleteBuilder.delete();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
3查询方法
private void queryData() {
try {
List<User> userList = dao.queryForAll();
for (int i = 0; i < userList.size(); i++) {
Log.i("",userList.get(i).username);
}
} catch (SQLException e) {
e.printStackTrace();
}
}
4绑定事务方法
private void insertTransaction() {
SQLiteDatabase db = ormliteDBHelper.getReadableDatabase();
AndroidDatabaseConnection connection = new AndroidDatabaseConnection(db, true);
Savepoint savepoint = null;
try {
//指定事务的回滚点
savepoint = connection.setSavePoint("start");
//告知ormlite不要默认提交事务,事务由自己管理
connection.setAutoCommit(false);
for (int i = 0; i < 10; i++) {
User user = new User();
user.username = "aaa"+i;
try {
if (i == 5){
int a = 1/0;
}
dao.create(user);
} catch (SQLException e) {
e.printStackTrace();
}
}
//提交事务
connection.commit(savepoint);
}catch (Exception e){
e.printStackTrace();
try {
connection.rollback(savepoint);
} catch (SQLException e1) {
e.printStackTrace();
}
}