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