需要使用的依赖和权限
apply plugin: 'com.android.application' apply plugin: 'org.greenrobot.greendao' // apply plugin
greendao { schemaVersion 1//数据库版本号 daoPackage 'com.com.sky.downloader.greendao'//设置DaoMaster、DaoSession、Dao包名 targetGenDir 'src/main/java'//设置DaoMaster、DaoSession、Dao目录 //targetGenDirTest:设置生成单元测试目录 //generateTests:设置自动生成单元测试用例 } dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) implementation 'com.android.support:appcompat-v7:27.1.1' implementation 'com.android.support.constraint:constraint-layout:1.1.0' testImplementation 'junit:junit:4.12' androidTestImplementation 'com.android.support.test:runner:1.0.2' androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2' implementation 'org.greenrobot:greendao:3.2.2' // add library }
build.gradle
mavenCentral() // add repository } dependencies { classpath 'com.android.tools.build:gradle:3.1.2' classpath 'org.greenrobot:greendao-gradle-plugin:3.2.2' // add plugin
activity_main
<?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" tools:context=".MainActivity"> <Button android:id="@+id/btInsert" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="增" /> <Button android:id="@+id/btDel" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="删" /> <Button android:id="@+id/btUpdate" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="改" /> <Button android:id="@+id/btSelect" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="查"/> </LinearLayout>
使用Log打印出数据
MainActivity
import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.Button; import com.bwie.test.app.MyApp; import com.bwie.test.bean.User; import com.com.sky.downloader.greendao.DaoSession; import com.com.sky.downloader.greendao.UserDao; import java.util.List; public class MainActivity extends AppCompatActivity implements View.OnClickListener{ private Button mBtInsert; private Button mBtDel; private Button mBtUpdate; private Button mBtSelect; private DaoSession daoSession; private UserDao userDao; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initView(); daoSession = MyApp.getDaoSession(); userDao = daoSession.getUserDao(); } private void initView() { mBtInsert = (Button) findViewById(R.id.btInsert); mBtInsert.setOnClickListener(this); mBtDel = (Button) findViewById(R.id.btDel); mBtDel.setOnClickListener(this); mBtUpdate = (Button) findViewById(R.id.btUpdate); mBtUpdate.setOnClickListener(this); mBtSelect = (Button) findViewById(R.id.btSelect); mBtSelect.setOnClickListener(this); } @Override public void onClick(View v) { switch (v.getId()) { default: break; case R.id.btInsert: for (int i = 1; i <= 10; i++) { User user = new User(); user.setName("name_" + i); user.setAge("age_" + i); userDao.insert(user); } break; case R.id.btDel: User user = new User(); user.setId(1L); user.setName("name_1"); user.setAge("age_1"); // userDao.delete(user); userDao.deleteByKey(2L); break; case R.id.btUpdate: User user1 = new User(); user1.setId(1L); user1.setName("八维"); user1.setAge("21"); userDao.update(user1); break; case R.id.btSelect: select3(); break; } } private void select3(){ List<User> list = userDao.queryBuilder().orderDesc(UserDao.Properties.Id).build().list(); for (int i = 0; i < list.size(); i++) { Log.e("MainActivity", list.get(i).toString()); } } private void select2() { List<User> list = userDao.queryBuilder().where(UserDao.Properties.Id.eq("3")).build().list(); for (int i = 0; i < list.size(); i++) { Log.e("MainActivity", list.get(i).toString()); } } private void select1() { List<User> list = userDao.queryBuilder().build().list(); for (int i = 0; i < list.size(); i++) { Log.e("MainActivity", list.get(i).toString()); } } }
app文件夹下MyApp
import android.app.Application; import com.com.sky.downloader.greendao.DaoMaster; import com.com.sky.downloader.greendao.DaoSession; public class MyApp extends Application{ private DaoMaster daoMaster; private static DaoSession daoSession; @Override public void onCreate() { super.onCreate(); DaoMaster.DevOpenHelper devOpenHelper = new DaoMaster.DevOpenHelper(this, "baway.db"); DaoMaster daoMaster = new DaoMaster(devOpenHelper.getWritableDb()); daoSession = daoMaster.newSession(); } public static DaoSession getDaoSession() { return daoSession; } }
bean文件夹下User
import org.greenrobot.greendao.annotation.Entity; import org.greenrobot.greendao.annotation.Id; import org.greenrobot.greendao.annotation.Property; import org.greenrobot.greendao.annotation.Transient; import org.greenrobot.greendao.annotation.Generated; @Entity(nameInDb = "t_user") public class User { @Id(autoincrement = true) private Long id; @Property(nameInDb = "t_name") private String name; @Property private String age; @Transient private String agent; @Generated(hash = 1666193281) public User(Long id, String name, String age) { this.id = id; this.name = name; this.age = age; } @Generated(hash = 586692638) public User() { } public Long getId() { return this.id; } public void setId(Long id) { this.id = id; } public String getName() { return this.name; } public void setName(String name) { this.name = name; } public String getAge() { return this.age; } public void setAge(String age) { this.age = age; } @Override public String toString() { return "User{" + "id=" + id + ", name='" + name + '\'' + ", age='" + age + '\'' + +'}'; } }
Person
import org.greenrobot.greendao.annotation.Entity; import org.greenrobot.greendao.annotation.Id; import org.greenrobot.greendao.annotation.Property; import org.greenrobot.greendao.annotation.Generated; @Entity public class Person { @Id(autoincrement = true) private Long id; @Property private String name; @Generated(hash = 628813901) public Person(Long id, String name) { this.id = id; this.name = name; } @Generated(hash = 1024547259) public Person() { } public Long getId() { return this.id; } public void setId(Long id) { this.id = id; } public String getName() { return this.name; } public void setName(String name) { this.name = name; } }