在App工程build最上面添加
apply plugin: 'org.greenrobot.greendao'
然后在app工程build里在buildTypes里面配置greendao,,切记daoPackage一定要写自己工程的目录
greendao {
schemaVersion 1
daoPackage 'com.example.greendao_lianxi.gen'
targetGenDir 'src/main/java'
}
然后添加greendao依赖
compile
'org.greenrobot:greendao:3.2.2'
然后在项目build里buildscript下配置,配置完记得编译才有下面的注解
mavenCentral()
看好再添加
classpath 'org.greenrobot:greendao-gradle-plugin:3.2.2'
自己写实体类,定义自己需要的参数,记得注解
package com.example.greendao_lianxi;
import org.greenrobot.greendao.annotation.Entity;
import org.greenrobot.greendao.annotation.Id;
import org.greenrobot.greendao.annotation.Property;
/**
* Created by Administrator on 2017/12/1.
*/
@Entity
public class Use {
@Id(autoincrement=true)
private long id;
@Property(nameInDb = "name")
private String name;
@Transient
//这个注解意思为这个属性不会保存到数据库为属性 在数据库中不对这个属性进行操作
private
int
tempUsageCount;
// not persisted
}
然后点击这个按钮会自动生成三个类
再定义一个类通过单例创建数据库
package com.example.greendao_lianxi;
import android.app.Application;
import android.database.sqlite.SQLiteDatabase;
import com.example.greendao_lianxi.gen.DaoMaster;
import com.example.greendao_lianxi.gen.DaoSession;
/**
* Created by Administrator on 2017/12/1.
*/
public class Api extends Application{
//配置GreenDao
private static Api myApi;
private DaoSession daoSession;
@Override
public void onCreate() {
super.onCreate();
myApi = this;
setDb();
}
//单例模式
public static Api getmyapi(){
return myApi;
}
private void setDb() {
//创建数据库名
DaoMaster.DevOpenHelper helper = new DaoMaster.DevOpenHelper(this, "bw,db", null);
//读取数据库
SQLiteDatabase database = helper.getWritableDatabase();
//
DaoMaster daoMaster = new DaoMaster(database);
//放入用户信息DaoSession
daoSession = daoMaster.newSession();
}
//返回daoSession
public DaoSession getDaoSession(){
return daoSession;
}
}
package com.example.greendao_lianxi1;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import com.example.greendao_lianxi1.gen.BeanDao;
import com.example.greendao_lianxi1.gen.DaoSession;
import java.util.List;
public class MainActivity extends AppCompatActivity implements View.OnClickListener{
private EditText et_name;
private EditText et_xiu;
private BeanDao beanDao;
private TextView tv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button bt_tian = findViewById(R.id.bt_tian);
Button bt_shan = findViewById(R.id.bt_shan);
Button bt_gai = findViewById(R.id.bt_gai);
Button bt_cha = findViewById(R.id.bt_cha);
tv = findViewById(R.id.tv);
et_name = findViewById(R.id.et_name);
et_xiu = findViewById(R.id.et_xiu);
bt_tian.setOnClickListener(this);
bt_shan.setOnClickListener(this);
bt_gai.setOnClickListener(this);
bt_cha.setOnClickListener(this);
//获取MyGreenDao_Api单例里面返回的方法
DaoSession daoSession = MyGreenDao_Api.getMyGreenDao_api().getDaoSession();
beanDao = daoSession.getBeanDao();
}
@Override
public void onClick(View view) {
switch (view.getId()){
//添加
case R.id.bt_tian:
Bean bean = new Bean(null, et_name.getText().toString().trim());
//或者这样添加id
Bean bean = new Bean(System.currentTimeMillis(),et_name.getText().toString.trim());
//添加方法
beanDao.insert(bean);
Toast.makeText(this, "添加成功", Toast.LENGTH_SHORT).show();
break;
//删除
case R.id.bt_shan:
//查询
Bean shanchu_id = beanDao.load(Long.valueOf(1));
//删除
beanDao.delete(shanchu_id);
Toast.makeText(this, "删除成功", Toast.LENGTH_SHORT).show();
break;
//修改
case R.id.bt_gai:
//查找指定id
Bean xiugai_id = beanDao.load(Long.valueOf(2));
//输入修改内容
xiugai_id.setName(et_xiu.getText().toString().trim());
//修改方法
beanDao.update(xiugai_id);
Toast.makeText(this, "修改成功", Toast.LENGTH_SHORT).show();
break;
//查找
case R.id.bt_cha:
// load查询单个
//Bean load = beanDao.load(Long.valueOf(1));
// loadAll查询全部
List<Bean> list = beanDao.loadAll();
String s="";
for (int i = 0; i < list.size(); i++) {
s+=list.get(i).getName()+"/n";
}
tv.setText(s);
break;
}
}
}