当前位置: 首页 > news >正文

全国的做网站的公司低代码建站平台

全国的做网站的公司,低代码建站平台,企业建站模板价格,免费的设计网站有哪些目录 一、使用GreenDao的流程 添加GreenDao依赖配置greendao的generator生成文件使用GreenDao生成bean类 3.1 创建实体类 3.2 生成dao文件创建GreenDaoManager来进行统一管理,并初始化 4.1 创建GreenDaoManager 4.2 在Application中进行初始化GreenDao使用GreenDa…

目录

一、使用GreenDao的流程

  1. 添加GreenDao依赖
  2. 配置greendao的generator生成文件
  3. 使用GreenDao生成bean类
    3.1 创建实体类
    3.2 生成dao文件
  4. 创建GreenDaoManager来进行统一管理,并初始化
    4.1 创建GreenDaoManager
    4.2 在Application中进行初始化GreenDao
  5. 使用GreenDao来进行数据操作CRUD

二、GreenDao升级
三、GreenDao注释

一、使用GreenDao的流程

1.添加GreenDao依赖

GreenDao github地址

// In your root build.gradle file:
buildscript {repositories {jcenter()mavenCentral() // add repository}dependencies {classpath 'com.android.tools.build:gradle:2.3.3'classpath 'org.greenrobot:greendao-gradle-plugin:3.2.2' // add plugin}
}// In your app projects build.gradle file:
apply plugin: 'com.android.application'
apply plugin: 'org.greenrobot.greendao' // apply plugindependencies {compile 'org.greenrobot:greendao:3.2.2' // add library
}

2. 配置greendao的generator生成文件

// In your app projects build.gradle file:
android {//...greendao {schemaVersion 1 //数据库版本号daoPackage 'com.db.greendao.gen' //自动生成的工具类的包名,一般为app包名+生成文件的文件夹名targetGenDir 'src/main/java' //生成文件路径  }//...
}

3. 使用GreenDao生成bean类

当修改了bean类 如果项目已经上线 必须修改数据库版本!!!

3.1 创建实体类

@Entity
public class Person {@Idprivate Long id;private String name;private int age;private String sex;
}
3.2 生成dao文件

按ctrl+F9,或者在工具栏build下面的Make Project对项目进行重新构建。
生成文件。

而Person类变样了
变成了

package gap.com.mydemo;import org.greenrobot.greendao.annotation.Entity;
import org.greenrobot.greendao.annotation.Id;
import org.greenrobot.greendao.annotation.Generated;/*** @version $version$* @package $package$* @description $desc$* @user gzl* @date $date$* @time $time$* @email 973780371@qq.com* @phone 18067970513*/
@Entity
public class Person {@Idprivate Long id;private String name;private int age;private String sex;@Generated(hash = 2139037974)public Person(Long id, String name, int age, String sex) {this.id = id;this.name = name;this.age = age;this.sex = sex;}@Generated(hash = 1024547259)public Person() {}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;}public String getSex() {return this.sex;}public void setSex(String sex) {this.sex = sex;}
}

targetGenDir 'src/main/java' //生成文件路径 就是用于指定经过处理的Person类放置的位置。

4. 创建GreenDaoManager来进行统一管理,并初始化

4.1 创建GreenDaoManager

初始化需要实例化GreenDao所需要的几个关键对象,DaoMaster,DaoSession。
创建GreenDaoManager类,在构造函数中进行初始化**

