GreenDao的简单使用
程序员文章站
2022-03-20 14:50:32
...
(一)
整个项目的gradle中的dependencies中添加代码,如下:
dependencies {
classpath 'com.android.tools.build:gradle:3.0.0'
//需要手动添加的
classpath 'org.greenrobot:greendao-gradle-plugin:3.2.2'
}
子app中的gradle中最上面添加代码*** 1***,如下:
apply plugin: 'com.android.application'
//需要手动添加
apply plugin: 'org.greenrobot.greendao'
子app中的gradle中android下面添加代码*** 2***,如下:
greendao{
schemaVersion 1 // 数据库版本号
//注意路径需要修改,是本项目中activity的对应路径
daoPackage 'zhangyanran20181007.bwie.com.greend.greendao'//greenDao 自动生成的代码保存的包名
targetGenDir 'src/main/java' //自动生成的代码存储的路径,默认是 build/generated/source/greendao.
generateTests false //true的时候自动生成测试单元
//targetGenDirTests: 测试单元的生成目录默认是 src/androidTest/java
}
最后添加依赖,如下:
implementation 'org.greenrobot:greendao:3.2.2'
创建一个bean包,将数据的信息封装(可以根据对应信息的自段修改),代码如下:
@Entity(nameInDb = "user_info",indexes = {@Index(value = "name DESC",unique = true)})
public class User {
@Id
private Long id;
@Property(nameInDb = "USERNAME")
@NotNull
private String name;
private String sex;
@Transient int tempUsageCount;
然后点击小锤子,自动生成greendao对应的三个类
(二)
创建一个初始化MyAppliction类,继承appliction,在AndroidManifest中注册一下,代码如下:
public class MyAppliction extends Application {
private final static String DB_NAME = "testt.db";
private static DaoSession daoSession;
@Override
public void onCreate() {
super.onCreate();
DaoMaster.DevOpenHelper helper = new DaoMaster.DevOpenHelper(this, DB_NAME);
SQLiteDatabase database = helper.getWritableDatabase();
DaoMaster daoMaster = new DaoMaster(database);
daoSession = daoMaster.newSession();
}
public static DaoSession getDaoSession(){
return daoSession;
}
}
(三)
最后在MainActivity中调用对应数据库的方法实现日志打印,代码如下:
public class MainActivity extends AppCompatActivity {
private UserDao userDao;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
init();
test();
testSearch();
}
private void testSearch() {
List<User> users = userDao.loadAll();
for (int i = 0; i < users.size(); i++) {
User usert = users.get(i);
Log.e("myMessage"," name = "+usert.getName() + "sex=" + usert.getSex());
}
}
private void test() {
User user = new User();
user.setId(001l);
user.setSex("男");
user.setName("张艳燃");
userDao.insert(user);
}
private void init() {
DaoSession daoSession = MyAppliction.getDaoSession();
userDao = daoSession.getUserDao();
}
}