主页: http://ormlite.com/


配置: 添加以下依赖
* compile 'com.j256.ormlite:ormlite-android:4.48'
*
compile 'com.j256.ormlite:ormlite-core:4.48'


用途: 操作数据库


使用步骤

1. 创建数据库表结构的实体类.示例代码:

//指定数据库表名
@DatabaseTable(tableName = "user")
public class User { 创建主键
@DatabaseField(generatedId = true)
private int id; 创建数据库的列
@DatabaseField(columnName = "name")
private String name;
@DatabaseField(columnName = "age")
private int age;
@DatabaseField(columnName = "tel")
private String tel; //java.lang.IllegalArgumentException: Can't find a no-arg constructor for class cn.loaderman.ormlite.User
public User() {} public User(String name, int age, String tel) {
this.name = name;
this.age = age;
this.tel = tel;
}
}

2.创建OrmLiteSqliteOpenHelper的实现类.示例代码:

public class UserDBOpenHelper extends OrmLiteSqliteOpenHelper {
/**
* 构造方法
* @param context
* 上下文
* @param databaseName
* 数据库的名称
* @param factory
* 游标工厂
* @param databaseVersion
* 数据库版本
*/
public OrmlitOpenHelper(Context context) {
super(context, "user.db", null,1);
}
/**
* 创建数据库的表
*/
@Override
public void onCreate(SQLiteDatabase sqLiteDatabase, ConnectionSource connectionSource) {
try {
TableUtils.createTable(connectionSource,User.class);
} catch (SQLException e) {
e.printStackTrace();
}
}
/**
* 数据库升级调用
*/
@Override
public void onUpgrade(SQLiteDatabase sqLiteDatabase, ConnectionSource connectionSource, int i, int i1) {
try {
TableUtils.dropTable(connectionSource,User.class,true);
onCreate(sqLiteDatabase,connectionSource);
} catch (SQLException e) {
e.printStackTrace();
}
}
}

3. 获取数据库的DAO对象, 即可进行增删改查的操作.示例代码:

UserDBOpenHelper helper = new UserDBOpenHelper(this);
Dao<User, Integer> dao = helper.getUserDao();
User user = new User("zhangsan", 12, "13212345678");
// 增
dao.create(user);
// 改
dao.updateRaw("update user set tel = '18882348888' where name = ?", new String[]{"zhangsan"});
// 查
List<User> list = dao.queryForAll();
for(User user:list){
System.out.println(user.toString());
}
// 删
dao.deleteById(1);

最新文章

  1. HMM基本原理及其实现(隐马尔科夫模型)
  2. Managing a node remotely by using the netapp SP
  3. 如何理解javascript closure ?
  4. sap透明表、结构、簇介绍以及查找表方法
  5. Kibana
  6. Android RatingBar自定义替换系统图片
  7. win7安装memcached
  8. js post传值
  9. 二级横向菜单实现——ListView
  10. Docker环境中部署DzzOffice 1.2.5.2
  11. RMQ问题--范围最小值问题
  12. UESTC 1034 AC Milan VS Juventus 分情况讨论
  13. caffe神经网络中不同的lr_policy间的区别
  14. You Don&#39;t Know JS: Async &amp; Performance(第一章, 异步:now &amp; later)
  15. pip安装离线包
  16. 何时调用C++复制构造函数和拷贝构造函数(转)
  17. libev loop_init分析
  18. java中常用的16个工具类
  19. 【python3】基于 qq邮箱的邮件发送
  20. 5337朱荟潼Java实验报告一

热门文章

  1. 关于php 7.4编译安装
  2. Eclispe造成的tomcat占用端口 无法启动 强制终止进程 转载
  3. C++——函数
  4. 调用libusb_control_transfer 出错,返回-8
  5. USRPX310 在GNU Radio上更改通道A或B
  6. springboot-拦截器redis注入空问题解决
  7. Windowsx下Appium环境搭建步骤及问题
  8. SpringData JPA 在解析实体类字段时驼峰自动添加下划线问题
  9. idea 启动ssm项目
  10. kylin实战(一)