GreenDao的简单使用

来源:互联网 发布:倩女幽魂有mac版吗 编辑:程序博客网 时间:2024/06/06 02:03

greenDao的配置这里就不介绍了,网上一搜都是,重点写了一个类似于方法的便利调用
断点续传https://www.cnblogs.com/cainiaodongdong/p/7880723.html

User类

@Entitypublic class User {    @Id    private Long id;    @Property    private String name;    @Property    private String age;    public String getAge() {        return this.age;    }    public void setAge(String age) {        this.age = age;    }    public String getName() {        return this.name;    }    public void setName(String name) {        this.name = name;    }    public Long getId() {        return this.id;    }    public void setId(Long id) {        this.id = id;    }    @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() {    }}

db包

public class DBManager {    private final static String dbName="test_db";    private static DBManager mInstance;    private DaoMaster.DevOpenHelper openHelper;    private Context context;    public DBManager(Context context) {        this.context = context;        openHelper=new DaoMaster.DevOpenHelper(context,dbName,null);    }//  单例引用    public static DBManager getInstance(Context context){        if(mInstance==null){            synchronized (DBManager.class){                if(mInstance==null){                    mInstance=new DBManager(context);                }            }        }        return mInstance;    }    public SQLiteDatabase getReadableDatabase(){        if(openHelper==null){            openHelper=new DaoMaster.DevOpenHelper(context,dbName,null);        }        SQLiteDatabase db=openHelper.getReadableDatabase();        return db;    }    public SQLiteDatabase getWritableDatabase(){        if(openHelper==null){            openHelper=new DaoMaster.DevOpenHelper(context,dbName,null);        }        SQLiteDatabase db=openHelper.getWritableDatabase();        return db;    }}

dao包

public class MyUserDao {    Context context;    public MyUserDao(Context context) {        this.context = context;    }    //插入一条记录    public void insertUser(User user){        DaoMaster daoMaster=new DaoMaster(DBManager.getInstance(context).getWritableDatabase());        DaoSession daoSession=daoMaster.newSession();        UserDao userDao=daoSession.getUserDao();        userDao.insert(user);    }    //插入用户集合    public void insertUserList(List<User> users){        if(users==null||users.isEmpty()){            return;        }        DaoMaster daoMaster=new DaoMaster(DBManager.getInstance(context).getWritableDatabase());        DaoSession daoSession=daoMaster.newSession();        UserDao userDao=daoSession.getUserDao();        userDao.insertInTx(users);    }    //查询所有用户列表    public List<User> queryUserList(){        DaoMaster daoMaster=new DaoMaster(DBManager.getInstance(context).getReadableDatabase());        DaoSession daoSession=daoMaster.newSession();        UserDao userDao=daoSession.getUserDao();        QueryBuilder<User> qb=userDao.queryBuilder();        List<User> list=qb.list();        return  list;    }    //查询用户列表    public List<User> queryUserList(int age){        DaoMaster daoMaster=new DaoMaster(DBManager.getInstance(context).getReadableDatabase());        DaoSession daoSession=daoMaster.newSession();        UserDao userDao=daoSession.getUserDao();        QueryBuilder<User> qb=userDao.queryBuilder();        qb.where(UserDao.Properties.Age.gt(age)).orderAsc(UserDao.Properties.Age);        List<User> list=qb.list();        return list;    }    //更新一条记录    public void updateUser(User user){        DaoMaster daoMaster=new DaoMaster(DBManager.getInstance(context).getWritableDatabase());        DaoSession daoSession=daoMaster.newSession();        UserDao userDao=daoSession.getUserDao();        userDao.update(user);    }    //删除一条记录    public void deleteUser(User user){        DaoMaster daoMaster=new DaoMaster(DBManager.getInstance(context).getWritableDatabase());        DaoSession daoSession=daoMaster.newSession();        UserDao userDao=daoSession.getUserDao();        userDao.delete(user);    }}

MainActivity

public class MainActivity extends AppCompatActivity {    private MyUserDao dao;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        dao = new MyUserDao(this);        for (int i = 0; i < 5; i++) {            User user=new User();            user.setId(Long.valueOf(i));            user.setAge(i*3+"");            user.setName("第"+i+"人");            dao.insertUser(user);        }        List<User> userList=dao.queryUserList();        for (User user:userList) {            Log.e("TAG", "queryUserList--before-->" + user.getId() + "--" + user.getName() +"--"+user.getAge());            if(user.getId()==0){                dao.deleteUser(user);            }            if(user.getId()==3){                user.setAge(25+"");                dao.updateUser(user);            }        }        userList =dao.queryUserList();        for (User user:userList){            Log.e("TAG", "queryUserList--after--->" + user.getId() + "---" + user.getName()+"--"+user.getAge());        }    }}

效果图

11-23 11:00:11.639 3477-3477/? E/TAG: queryUserList--before-->0--第0人--011-23 11:00:11.641 3477-3477/? E/TAG: queryUserList--before-->1--第1人--311-23 11:00:11.642 3477-3477/? E/TAG: queryUserList--before-->2--第2人--611-23 11:00:11.642 3477-3477/? E/TAG: queryUserList--before-->3--第3人--911-23 11:00:11.648 3477-3477/? E/TAG: queryUserList--before-->4--第4人--1211-23 11:00:11.650 3477-3477/? E/TAG: queryUserList--after--->1---第1人--311-23 11:00:11.650 3477-3477/? E/TAG: queryUserList--after--->2---第2人--611-23 11:00:11.650 3477-3477/? E/TAG: queryUserList--after--->3---第3人--2511-23 11:00:11.650 3477-3477/? E/TAG: queryUserList--after--->4---第4人--12
原创粉丝点击