关系数据库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),是一种程序设计技术,用于实现面向对象编程语 ...
随机推荐
- thinkphp中的Ueditor的使用, 以及如何传递编辑器内容到后台?
在线编辑器有很多很多, 而且大多是开源的. uediotr基于mit协议, 开源, 可以用于商业和非商业的 任意使用和修改都可以 如果两个相连接的 相邻的 元素之间 因为边框重叠 而显得中间的边框线很 ...
- zedgraph右键菜单的汉化
http://blog.csdn.net/jeryler/article/details/7876376 修改 zedGraphControl的ContextMenuBuilder事件即可! zedG ...
- 论文笔记——Deep Model Compression Distilling Knowledge from Noisy Teachers
论文地址:https://arxiv.org/abs/1610.09650 主要思想 这篇文章就是用teacher-student模型,用一个teacher模型来训练一个student模型,同时对te ...
- Change the Forwarding: RMT Architecture
Change the Forwarding: RMT Architecture Note on "Forwarding Metamorphosis: Fast Programmable Ma ...
- NetMagic Simple Overview
参考: NetMagic Startup: How to develop NetMagic rapidly NetMagic Simple Overview NetMagic 是什么? NetMagi ...
- HDU 2955 Robberies(0-1背包)
http://acm.hdu.edu.cn/showproblem.php?pid=2955 题意:一个抢劫犯要去抢劫银行,给出了几家银行的资金和被抓概率,要求在被抓概率不大于给出的被抓概率的情况下, ...
- MVC ---- IEnumerable<T>、List<T> 前台遍历展示
突然做前台数据展示,发现IEnumerable 对一个列表的展示还是可以,但要是多个类型放在一个表中如何处理呢,如下: 一个类IEnumerable遍历 后台 public IEnumerable&l ...
- Java中的垃圾回收机制
1. 垃圾回收的意义 在C++中,对象所占的内存在程序结束运行之前一直被占用,在明确释放之前不能分配给其它对象:而在Java中,当没有对象引用指向原先分配给某个对象的内存时,该内存便成为垃圾.JVM的 ...
- DBCC CHECKIDENT 和SET IDENTITY_INSERT table OFF
TRUNCATE TABLE [DBO].TRACKING_CODE_BASE_Jasmine DELETE FROM TRACKING_CODE_BASE_Jasmine 有同一张表,一次用trun ...
- 一步一步实现JS拖拽插件
js拖拽是常见的网页效果,本文将从零开始实现一个简单的js插件. 一.js拖拽插件的原理 常见的拖拽操作是什么样的呢?整过过程大概有下面几个步骤: 1.用鼠标点击被拖拽的元素 2.按住鼠标不放,移动鼠 ...