第一步:在根目录的project里加入标记红色的依赖
buildscript {
repositories {
jcenter()
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.3.3'
classpath 'org.greenrobot:greendao-gradle-plugin:3.1.0'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
第二步:在创建的项目的build.gradle下添加标记红色的依赖,绿色为butterknife的依赖
apply plugin: 'com.android.application' apply plugin: 'org.greenrobot.greendao'(在头部添加)
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.android.support:appcompat-v7:26.+'
compile 'com.android.support.constraint:constraint-layout:1.0.2'
testCompile 'junit:junit:4.12'
compile 'org.greenrobot:greendao:3.1.0'
compile 'com.jakewharton:butterknife:8.8.1'
annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1'
}
greendao {
schemaVersion 1
daoPackage 'chendemin.bwei.com.myapplication.gen'
targetGenDir 'src/main/java'
}
//添加bean类,会生成一个gen包,里边有三个类(DaoMaster,DaoSession,PersonDao)
@Entity
public class Person {
@Id
private Long id;
private String name;
private int age;
public int getAge() {
return this.age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return this.name;
}
public void setName(String name) {
this.name = name;
}
public Long getId() {
return this.id;
}
public void setId(Long id) {
this.id = id;
}
@Generated(hash = 1145075130)
public Person(Long id, String name, int age) {
this.id = id;
this.name = name;
this.age = age;
}
@Generated(hash = 1024547259)
public Person() {
}
@Override
public String toString() {
return "Person{" +
"id=" + id +
", name='" + name + '\'' +
", age=" + age +
'}';
}
}
//主mainactivity(有两种实现方法,封装以及不封装,注释掉的为不封装的)
//封装的工具类public class MainActivity extends AppCompatActivity { @BindView(R.id.txt_show) TextView txtShow; private PersonDao dao; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ButterKnife.bind(this); // // 初始化数据库的一些配置 // DaoMaster.DevOpenHelper helper = new DaoMaster.DevOpenHelper(this, "user", null); // // 获取数据库操作对象 // SQLiteDatabase database = helper.getWritableDatabase(); // //获取DaoMaster对象 // DaoMaster daoMaster = new DaoMaster(database); // // 获取DaoSession对象 // DaoSession session = daoMaster.newSession(); // // 拿到要操作的对象 // dao = session.getPersonDao(); dao = DbHelper.getInstance(this).getPersonDao(); } @OnClick({R.id.btn_insert, R.id.btn_delete, R.id.btn_updata, R.id.btn_query}) public void onViewClicked(View view) { switch (view.getId()) { case R.id.btn_insert: Person person1 = new Person(); person1.setName("zhansgan"); person1.setAge(12); long insert = dao.insert(person1); Log.i("CDM", "插入了: " + insert); break; case R.id.btn_delete: Person person2 = new Person(); person2.setId(2L); dao.delete(person2); break; case R.id.btn_updata: Person person3 = new Person(4L,"Lisi",27); dao.update(person3); break; case R.id.btn_query: List<Person> list = dao.loadAll(); String Username=""; for (int i=0;i<list.size();i++) { Username += list.get(i).getName() + ","; } Log.i("CDM", Username.toString()); break; } } }
//主布局文件public class DbHelper { private static volatile DbHelper instance; private final DaoSession session; private DbHelper(Context context) { // 初始化数据库的一些配置 DaoMaster.DevOpenHelper helper = new DaoMaster.DevOpenHelper(context, "user", null); // 获取数据库操作对象 SQLiteDatabase database = helper.getWritableDatabase(); //获取DaoMaster对象 DaoMaster daoMaster = new DaoMaster(database); // 获取DaoSession对象 session = daoMaster.newSession(); // 拿到要操作的对象 } public static DbHelper getInstance(Context context) { if (instance == null) { synchronized (DbHelper.class) { if (null == instance) { instance = new DbHelper(context); } } } return instance; } public PersonDao getPersonDao() { return session.getPersonDao(); } }
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <TextView android:id="@+id/txt_show" android:layout_width="match_parent" android:gravity="center" android:layout_height="wrap_content" android:text="数据库" /> <Button android:id="@+id/btn_insert" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="添加数据库"/> <Button android:id="@+id/btn_delete" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="删除数据库"/> <Button android:id="@+id/btn_updata" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="改数据库"/> <Button android:id="@+id/btn_query" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="查询数据库"/> </LinearLayout>