GreenDao入门
来源:互联网 发布:阿里云 iis 404 编辑:程序博客网 时间:2024/06/08 18:49
首先导入依赖.放上图,在工程的gradle里面
项目的工程里
下面放上代码,在工程的build.gradle里面
buildscript { repositories { google() jcenter() mavenCentral() // add repository } dependencies { classpath 'com.android.tools.build:gradle:3.0.1' classpath 'org.greenrobot:greendao-gradle-plugin:3.2.2' // add plugin // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files }}
在项目的build.gradle里面
apply plugin: 'com.android.application'apply plugin: 'org.greenrobot.greendao' // apply pluginandroid { compileSdkVersion 26 defaultConfig { applicationId "com.example.myapplication" minSdkVersion 19 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 * */greendao{ targetGenDir 'src/main/java' daoPackage 'com.example.myapplication.dao' schemaVersion 1}dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) implementation 'com.android.support:appcompat-v7:26.1.0' implementation 'com.android.support.constraint:constraint-layout:1.0.2' testImplementation 'junit:junit:4.12' androidTestImplementation 'com.android.support.test:runner:1.0.1' androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1' compile 'org.greenrobot:greendao:3.2.2' // add library compile 'net.zetetic:android-database-sqlcipher:3.5.7@aar'}
retrofit的依赖.这篇文章里请求网络
compile 'com.squareup.retrofit2:converter-gson:2.0.0-beta4' compile 'com.squareup.retrofit2:retrofit:2.0.0-beta4' compile 'com.squareup.retrofit2:converter-scalars:2.0.0'
添加请求网络的权限
<uses-permission android:name="android.permission.INTERNET"/>
新建Iapplication类继承Application,并在清单文件中配置
public class IApplication extends Application{ public static DaoSession session; @Override public void onCreate() { super.onCreate(); DaoMaster.DevOpenHelper devOpenHelper = new DaoMaster.DevOpenHelper(this,"tableName"); //获得数据库 // Database database1 = devOpenHelper.getEncryptedWritableDb("password"); Database database = devOpenHelper.getWritableDb(); //提成成员变量 session = new DaoMaster(database).newSession(); }}
清单文件中注册
<application android:name=".IApplication"
请求网络返回的 bean类,需要把bean里面真正需要的内部类 弄出去,新建一个bean类,
/** * //表名更改 test * @Entity(nameInDb = "test" //,indexes = {@Index(value="username,password")} ) * @Id(autoincrement = true)自增 * @NotNull 非空 * @Property(nameInDb = "nn") 字段名更改 nn * @Transient 不加入数据库 * */
@Entity//必须要加的public class NewslistBean { /** * ctime : 2017-11-30 * title : 2017年最后一个月:愿你看淡世事沧桑,内心安然无恙 * description : 一读 * picUrl : https://zxpic.gtimg.com/infonew/0/wechat_pics_-60570241.jpg/640 * url : https://mp.weixin.qq.com/s?src=16&ver=520×tamp=1512039617&signature=PpvlaQCpnrKjJVRfgTvFzTjscnrwvsbzP-QrvSlM5ekiaGyU*fX0aJp3YmWM0GaMHC2KbaNnquxYhO466d2xwTzuE7MKM2sVLJey-0rVKd0= */ @Id(autoincrement = true)//自增 private Long id;//自己加的id private String ctime; private String title; private String description; private String picUrl; private String url; @Generated(hash = 1402622097) public NewslistBean(Long id, String ctime, String title, String description, String picUrl, String url) { this.id = id; this.ctime = ctime; this.title = title; this.description = description; this.picUrl = picUrl; this.url = url; } @Generated(hash = 923354944) public NewslistBean() { } public String getCtime() { return ctime; } public void setCtime(String ctime) { this.ctime = ctime; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public String getDescription() { return description; } public void setDescription(String description) { this.description = description; } public String getPicUrl() { return picUrl; } public void setPicUrl(String picUrl) { this.picUrl = picUrl; } public String getUrl() { return url; } public void setUrl(String url) { this.url = url; } public Long getId() { return this.id; } public void setId(Long id) { this.id = id; } @Override public String toString() { return "NewslistBean{" + "id=" + id + ", ctime='" + ctime + '\'' + ", title='" + title + '\'' + ", description='" + description + '\'' + ", picUrl='" + picUrl + '\'' + ", url='" + url + '\'' + '}'; }}
然后点击 锤子 重新构建,会自动生成dao包下面的类DaoMaster,DaoSession,NewlistBeanDao
新建接口 GitHubService ,
public interface GitHubService { @GET("/wxnew/?key=18e883dd6b316eb1d97fd86338abbf06&num=10") Call<OldBean> url();}Activity.java
public class MainActivity extends AppCompatActivity { @BindView(R.id.btn) Button btn; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ButterKnife.bind(this); } //按钮的点击事件 @OnClick(R.id.btn) public void onViewClicked() { //使用retrofit请求网络数据 Retrofit retrofit = new Retrofit.Builder() .baseUrl("http://api.tianapi.com") .addConverterFactory(GsonConverterFactory.create()) .build(); GitHubService gitHubService = retrofit.create(GitHubService.class); Call<OldBean> call = gitHubService.url(); call.enqueue(new Callback<OldBean>() { @Override public void onResponse(Call<OldBean> call, Response<OldBean> response) { //直接解析了.addConverterFactory(GsonConverterFactory.create()) OldBean oldBean =response.body(); // System.out.println("oldbean = "+oldBean); //insertInIx 将集合添加到数据库 IApplication.session.getNewslistBeanDao().insertInTx(oldBean.getNewslist()); //添加完查询一下 loadAll()查询数据库全部内容 List<NewslistBean> list = IApplication.session.getNewslistBeanDao().loadAll(); for (NewslistBean bean : list){ System.out.println("bean = "+bean.toString()); } } @Override public void onFailure(Call<OldBean> call, Throwable t) { } }); }}控制台打印出来从数据库查询到的内容
数据库的 其他操作
// List<LoginBean> list = new ArrayList<>();// for(int i=2;i<10;i++){// LoginBean bean = new LoginBean("username " + i,"password");// list.add(bean);// }// //insertInTx直接添加集合// IApplication.session.getLoginBeanDao().insertInTx(list);// LoginBean bean = new LoginBean(1L,"1509D","1509Dpassword"); //insert 直接添加bean// IApplication.session.getLoginBeanDao().insert(bean);// bean.setUsername("muhanxi");//在数据库中更改// IApplication.session.getLoginBeanDao().insertOrReplace(bean);//插入或替换,//使用queryBuilder,后面跟着where写查询条件 .list返回一个集合// QueryBuilder<LoginBean> queryBuilder = IApplication.session.getLoginBeanDao().queryBuilder().where(LoginBeanDao.Properties.Username.eq("muhanxi"));// List<LoginBean> list = queryBuilder.list(); //delete删除// IApplication.session.getLoginBeanDao().delete(list.get(0));// IApplication.session.getLoginBeanDao().delete// IApplication.session.insert(bean);// IApplication.session.getLoginBeanDao().insert(bean);// IApplication.session.getBeanDao().in// 12|username 2|password// LoginBean bean = new LoginBean(12L,"username 2","password");// bean.setUsername("update");//// IApplication.session.getLoginBeanDao().update(bean);// // QueryBuilder<LoginBean> queryBuilder = IApplication.session.getLoginBeanDao().queryBuilder()// .where(LoginBeanDao.Properties.Username.eq("update"),// LoginBeanDao.Properties.Id.eq(12L)); //where语句两个查询条件////// List<LoginBean> beans = queryBuilder.list();////// for (LoginBean loginBean : beans){// System.out.println("loginBean = " + loginBean.toString());// }// QueryBuilder queryBuilder = IApplication.session.getLoginBeanDao().queryBuilder() ;//// List<LoginBean> loginBeans = queryBuilder.where(LoginBeanDao.Properties.Password.eq("password")).list();//// List<LoginBean> off = queryBuilder.where(LoginBeanDao.Properties.Password.eq("password"))// .orderDesc(LoginBeanDao.Properties.Id).offset(3).limit(3).list();// // offset偏移量,limit几条,// for (LoginBean loginBean : loginBeans){// System.out.println("loginBeans = " + loginBean.toString());// }//// for (LoginBean loginBean : off){// System.out.println("off = " + loginBean.toString());// } //queryRawVC在 查询语句// List<LoginBean> list = IApplication.session.getLoginBeanDao().queryRaw(" where USERNAME = ?","1");//// for (LoginBean bean : list){// System.out.println("bean = " + bean.toString());// }// List<Bean> list = IApplication.session.getBeanDao().queryRaw(" group by SEX");////// for(Bean bean : list){//// System.out.println("bean = " + bean.toString());//// }//// List<Bean> list = new ArrayList<>();// for(int i=0;i<10;i++){//// list.add()// Bean bean = null;// if(i % 2 == 0){// bean = new Bean("name"+i,"男",i);// }else { // bean = new Bean("name"+i,"女",i);// }// list.add(bean);// }////// IApplication.session.getBeanDao().insertInTx(list);////// List<Bean> list1 = IApplication.session.getBeanDao().loadAll();//// for (Bean bean : list1){// System.out.println("bean = " + bean.toString());// }
阅读全文
0 0
- GreenDao入门
- Android greenDAO入门
- GreenDao使用入门
- GreenDAO快速入门
- greenDAo的简单入门介绍
- greenDao
- greenDAO
- greenDAO
- greenDAO
- GreenDao
- GreenDAO
- Greendao
- greenDAO
- GreenDao
- GreenDao
- GreenDao
- GreenDAO
- GreenDAO
- Oracle连接远程数据库的几种方法
- 字符编码的概念(UTF-8、UTF-16、UTF-32都是什么鬼)
- Unicode、UTF-8 和 ISO8859-1到底有什么区别
- 开源接口管理平台eoLinker AMS v3.0.8更新,支持自动化测试环境变量!
- python sorted函数(结合使用lambda和operator.itemgetter()来对字典进行排序)
- GreenDao入门
- Unity3D使用过程中的遇到的技巧及问题解决方法
- 使用ApachePOI生成XLSX格式Excel文档大数据量导出
- 怎样设置新建jsp文件的默认字符编码
- 【Scikit-Learn 中文文档】流形学习
- 关于hbase与spring整合的步骤及注意事项
- pythonAnyWhere 是不能够使用爬虫的
- 【Scikit-Learn 中文文档】密度估计
- 把一个Apple ID加到developer team里