https://github.com/sandlz/androidorm
sqlite orm.
https://github.com/sandlz/androidorm
android dao sqlite-orm
Last synced: 10 months ago
JSON representation
sqlite orm.
- Host: GitHub
- URL: https://github.com/sandlz/androidorm
- Owner: sandlz
- Created: 2016-12-23T07:09:34.000Z (about 9 years ago)
- Default Branch: master
- Last Pushed: 2017-01-02T13:29:39.000Z (almost 9 years ago)
- Last Synced: 2024-12-30T23:32:20.952Z (12 months ago)
- Topics: android, dao, sqlite-orm
- Language: Java
- Size: 148 KB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# AndroidOrm
[]()
[](http://www.apache.org/licenses/LICENSE-2.0)
[](https://developer.android.com/about/versions/android-4.2.html)
sqlite orm.
It'refer to swyouflf's xutils, thank swyouflf's offertory.
## ScreenShot
## 配置
### Gradle
```
compile 'me.sandlz:dblite:1.0.2'
```
### Application
在自定义Application里调用
```
// 初始化数据库
DbLite.init(this,false);
```
### 创建DBHelper类
```
/**
* 获取db的实例
* @return
*/
public static DBHelper2 getInstance() {
if(appContext==null){
throw new RuntimeException("请先在程序入口处初始化,调用init(ApplicationContext)");
}
if (instance == null) {
instance = new DBHelper2();
File dbFile=new File("/sdcard/sandlz");
if(!dbFile.exists()){
dbFile.mkdirs();
}
DbManager.DaoConfig daoConfig = new DbManager.DaoConfig()
.setDbName("test.sqlite.db")
// 不设置dbDir时, 默认存储在app的私有目录.
.setDbDir(new File("/sdcard/sandlz"))
.setDbVersion(1)
.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) {
// TODO: 可执行一些操作 如删除、更新表等
// db.addColumn(...);
// db.dropTable(...);
// ...
// or
// db.dropDb();
}
});
try {
instance.db = DbLite.getDb(daoConfig);
}catch (Exception e){
e.printStackTrace();
}
}
return instance;
}
```
在合适的地方调用
```
// this这里是在Application
DBHelper2.init(this);
```
## 使用
新增Dao操作类,对外提供增删改查方法,具体可根据需求修改,选择效率最高的方式(请在子线程调用dao方法,防止阻塞主线程,影响用户体验!!!)
最好设置主键,提高操作效率.
### 基础
#### 增
```
public void addUser(User user) {
if (null == user) {
return;
}
try {
DBHelper2.getInstance().getDb().saveOrUpdate(user);
} catch (DbException e) {
e.printStackTrace();
}
}
public void addUser(List users) {
if (null == users) {
return;
}
try {
DBHelper2.getInstance().getDb().saveOrUpdate(users);
} catch (DbException e) {
e.printStackTrace();
}
}
```
#### 删
```
public void deleteUser(User user) {
if (null == user) {
return;
}
try {
DBHelper2.getInstance().getDb().delete(user);
} catch (DbException e) {
e.printStackTrace();
}
}
public void deleteUser(List users) {
if (null == users) {
return;
}
try {
DBHelper2.getInstance().getDb().delete(users);
} catch (DbException e) {
e.printStackTrace();
}
}
public void deleteAllUser() {
try {
DBHelper2.getInstance().getDb().delete(User.class);
} catch (DbException e) {
e.printStackTrace();
}
}
```
#### 改
```
public void updateUser(User user) {
if (null == user) {
return;
}
try {
DBHelper2.getInstance().getDb().update(user);
} catch (DbException e) {
e.printStackTrace();
}
}
public void updateUser(List users) {
if (null == users) {
return;
}
try {
DBHelper2.getInstance().getDb().update(users);
} catch (DbException e) {
e.printStackTrace();
}
}
```
#### 查
```
public User queryUser(String userId) {
if (null == userId) {
return null;
}
User user = null;
try {
List users = DBHelper2.getInstance().getDb()
.selector(User.class)
.where("userId","=",userId)
.findAll();
if (null != users && users.size() > 0) {
user = users.get(0);
}
} catch (DbException e) {
e.printStackTrace();
}
return user;
}
public List queryAllUsers() {
List users = null;
try {
users = DBHelper2.getInstance().getDb().findAll(User.class);
} catch (DbException e) {
e.printStackTrace();
}
return users;
}
```
### 高级