继续接上文:

Android 使用 Greendao 操作 db sqlite(1)-- 直接在MainActivity中调用

布局文件同上文一致,这里就不贴了。

一、封装DaoUtils类

UserInfoUtils.java

package com.jack.testmd.greendao;

import com.jack.testmd.model.UserInfo;

import java.util.List;

public class UserInfoUtils {
private UserInfoDao userInfoDao = DBManager.get().getUserInfoDao();
private DaoSession daoSession = DBManager.get().getDaoSession(); /**
* 插入单条
*
* @param userInfo
* @return
*/
public boolean insert(UserInfo userInfo) {
return userInfoDao.insert(userInfo) == - ? false : true;
} /**
* 插入多条
*
* @param dataList
* @return
*/
public boolean insertMult(final List<UserInfo> dataList) {
boolean flag = false;
try {
daoSession.runInTx(new Runnable() {
@Override
public void run() {
for (UserInfo data : dataList) {
userInfoDao.insertOrReplace(data);
}
}
});
flag = true;
} catch (Exception e) {
e.printStackTrace();
}
return flag;
} /**
* 修改一条数据
*
* @param data
* @return
*/
public boolean update(UserInfo data) {
boolean flag = false;
try {
userInfoDao.update(data);
flag = true;
} catch (Exception e) {
e.printStackTrace();
}
return flag;
} /**
* 删除单条记录
*
* @param key
* @return
*/
public boolean deleteByKey(long key) {
boolean flag = false;
try {
//按照id删除
userInfoDao.deleteByKey(key);
flag = true;
} catch (Exception e) {
e.printStackTrace();
}
return flag;
} /**
* 删除所有记录
*
* @return
*/
public boolean deleteAll() {
boolean flag = false;
try {
userInfoDao.deleteAll();
flag = true;
} catch (Exception e) {
e.printStackTrace();
}
return flag;
} /**
* 查询所有记录
*
* @return
*/
public List<UserInfo> findAll() {
return userInfoDao.loadAll();
} /**
* 根据主键id查询记录
*
* @param key
* @return
*/
public UserInfo findById(long key) {
return userInfoDao.load(key);
} /**
* 使用native sql进行查询操作
*/
public List<UserInfo> findBySql(String sql, String[] conditions) {
return userInfoDao.queryRaw(sql, conditions);
} }

调用代码:

package com.jack.testmd;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View; import com.jack.testmd.application.MyApplication;
import com.jack.testmd.greendao.DBManager;
import com.jack.testmd.greendao.UserInfoDao;
import com.jack.testmd.greendao.UserInfoUtils;
import com.jack.testmd.model.UserInfo; import java.util.List; public class TestGreenActivity extends AppCompatActivity {
private final String TAG = DBManager.class.getSimpleName();private UserInfoUtils dbUtils = new UserInfoUtils(); @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_test_green);
} protected void optGreen(View v) { switch (v.getId()) {
case R.id.btn_all:
List<UserInfo> list = dbUtils.findAll();
for (int i = ; i < list.size(); i++) {
Log.i(TAG, "id:" + list.get(i).getId() + ",name:" + list.get(i).getUserName() + ",age:" + list.get(i).getAge());
}
break;
case R.id.btn_add:
UserInfo userInfo = new UserInfo(, "a001", ); dbUtils.insert(userInfo);
break;
case R.id.btn_update:
UserInfo userInfo2 = new UserInfo(, "b001", ); dbUtils.update(userInfo2);
break;
case R.id.btn_del:
dbUtils.deleteByKey((long) 1);
break;
case R.id.btn_clear:
dbUtils.deleteAll();
break;
}
}
}

本博客地址: wukong1688

本文原文地址:https://www.cnblogs.com/wukong1688/p/10705662.html

转载请著名出处!谢谢~~

最新文章

  1. 特邀美国EMC实战专家Mark来华授课
  2. js创建与追加元素
  3. z-fighting在unity中的解决方式
  4. webview上传图片
  5. Java [Leetcode 189]Rotate Array
  6. hdu 5584 LCM Walk(数学推导公式,规律)
  7. Ultimus BPM 零售和快消品行业应用解决方案
  8. JDBC访问数据库的一些小技巧
  9. python测试开发django-47.xadmin上传图片和文件
  10. day_6.6 py
  11. ionic 实现微信朋友圈分享的完整开发流程
  12. 8.Appium的基本使用-2(安装node.js)
  13. django admin登陆添加修改内容
  14. 【BZOJ】1002:轮状病毒(基尔霍夫矩阵【附公式推导】或打表)
  15. 【Cesium】物体显示
  16. Android开发中需要注意哪些坑
  17. Python的hasattr() getattr() setattr() 函数使用方法
  18. 运行用例时,报错Unknow Error:Element xxx is not clickable……的解决方法
  19. WebChromeClient 简介 API 案例
  20. oracle11g配置dataguard

热门文章

  1. dll 修复....
  2. 动态逆序对[CDQ分治]
  3. 【luogu3733】【HAOI2017】 八纵八横 (线段树分治+线性基)
  4. [POJ 1637] Sightseeing tour(网络流)
  5. CSS 隐藏页面元素的 几 种方法总结
  6. jsp (2)
  7. BZOJ3881 Divljak
  8. Apache Ant 项目构建
  9. 用popart构建常染色体单倍型网络(Autosomal haplotypes network construction with popart)
  10. 斯坦福大学公开课机器学习:machine learning system design | trading off precision and recall(F score公式的提出:学习算法中如何平衡(取舍)查准率和召回率的数值)