首先要在 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的用法;的更多相关文章

  1. AsyncTask 异步任务 的用法(并且使用ORMlite关系数据库);

    package com.lixu.asynctask; import com.j256.ormlite.field.DatabaseField; import com.j256.ormlite.tab ...

  2. Android ORMLite 框架的入门用法

    大家在Android项目中或多或少的都会使用数据库,为了提高我们的开发效率,当然少不了数据库ORM框架了,尤其是某些数据库操作特别频繁的app:本篇博客将详细介绍ORMLite的简易用法. 下面开始介 ...

  3. Android数据库框架-----ORMLite 的基本用法

    ORMLite 是一款非要流行的Android平台上的数据库框架,性能优秀,代码简洁: 简述: 优点: 1.轻量级:2.使用简单,易上手:3.封装完善:4.文档全面. 缺点:1.基于反射,效率较低(本 ...

  4. 5 -- Hibernate的基本用法 --1 1 对象/关系数据库映射(ORM)

    ORM的全称是Object/Relation Mapping ,即对象/关系数据库映射.ORM可理解成一种规范,它概述了这类框架的基本特征:完成面向对象的编程语言到关系数据库的映射.当ORM框架完成映 ...

  5. Android 数据库框架OrmLite的使用(一)

    在这里记录下最基本的用法,官网上可了解相关的介绍. 1.下载OrmLite jar 在下载android的:ormlite-android-4.48.jar和ormlite-core-4.48.jar ...

  6. mongodb-java-driver基本用法

    1.先下载mongodb-java-driver 目前最新版本是2.9.3 2.下面是基本的CRUD示例代码: package com.cnblogs.yjmyzz.cache.test; impor ...

  7. Android—Ormlite框架简单的操作数据库

    大家在Android项目中或多或少的都会使用数据库,为了提高我们的开发效率,当然少不了数据库ORM框架了,尤其是某些数据库操作特别频繁的app:本篇博客将详细介绍ORMLite的简易用法. 下面开始介 ...

  8. [ 转]Android快速开发–使用ORMLite操作数据库

    OrmLite是一个数据库操作辅助的开源框架,主要面向Java语言.在Android面向数据库开发中,是一个比较流行的开源框架,方便操作而且功能强大,今天来学习一下,最近的项目中也有所涉及,写个博客来 ...

  9. 数据库 ORM框架 ORMLite

    几个ORM框架的比较 先介绍一下ORM的概念,以前也一直听说,不过没详细了解啥意思.其全称叫做对象关系映射(Object Relation Mapping),是一种程序设计技术,用于实现面向对象编程语 ...

随机推荐

  1. 常用模块之hashlib,subprocess,logging,re,collections

    hashlib 什么是hashlib 什么叫hash:hash是一种算法(3.x里代替了md5模块和sha模块,主要提供 SHA1, SHA224, SHA256, SHA384, SHA512 ,M ...

  2. linux指定某用户某组挂载外接硬盘以便操作硬盘

    一.环境:发行版本:ubuntu 14.04 64bit 二.获取要指定的用户及组id 使用id命令 (笔者获取的uid和gid都为1000) 三.获取识别的硬盘路径 sudo fdisk -l  ( ...

  3. C#中的编译开关

    c#不支持宏定义,只支持编译开关. ======================================我想加上#define xxx就编译a代码,否则编译b代码,像这样的:#if xxxa ...

  4. YOLOv3-darknet 内容解析

    目录 Yolov3-darknet 内容解析 多标签分类预测 跨尺度预测 网络结构改变 reference Yolov3-darknet 内容解析 YOLOv3是到目前为止,速度和精度最均衡的目标检测 ...

  5. 高精度N的阶乘-N!

    题目:输入一个正整数N(0<N<=30),求N! 代码: #include<stdlib.h> #include<cstdio> #include<strin ...

  6. NOI 4978 宠物小精灵之收服(二维背包)

    http://noi.openjudge.cn/ch0206/4978/ 描述 宠物小精灵是一部讲述小智和他的搭档皮卡丘一起冒险的故事. 一天,小智和皮卡丘来到了小精灵狩猎场,里面有很多珍贵的野生宠物 ...

  7. Win10重命名文件夹导致资源管理器卡顿的解决办法

    我本机使用的是 Win10 1607,不清楚是因为什么原因导致重命名文件夹时资源管理器会被卡死,找了很长时间终于找到了解决办法,现在我把步骤粘出来以便后续遇到相同问题的朋友能及时解决. 其实操作很简单 ...

  8. Jmeter 同一个测试计划下的多个线程组 执行顺序 希望调整为顺序执行

    用Jmeter做自动化测试,一个测试计划中添加多个线程组, 每个线程组的功能测试,希望是一个线程组执行完毕后,接着执行下一个线程组下的请求 Jmeter默认多个线程组之间是并行关系 需要在测试计划下勾 ...

  9. Insert Delete GetRandom O(1)

    2018-07-15 18:36:29 问题描述: 问题求解: private ArrayList<Integer> ls; private HashMap<Integer, Int ...

  10. 【转】ArcGIS API for Silverlight/WPF 2.1学习笔记(四)

      七.Editing ArcGIS Server 10提供了: 通过feature service,在Web上编辑Feature layers的geographic data的功能. 通过geome ...