greendao

在project里面导入

classpath 'org.greenrobot:greendao-gradle-plugin:3.2.2'


然后在module的gradle文件中添加greenDAO的插件,并引入相关类库,

apply plugin: 'org.greenrobot.greendao'

compile 'org.greenrobot:greendao:3.2.2'
 

在最下方括号的外面添加    

com.example.zuoye0126.gen为你的全部包名.gen

greendao {
    schemaVersion 2
    daoPackage 'com.example.zuoye0126.gen'
    targetGenDir 'src/main/java'
}

//bean类  也就是插入数据库的字段


@Entity
public class User {
//   @Property(nameInDb = "names")    为起别名
    //@NotNull   不为空
//@Transient   加上这个  这个属性不会存放到数据库

    @Id(autoincrement = true)   //id为主键  必须为Long
    private Long _id;
    private String name;

    @Generated(hash = 1144922831)
    public User(Long _id, String name) {
        this._id = _id;
        this.name = name;
    }

    @Generated(hash = 586692638)
    public User() {
    }

    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", name='" + name + '\'' +
                '}';
    }


Application 类

public class Myapp extends Application {
    public static Context context;
    @Override
    public void onCreate() {
        super.onCreate();
        context=getApplicationContext();
        //调用工具包里面的方法
        GreenDaoUtils.getmInstance().init();

    }
}

//
GreenDaoUtils 工具包

public class GreenDaoUtils {
    private volatile static GreenDaoUtils greenDaoUtils;
    private DaoSession daoSession;
    private SQLiteDatabase database;

    private GreenDaoUtils(){

    }
    public static GreenDaoUtils getmInstance(){
        if (greenDaoUtils==null){
            synchronized (GreenDaoUtils.class){
                if (greenDaoUtils==null){
                    greenDaoUtils=new GreenDaoUtils();
                }
            }
        }

        return greenDaoUtils;
    }
    //初始化数据   这个方法在Application里面调用
    public void init(){
        setDataBase();
    }

    private void setDataBase() {
        //调用Application里面的上下文   参数二为数据库名字
        DaoMaster.DevOpenHelper helper = new DaoMaster.DevOpenHelper(Myapp.context, "user.db", null);

        database = helper.getWritableDatabase();

        DaoMaster daoMaster= new DaoMaster(database);

        daoSession = daoMaster.newSession();
    }

    public DaoSession getDaoSession(){

        return daoSession;
    }

    public SQLiteDatabase getSQLiteDatabase(){
        return database;
    }

}

MainActivity
private void greenDao() {
    User user=new User((long) 1,"你猜");
    User user1=new User((long) 5,"小明");
    User user2=new User((long) 6,"你红");
    User user3=new User((long) 7,"你亮");

    //调用工具包里面的方法
    DaoSession daoSession = GreenDaoUtils.getmInstance().getDaoSession();
    //增删改查都用  userDao来操作
    UserDao userDao = daoSession.getUserDao();

    userDao.insert(user);
    userDao.insert(user1);
    userDao.insert(user2);
    userDao.insert(user3);

    //查询数据库
    Query<User> query = userDao.queryBuilder().build();
    List<User> list = query.list();
    for (User user4 : list) {
        Log.d("数据", user4.getName()+"   "+user4.get_id());
    }

}

/* //第二种查询方法
  List<User> users = userDao.loadAll();
  for (User user4 : users) {
      Log.d("哈哈", user4.getName()+"   "+user4.get_id());

  }*/

//根据id查询
  Query<User> query = userDao.queryBuilder().where(UserDao.Properties._id.eq(5)).build();
  List<User> list = query.list();
  for (User user : list) {
      Log.d("哈哈", user.getName());

  }

//修改
User user=new User((long) 7,"你好啊我来了别跑啊");
userDao.update(user);

//删除所有的表内的行数据
userDao.deleteAll();

//根据id删除
   userDao.deleteByKey((long) 7);


 //分页加载的方法  User为bean对象
private List<User> selectpager(int offset){
   // offset和limit,offset从哪个行开始加载多少数据,limit每次限制加载多少条数据
    Query<User> query = userDao.queryBuilder().limit(10).offset(offset*10).build();
    List<User> list = query.list();
    for (User user : list) {
        Log.d("十条数据", "selectpager: "+user.get_id());
    }

    return list;
}

参考   http://blog.csdn.net/huangxiaoguo1/article/details/78234097

http://blog.csdn.net/qq_26440221/article/details/76855318

https://note.youdao.com/share/?id=a0c7d1c4618c1030a8cda316b667e40f&type=note#/


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要配置GreenDao,你需要按照以下步骤进行操作: 1. 在module级别的build.gradle文件中,将以下代码添加到文件的顶部: ``` apply plugin: 'org.greenrobot.greendao' ``` 2. 在同一个build.gradle文件中,添加以下配置到android模块下的greendao块中: ``` greendao { schemaVersion 1 // 设置数据库版本号,升级时可修改 daoPackage 'com.example.greendaodemo.db' // 设置生成的DAO、DaoMaster和DaoSession的包路径,默认与表实体所在的包路径相同 targetGenDir 'src/main/java' // 设置生成的源文件的路径,默认在build目录下的build/generated/source/greendao目录中 } ``` 3. 添加GreenDao的依赖库,将以下代码添加到dependencies块中: ``` implementation 'org.greenrobot:greendao:3.2.2' ``` 这样,你就完成了GreenDao的配置。如果需要生成GreenDao的代码,请确保你还添加了以下依赖库: ``` implementation 'org.greenrobot:greendao-generator:3.2.2' ``` 参考链接:<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [GreenDao的简单配置](https://blog.csdn.net/qq_42061290/article/details/82586342)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [GreenDao配置](https://download.csdn.net/download/a511341250/9593713)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [GreenDao配置文档](https://blog.csdn.net/chentaishan/article/details/105263937)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值