大buide中,导入
classpath 'org.greenrobot:greendao-gradle-plugin:3.2.0'
配置数据库,注册Application
/**
* 用来配置数据库
*/
public class MyApp extends Application {
private static DaoSession mDaoSession;
@Override
public void onCreate() {
super.onCreate();
initGreenDao();
}
private void initGreenDao() {
//第一步创建OpenHelper类
DaoMaster.DevOpenHelper openHelper = new DaoMaster.DevOpenHelper(this, "lxx.db");
//开启一个可写数据库类
SQLiteDatabase writableDatabase = openHelper.getWritableDatabase();
//通过DaoMaster封装
DaoMaster master = new DaoMaster(writableDatabase);
mDaoSession = master.newSession();
}
public static DaoSession getDaoSession() {
return mDaoSession;
}
}
这是小build中导入的
implementation 'org.greenrobot:greendao:3.2.2'
greendao {
schemaVersion 1//数据库版本号
daoPackage 'com.example.test_butterknife.greendao'//设置DaoMaster、DaoSession、Dao包名
targetGenDir 'src/main/java'//设置DaoMaster、DaoSession、Dao目录
//targetGenDirTest:设置生成单元测试目录
//generateTests:设置自动生成单元测试用例
}
需要新建一个实体类 通过@Entity 然后用锤子敲
@Entity
public class Teacher {
@Id(autoincrement = true)
private Long id;
private String name;
private String sex;
}
main中的使用
**
* 对象关系型数据库
* GreenDao 是一个数据库框架 也是注解型的框架
* 通过注解可以直接吧java的实体类直接创建成数据库
* 如何配置GreenDao
* 1:在项目的build.grade文件里加入一行代码 classpath 'org.greenrobot:greendao-gradle-plugin:3.2.0'
* 2:在app的build.grade里面加上代码 apply plugin: 'org.greenrobot.greendao'
* 3:在app的build.grad里面Android{}里加上代码
* greendao{
* schemaVersion 1 //指定数据库schema版本号,迁移等操作会用到
* //包名是活的这是变动的
* daoPackage 'soexample.umeng.com.greendaodemo.mydao' //dao的包名,包名默认是entity所在的包;
* targetGenDir 'src/main/java'//生成数据库文件的目录
* }
* 4:导入依赖 implementation 'org.greenrobot:greendao:3.2.2'
* 需要新建一个实体类 通过@Entity
* 通过锤子(make Project)
* 1:DaoMaster
* 2:DaoSession
* 3:StudentDao
*
* 查看当前市面上有多少开源框架 数据库的
* ORMLite 数据框架 GreenDao Facebook推出的Stetho
*
*/
public class MainActivity extends AppCompatActivity {
@BindView(R.id.Insert_Btn)
Button InsertBtn;
@BindView(R.id.Delete_Btn)
Button DeleteBtn;
@BindView(R.id.Update_Btn)
Button UpdateBtn;
@BindView(R.id.Select_Btn)
Button SelectBtn;
@BindView(R.id.Get_Content)
TextView GetContent;
private StudentDao mStuDao;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ButterKnife.bind(this);
mStuDao = MyApp.getDaoSession().getStudentDao();
}
@OnClick({R.id.Insert_Btn, R.id.Delete_Btn, R.id.Update_Btn, R.id.Select_Btn})
public void onViewClicked(View view) {
switch (view.getId()) {
case R.id.Insert_Btn:
insertStu();
break;
case R.id.Delete_Btn:
deleteStu();
break;
case R.id.Update_Btn:
updateStu();
break;
case R.id.Select_Btn:
selectStu();
break;
}
}
//插入数据
private void insertStu() {
Student student = new Student("李广强", "丑八怪", 38);
long insert = mStuDao.insert(student);
if (insert > 0) {
Toast.makeText(this, "插入成功", Toast.LENGTH_SHORT).show();
}
}
//删除数据 删除必须要删除数据库里面存在的数据
private void deleteStu() {
mStuDao.deleteByKey(1l);
Toast.makeText(this, "删除成功", Toast.LENGTH_SHORT).show();
}
//修改数据
private void updateStu() {
//修改必须要修改数据库里面存在的数据
Student student = mStuDao.load(1l);
student.setAge(3);
student.setName("wwd");
student.setSex("奇丑无比");
mStuDao.update(student);
}
//查询数据
private void selectStu() {
//查询所有数据
GetContent.setText("");
List<Student> students = mStuDao.loadAll();
GetContent.setText(students.toString());
}
}