public class DbHelper {
private static volatile DbHelper instance;
private final DaoSession daoSession;
private final DaoMaster daoMaster;
private DbHelper(Context context){
DaoMaster.DevOpenHelper mHelper= new DaoMaster.DevOpenHelper(context,"user",null);
SQLiteDatabase db = mHelper.getWritableDatabase();
daoMaster = new DaoMaster(db);
daoSession = daoMaster.newSession();
}
public static DbHelper getInstance(Context context){
if (instance == null){
synchronized (DbHelper.class){
if (null == instance){
instance = new DbHelper(context);
}
}
}
return instance;
}
public UserDao getUserDao(){
return daoSession.getUserDao();
}
}
public class MainActivity extends AppCompatActivity {
@BindView(R.id.mytext)
TextView mytext;
private UserDao dao;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ButterKnife.bind(this);
dao = DbHelper.getInstance(this).getUserDao();
}
@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:
User user = new User();
user.setName("佘鑫海");
user.setAge(20);
dao.insert(user);
Toast.makeText(this,"添加成功"+user.toString(),Toast.LENGTH_SHORT).show();
break;
case R.id.btn_delete:
User user1 = new User();
user1.setId(5L);
dao.delete(user1);
Toast.makeText(this,"删除成功"+user1.toString(),Toast.LENGTH_SHORT).show();
break;
case R.id.btn_updata:
User user2 = new User(2L,"蔡梦梦",20);
dao.update(user2);
Toast.makeText(this,"修改成功"+user2.toString(),Toast.LENGTH_SHORT).show();
break;
case R.id.btn_query:
List<User> list = dao.queryRaw("where _id = ? and name = ?","4","佘鑫海");
Toast.makeText(this,"查询成功"+list.toString(),Toast.LENGTH_SHORT).show();
break;
}
}
}
buildscript {
repositories {
jcenter()
mavenCentral()//这个
}
dependencies {
classpath 'com.android.tools.build:gradle:2.3.3'
classpath 'org.greenrobot:greendao-gradle-plugin:3.2.1'//这个
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
jcenter()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
apply plugin: 'com.android.application'
apply plugin: 'org.greenrobot.greendao'//这个
android {
compileSdkVersion 26
buildToolsVersion "26.0.1"
defaultConfig {
applicationId "com.example.greendao"
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'
}
}
//这个
greendao {
schemaVersion 1
daoPackage 'com.example.greendao.gen'
targetGenDir 'src/main/java'
}
}
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'
compile 'org.greenrobot:greendao:3.2.0'//这个
compile 'com.jakewharton:butterknife:8.8.1'
annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1'
testCompile 'junit:junit:4.12'
}
@Entity
public class User {
@Id
private Long id;
private String name;
private int age;
@Generated(hash = 1309193360)
public User(Long id, String name, int 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 int getAge() {
return this.age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "User{" +
"id=" + id +
", name='" + name + '\'' +
", age=" + age +
'}';
}
}