gradle
greenDao
compile 'de.greenrobot:greendao:2.1.0'
greendao-generator,生成器
compile 'de.greenrobot:greendao-generator:2.1.0'
java mudole,帮助生成Dao文件,以及实体类,单独进行java程序的运行后生成Android相关文件,再进行编写
package com.example;
import java.io.IOException;
import de.greenrobot.daogenerator.DaoGenerator;
import de.greenrobot.daogenerator.Entity;
import de.greenrobot.daogenerator.Schema;
public class MyClass {
public static void main(String[] args) {
Schema schema = new Schema(1, "com.shen.greendaodemo.entity");
schema.setDefaultJavaPackageDao("com.shen.greendaodemo.dao");
Entity user = schema.addEntity("User");
user.addIdProperty().autoincrement();
user.addStringProperty("name").notNull();
user.addStringProperty("cardID").unique();
user.addIntProperty("age");
try {
DaoGenerator generator = new DaoGenerator();
generator.generateAll(schema,"app/src/main/java-gen");
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
}
activity对数据库操作
package com.shen.greendaodemo;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import com.shen.greendaodemo.dao.DaoMaster;
import com.shen.greendaodemo.dao.DaoSession;
import com.shen.greendaodemo.dao.UserDao;
import com.shen.greendaodemo.entity.User;
import java.util.List;
import de.greenrobot.dao.query.QueryBuilder;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
DaoMaster.DevOpenHelper helper = new DaoMaster.DevOpenHelper(this, "test.db", null);
DaoMaster master = new DaoMaster(helper.getWritableDatabase());
DaoSession session = master.newSession();
UserDao userDao = session.getUserDao();
userDao.insert(new User(6L,"张神","100065",10));
List<User> users = userDao.loadAll();
Log.d("123","users: "+users.size());
QueryBuilder<User> builder = userDao.queryBuilder();
builder.where(UserDao.Properties.Age.eq(13),UserDao.Properties.Name.eq("李四"));
List<User> list = builder.build().list();
Log.d("123", "list: "+list.size());
userDao.deleteAll();
userDao.delete(new User(3l));
userDao.update(new User(4L,"张虎","100004",13));
}
}