public class GreenDaoManager {private DaoMaster mDaoMaster;private DaoSession mDaoSession;private static volatile GreenDaoManager mInstance = null;private GreenDaoManager(Context context) {if (mInstance == null) {DaoMaster.DevOpenHelper devOpenHelper = newDaoMaster.DevOpenHelper(context, "message.db"); //数据库名mDaoMaster = new DaoMaster(devOpenHelper.getWritableDatabase());mDaoSession = mDaoMaster.newSession();}}public static GreenDaoManager getInstance() {return mInstance;}public static void initGreenDaoManager(Context context) {if (mInstance == null) {synchronized (GreenDaoManager.class) {if (mInstance == null) {mInstance = new GreenDaoManager(context);}}}}public DaoMaster getMaster() {return mDaoMaster;}public DaoSession getSession() {return mDaoSession;}public DaoSession getNewSession() {mDaoSession = mDaoMaster.newSession();return mDaoSession;}
}
4.2 在Application中进行初始化GreenDao

GreenDaoManager.initGreenDaoManager(this);

5. 使用GreenDao来进行数据操作CRUD

首先封装一个方法,方便后面的CRUD操作。

    private PersonDao getPersonDao() {return GreenDaoManager.getInstance().getSession().getPersonDao();}

CRUD方法参考下面:

public class MainActivity extends AppCompatActivity {//@Transient,该注解表示这个属性将不会作为数据表中的一个字段//@NotNull表示该字段不可以为空,@Unique表示该字段唯一@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//        updatadata();
//        insertdata();
//        querydata();//删除数据
//        getUserDao().deleteByKey(2l);//long类型
//        querydata();
//        querydataBy();getuserById();}private void getuserById() {User user =getUserDao().load(1l);Log.i("tag", "结果:" + user.getId() + "," + user.getName() + "," + user.getAge() + "," + user.getIsBoy() + ";");}private void insertdata() {//插入数据User insertData = new User(null, "插入数据", 24, false);getUserDao().insert(insertData);}private void updatadata() {//更改数据List<User> userss = getUserDao().loadAll();User user = new User(userss.get(0).getId(), "更改后的数据用户", 22, true);getUserDao().update(user);}private void querydata() {//查询数据详细List<User> users = getUserDao().loadAll();Log.i("tag", "当前数量:" + users.size());for (int i = 0; i < users.size(); i++) {Log.i("tag", "结果:" + users.get(i).getId() + "," + users.get(i).getName() + "," + users.get(i).getAge() + "," + users.get(i).getIsBoy() + ";");}}private void querydataBy() {查询条件Query<User> nQuery = getUserDao().queryBuilder()
//                .where(UserDao.Properties.Name.eq("user1"))//.where(UserDao.Properties.Id.notEq(999)).orderAsc(UserDao.Properties.Age)//.limit(5)//orderDesc.build();List<User> users = nQuery.list();Log.i("tag", "当前数量:" + users.size());for (int i = 0; i < users.size(); i++) {Log.i("tag", "结果:" + users.get(i).getId() + "," + users.get(i).getName() + "," + users.get(i).getAge() + "," + users.get(i).getIsBoy() + ";");}//        QueryBuilder qb = userDao.queryBuilder();
//        qb.where(Properties.FirstName.eq("Joe"),
//                qb.or(Properties.YearOfBirth.gt(1970),
//                        qb.and(Properties.YearOfBirth.eq(1970), Properties.MonthOfBirth.ge(10))));
//        List youngJoes = qb.list();}/*** 根据查询条件,返回数据列表* @param where        条件* @param params       参数* @return             数据列表*/public List<User> queryN(String where, String... params){return getUserDao().queryRaw(where, params);}/*** 根据用户信息,插件或修改信息* @param user              用户信息* @return 插件或修改的用户id*/public long saveN(User user){return getUserDao().insertOrReplace(user);}/*** 批量插入或修改用户信息* @param list      用户信息列表*/public void saveNLists(final List<User> list){if(list == null || list.isEmpty()){return;}getUserDao().getSession().runInTx(new Runnable() {@Overridepublic void run() {for(int i=0; i<list.size(); i++){User user = list.get(i);getUserDao().insertOrReplace(user);}}});}/*** 删除所有数据*/public void deleteAllNote(){getUserDao().deleteAll();}/*** 根据用户类,删除信息* @param user    用户信息类*/public void deleteNote(User user){getUserDao().delete(user);}private UserDao getUserDao() {return GreenDaoManager.getInstance().getSession().getUserDao();}}

二、GreenDao升级

第一步:改版本号

greendao{schemaVersion 5daoPackage 'xxxxxxxxxx'targetGenDir 'src/main/java'
}

第二步:修改实体类为自己需要的类型
重现编译项目运行即可。
这样修改,之前的数据库会被删除,重新创建。

三、GreenDao注释

常用注解

@Entity
public class User {@Id(autoincrement = true)private Long id;@Property(nameInDb = "USERNAME")private String name;@NotNullprivate int repos;@Transientprivate int tempUsageCount;...
}

@Entity 用于标识这是一个需要Greendao帮我们生成代码的bean
@Id 标明主键,括号里可以指定是否自增
@Property 用于设置属性在数据库中的列名(默认不写就是保持一致)
@NotNull 非空
@Transient 标识这个字段是自定义的不会创建到数据库表里
@Unique 添加唯一约束

关系注解

@Entity
public class Order {@Id private Long id;private long customerId;@ToOne(joinProperty = "customerId")private Customer customer;
}@Entity
public class Customer {@Id private Long id;
}

@ToOne 是将自己的一个属性与另一个表建立关联

@Entity
public class User {@Id private Long id;@ToMany(referencedJoinProperty = "ownerId")private List<Site> ownedSites;
}@Entity
public class Site {@Id private Long id;private long ownerId;
}// ----------------------------@Entity
public class User {@Id private Long id;@Unique private String authorTag;@ToMany(joinProperties = {@JoinProperty(name = "authorTag", referencedName = "ownerTag")})private List<Site> ownedSites;
}@Entity
public class Site {@Id private Long id;@NotNull private String ownerTag;
}

@ToMany的属性referencedJoinProperty,类似于外键约束。
@JoinProperty 对于更复杂的关系,可以使用这个注解标明目标属性的源属性。

http://www.dtcms.com/a/496267.html

相关文章:

