关系数据库ORMlite的用法;
首先要在 http://ormlite.com/releases 页面下载两个jar 包:
(1)core列表下的jar包; (2)android列表下的jar包。
将上面的两个jar包下载后放到Android工程项目中的libs包中。
在创建一个java类来存放数据,
1 package zhangphil.ormlitetest.database;
2
3 import com.j256.ormlite.field.DatabaseField;
4 import com.j256.ormlite.table.DatabaseTable;
5
6 @DatabaseTable(tableName = "users")
7 public class User {
8
9 public final static String USER_ID = "user_id";
10 public final static String NAME = "name";
11 public final static String AGE = "age";
12
13 public User() {
14
15 }
16
17 public User(String name, int age) {
18 this.name = name;
19 this.age = age;
20 }
21
22 // @DatabaseField(generatedId = true)
23 // public int id;
24
25 @DatabaseField(id = true, columnName = USER_ID)
26 public int user_id;
27
28 @DatabaseField(columnName = NAME)
29 public String name;
30
31 @DatabaseField(columnName = AGE)
32 public int age;
33
34 public int getUserId() {
35 return user_id;
36 }
37
38 public void setUserId(int uid) {
39 this.user_id = uid;
40 }
41
42 public String getName() {
43 return name;
44 }
45
46 public void setName(String name) {
47 this.name = name;
48 }
49
50 public int getAge() {
51 return age;
52 }
53
54 public void setAge(int age) {
55 this.age = age;
56 }
57
58 @Override
59 public String toString() {
60 return "user_id:" + user_id + " 姓名:" + name + " 年龄:" + age;
61 }
62 }
创建一个ORMLite数据库管理工具类:
import java.sql.SQLException; import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.util.Log; import com.j256.ormlite.android.apptools.OrmLiteSqliteOpenHelper;
import com.j256.ormlite.dao.Dao;
import com.j256.ormlite.support.ConnectionSource;
import com.j256.ormlite.table.TableUtils; public class ORMLiteDatabaseHelper extends OrmLiteSqliteOpenHelper { private static ORMLiteDatabaseHelper mDatabaseHelper = null;
private Dao<User, Integer> mUserDao = null; private final static String DataBase_NAME = "ormlite.db";
private final static int DataBase_VERSION = 1; public ORMLiteDatabaseHelper(Context context, String databaseName,
CursorFactory factory, int databaseVersion) {
super(context, DataBase_NAME, factory, DataBase_VERSION);
} public static ORMLiteDatabaseHelper getInstance(Context context) {
if (mDatabaseHelper == null) {
mDatabaseHelper = new ORMLiteDatabaseHelper(context, DataBase_NAME,
null, DataBase_VERSION);
} return mDatabaseHelper;
} @Override
public void onCreate(SQLiteDatabase arg0, ConnectionSource connectionSource) { Log.d(this.getClass().getName(), "ORMLite数据库 -> onCreate"); try {
TableUtils.createTableIfNotExists(connectionSource, User.class);
} catch (Exception e) {
e.printStackTrace();
}
} @Override
public void onUpgrade(SQLiteDatabase database, ConnectionSource arg1,
int arg2, int arg3) { Log.i(this.getClass().getName(), "数据库 -> onUpgrade"); try {
// 删除旧的数据库表。
TableUtils.dropTable(connectionSource, User.class, true); // 重新创建新版的数据库。
onCreate(database, connectionSource);
} catch (SQLException e) {
e.printStackTrace();
}
} /**
* 每一个数据库中的表,要有一个获得Dao的方法。 可以使用一种更通用的模板方法如:
*
* public Dao<Class, Integer> getORMLiteDao(Class cls) throws SQLException {
* if (dao == null) { dao = getDao(cls); }
*
* return dao; }
*/
public Dao<User, Integer> getUserDao() {
if (mUserDao == null) {
try {
mUserDao = getDao(User.class);
} catch (java.sql.SQLException e) {
e.printStackTrace();
}
} return mUserDao;
} @Override
public void close() {
super.close();
mUserDao = null;
}
}
最后在mainactivity中操作添加数据:
import java.sql.SQLException;
import java.util.List;
import java.util.Random; import com.j256.ormlite.dao.Dao; import zhangphil.ormlitetest.database.ORMLiteDatabaseHelper;
import zhangphil.ormlitetest.database.User;
import android.support.v7.app.ActionBarActivity;
import android.widget.Toast;
import android.os.Bundle; public class MainActivity extends ActionBarActivity { private Dao<User, Integer> mUserDao; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); ORMLiteDatabaseHelper mDatabaseHelper = ORMLiteDatabaseHelper
.getInstance(this);
mUserDao = mDatabaseHelper.getUserDao(); Random rand = new Random();
for (int i = 0; i < 3; i++) {
User user = new User();
user.setUserId(i);
user.setName("name" + i);
// 生成随机测试的年龄。
user.setAge(rand.nextInt(100)); try {
mUserDao.createOrUpdate(user);
} catch (SQLException e) {
e.printStackTrace();
}
}
} @Override
public void onStart() {
super.onStart(); // 全局查询
try {
List<User> users = mUserDao.queryForAll(); for (User u : users) {
Toast.makeText(this, u.toString(), Toast.LENGTH_SHORT).show();
}
} catch (SQLException e) {
e.printStackTrace();
} // 条件查询QueryBuilder
// 假设我们给定一个用户的id=1
int uid = 1;
try {
List<User> users = mUserDao.queryBuilder().where()
.eq(User.USER_ID, uid).query(); for (User u : users) {
Toast.makeText(this, "查询结果 : " + u.toString(),
Toast.LENGTH_SHORT).show();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
关系数据库ORMlite的用法;的更多相关文章
- AsyncTask 异步任务 的用法(并且使用ORMlite关系数据库);
package com.lixu.asynctask; import com.j256.ormlite.field.DatabaseField; import com.j256.ormlite.tab ...
- Android ORMLite 框架的入门用法
大家在Android项目中或多或少的都会使用数据库,为了提高我们的开发效率,当然少不了数据库ORM框架了,尤其是某些数据库操作特别频繁的app:本篇博客将详细介绍ORMLite的简易用法. 下面开始介 ...
- Android数据库框架-----ORMLite 的基本用法
ORMLite 是一款非要流行的Android平台上的数据库框架,性能优秀,代码简洁: 简述: 优点: 1.轻量级:2.使用简单,易上手:3.封装完善:4.文档全面. 缺点:1.基于反射,效率较低(本 ...
- 5 -- Hibernate的基本用法 --1 1 对象/关系数据库映射(ORM)
ORM的全称是Object/Relation Mapping ,即对象/关系数据库映射.ORM可理解成一种规范,它概述了这类框架的基本特征:完成面向对象的编程语言到关系数据库的映射.当ORM框架完成映 ...
- Android 数据库框架OrmLite的使用(一)
在这里记录下最基本的用法,官网上可了解相关的介绍. 1.下载OrmLite jar 在下载android的:ormlite-android-4.48.jar和ormlite-core-4.48.jar ...
- mongodb-java-driver基本用法
1.先下载mongodb-java-driver 目前最新版本是2.9.3 2.下面是基本的CRUD示例代码: package com.cnblogs.yjmyzz.cache.test; impor ...
- Android—Ormlite框架简单的操作数据库
大家在Android项目中或多或少的都会使用数据库,为了提高我们的开发效率,当然少不了数据库ORM框架了,尤其是某些数据库操作特别频繁的app:本篇博客将详细介绍ORMLite的简易用法. 下面开始介 ...
- [ 转]Android快速开发–使用ORMLite操作数据库
OrmLite是一个数据库操作辅助的开源框架,主要面向Java语言.在Android面向数据库开发中,是一个比较流行的开源框架,方便操作而且功能强大,今天来学习一下,最近的项目中也有所涉及,写个博客来 ...
- 数据库 ORM框架 ORMLite
几个ORM框架的比较 先介绍一下ORM的概念,以前也一直听说,不过没详细了解啥意思.其全称叫做对象关系映射(Object Relation Mapping),是一种程序设计技术,用于实现面向对象编程语 ...
随机推荐
- Eclipse的快捷键使用总结
最近一直在使用Idea开发项目,导致之前一直使用的Eclipse快捷键忘记的差不多了,现在稍微整理了一些,方便以后可以快速切换回来. 常用的Eclipse快捷键总结: Ctrl+S 保存当前正在编辑的 ...
- 常用模块之hashlib,subprocess,logging,re,collections
hashlib 什么是hashlib 什么叫hash:hash是一种算法(3.x里代替了md5模块和sha模块,主要提供 SHA1, SHA224, SHA256, SHA384, SHA512 ,M ...
- P3901 数列找不同
P3901 数列找不同 题目描述 现有数列 \(A_1,A_2,\cdots,A_N\) ,Q 个询问 \((L_i,R_i)\) , \(A_{Li} ,A_{Li+1},\cdots,A_{Ri} ...
- sql:临时表和表变量
在SQL Server的性能调优中,有一个不可比拟的问题:那就是如何在一段需要长时间的代码或被频繁调用的代码中处理临时数据集,表变量和临时表是两种选择. 临时表: 临时对象都以#或##为前缀,临时表是 ...
- Chromosome coordinate systems: 0-based, 1-based
From: https://arnaudceol.wordpress.com/2014/09/18/chromosome-coordinate-systems-0-based-1-based/ I’v ...
- stm32 iic读取mpu6050失败 改用串口
mpu6050使用iic一直失败.放弃治疗,使用串口... #include "led.h" #include "mpu6050.h" #include &qu ...
- Javascript库的产生和解读
javascript库的产生,增强了浏览器或javascript语言的某些机制的功能, 让业务开发人员,更专注业务逻辑,而不是机制逻辑. 比如, 0.兼容性 同样的功能函数,不同的浏览器所暴露的a ...
- annovar积累
20170222 ANNOVAR简介 ANNOVAR是由王凯编写的一个注释软件,可以对SNP和indel进行注释,也可以进行变异的过滤筛选. ANNOVAR能够利用最新的数据来分析各种基因组中的遗传变 ...
- python学习——大文件分割与合并
在平常的生活中,我们会遇到下面这样的情况: 你下载了一个比较大型的游戏(假设有10G),现在想跟你的同学一起玩,你需要把这个游戏拷贝给他. 然后现在有一个问题是文件太大(我们不考虑你有移动硬盘什么的情 ...
- java 使用正则判断是不是一个数字
public class Numeric { public static void main(String[] args) { String string = "-1234.15" ...