配置项目下的build.gradle
repositories {
google()
jcenter()
mavenCentral() // add repository
}
dependencies {
classpath 'com.android.tools.build:gradle:3.0.1'
classpath 'org.greenrobot:greendao-gradle-plugin:3.2.2'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
App下的build.gradle:
apply plugin: 'com.android.application'
apply plugin: 'org.greenrobot.greendao' // apply plugin
android {
compileSdkVersion 26
defaultConfig {
applicationId "com.baiwei.shenxuesong.shenxuesong1201"
minSdkVersion 15
targetSdkVersion 26
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:26.1.0'
implementation 'com.android.support.constraint:constraint-layout:1.0.2'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.1'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
compile 'org.greenrobot:greendao:3.2.2' // add library
}
greendao {
schemaVersion 1
daoPackage 'com.baiwei.shenxuesong.shenxuesong1201.gen'
targetGenDir 'src/main/java'
}
封装个类
@Entity
public class User {
@Id(autoincrement = true)
private Long id;
@Property(nameInDb = "UID")
private String uid;
private String name;
@Transient
private int tempUsageCount; // not persisted
@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 getUid() {
return this.uid;
}
public void setUid(String uid) {
this.uid = uid;
}
@Generated(hash = 1370059585)
public User(Long id, String uid, String name) {
this.id = id;
this.uid = uid;
this.name = name;
}
}
系统生成三个类
package com.baiwei.shenxuesong.shenxuesong1201;
import android.app.Application;
import android.database.sqlite.SQLiteDatabase;
import com.baiwei.shenxuesong.shenxuesong1201.gen.DaoMaster;
import com.baiwei.shenxuesong.shenxuesong1201.gen.DaoSession;
public class MyApplication extends Application {
private DaoMaster.DevOpenHelper mHelper;
private SQLiteDatabase db;
private DaoMaster mDaoMaster;
private DaoSession mDaoSession;
public static MyApplication instances;
@Override public void onCreate() {
super.onCreate();
instances = this;
setDatabase();
}
public static MyApplication getInstances(){
return instances;
}
/**
* 设置greenDao
*/
private void setDatabase() {
// 通过 DaoMaster 的内部类 DevOpenHelper,你可以得到一个便利的 SQLiteOpenHelper 对象。
// 可能你已经注意到了,你并不需要去编写「CREATE TABLE」这样的 SQL 语句,因为 greenDAO 已经帮你做了。
// 注意:默认的 DaoMaster.DevOpenHelper 会在数据库升级时,删除所有的表,意味着这将导致数据的丢失。
// 所以,在正式的项目中,你还应该做一层封装,来实现数据库的安全升级。
mHelper = new DaoMaster.DevOpenHelper(this, "notes-db", null);
db = mHelper.getWritableDatabase();
// 注意:该数据库连接属于 DaoMaster,所以多个 Session 指的是相同的数据库连接。
mDaoMaster = new DaoMaster(db);
mDaoSession = mDaoMaster.newSession();
}
public DaoSession getDaoSession() {
return mDaoSession;
}
public SQLiteDatabase getDb() {
return db;
}
}
package com.baiwei.shenxuesong.shenxuesong1201;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import com.baiwei.shenxuesong.shenxuesong1201.gen.UserDao;
import java.util.List;
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
private EditText et_id;
private EditText et_name;
private Button add;
private Button del;
private Button sel;
private TextView result;
private UserDao userDao;
private String name;
private User user;
private String id;
int i=1;
private User user1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
et_id = findViewById(R.id._id);
et_name = findViewById(R.id.name);
add = findViewById(R.id.insert);
del = findViewById(R.id.del);
sel = findViewById(R.id.sel);
result = findViewById(R.id.text1);
//获取输入的内容
//获取userdao
userDao = MyApplication.getInstances().getDaoSession().getUserDao();
//实力化user对象
add.setOnClickListener(this);
del.setOnClickListener(this);
sel.setOnClickListener(this);
}
@Override
public void onClick(View view) {
switch (view.getId()){
case R.id.insert:
//添加
id = et_id.getText().toString();
name = et_name.getText().toString();
user1 = new User();
user1.setUid(id);
user1.setName(name);
userDao.insert(user1);
break;
case R.id.del:
//删除
User findUser = userDao.queryBuilder().where(UserDao.Properties.Name.eq("沈")).build().unique();
if(findUser != null){
userDao.deleteByKey(findUser.getId());
}
break;
case R.id.sel:
/**
* 查询
*/
List<User> users = userDao.loadAll();
String p="";
String username="";
for (int j = 0; j < users.size(); j++) {
p+=users.get(j).getUid()+",";
username+=users.get(j).getName()+",";
}
result.setText(p+"\n"+username);
break;
}
}
}