  • open-webui docker高速下载本地部署
  • 东台企业网站建设手机网站域名解析怎么做
  • 公司网站空间申请wordpress的托管
  • 中兴ZXV10 B860AV2.1-T 3.0_S905L3B_uw5621无线(可通刷CA)线刷固件包
  • 需求基线管理的数智化转型:痛点、路径与实践价值
  • 沈阳企业网站开发定制wordpress的第三方登录插件
  • N8N系列:新手教程,“出色外交官” Webhook节点,打通外部应用,让工作流不再 “闭门运行”
  • 建设网站jw100济南网络策划
  • 织梦网站怎么重新安装教程网络营销方案论文
  • 剑指offer:面试题39数组中出现次数超过一半的数字、面试题40最小的k个数、面试题41数据流中的中位数
  • 广州网站建设藤虎网络许昌企业网站建设公司
  • dede网站制作教程数据分析网站开发
  • Langchain 附加函数及应用
  • 网站建设背景资料平台建设包括什么
  • 迁移WSL发行版到其他磁盘(D盘)
  • SSM整合----项目异常处理方案
  • 容桂网站制作信息连云港网站定制开发
  • 雷达点云数据展示在webviz(ROS1)
  • 左右滑动分类列表 背景图跟随选中状态改变位置 滑动时跟随文字滑动
  • 湖南省建设网站网站建设是属于软件吗
  • 医疗网站建设网站家用宽带做网站
  • Linux 应用开发学习指南
  • 河南生产型企业网站建设中企动力300官网
  • 计算机图形学中的光照模型:从基础到现代技术
  • 章丘建网站网络推广优化的英文
  • 封装一个不同跳转方式的通用方法(跳转外部链接,跳转其他小程序,跳转半屏小程序)
  • 行业分享丨成都航天模塑如何助力汽车内外饰加速发展?
  • 去年做哪个网站能致富深圳网站排名优化公司
  • xxe靶场通关
  • TCP/IP 四层模型