首先完成GreenDao的配置生成DaoMaster和DaoSession和UserDao三个类,我博客里有GreenDao的配置。
在建User类的时候主键必须是Long类型
1.先定义一个App继承Application使用饿汉式
public class MyApp extends Application { public static MyApp myApp; private DaoMaster.DevOpenHelper dudu; private SQLiteDatabase writableDatabase; private DaoMaster daoMaster; private DaoSession daoSession; @Override public void onCreate() { super.onCreate(); myApp=this; setDb(); } public static MyApp getMyApp(){ return myApp; } public void setDb(){ dudu = new DaoMaster.DevOpenHelper(this, "dudu123", null); writableDatabase = dudu.getWritableDatabase(); daoMaster = new DaoMaster(writableDatabase); daoSession = daoMaster.newSession(); } public DaoSession getDaoSession(){ return daoSession; } public SQLiteDatabase getWritableDatabase(){ return writableDatabase; } }
2.在Activity得到数据库然后增删改查
public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //得到UserDao UserDao userDao = MyApp.getMyApp().getDaoSession().getUserDao(); //实例化bean类 User user1=new User(Long.valueOf(104),"哈哈1"); User user2=new User(Long.valueOf(105),"哈哈2"); User user3=new User(Long.valueOf(106),"哈哈3"); User user4=new User(Long.valueOf(107),"哈哈4"); //把对象增加到数据库 userDao.insert(user1); userDao.insert(user2); userDao.insert(user3); userDao.insert(user4); //查询数据库里的所有信息 List<User> users = userDao.loadAll(); for (int i = 0; i <users.size() ; i++) { Log.d(">>>>>>",users.get(i).getName()); } //删除集合下标为零的数据 userDao.delete(users.get(0)); List<User> users1 = userDao.loadAll(); for (int i = 0; i <users1.size() ; i++) { Log.d("<<<<",users1.get(i).getName()); } //更改主键为106的name为贾继龙 User user5=new User(Long.valueOf(106),"贾继龙"); userDao.update(user5); List<User> users2 = userDao.loadAll(); for (int i = 0; i <users2.size() ; i++) { Log.d("xxx",users2.get(i).getName()); } } }