关系数据库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数据库管理工具类:

 1 2
 3 import java.sql.SQLException;
 4
 5 import android.content.Context;
 6 import android.database.sqlite.SQLiteDatabase;
 7 import android.database.sqlite.SQLiteDatabase.CursorFactory;
 8 import android.util.Log;
 9
10 import com.j256.ormlite.android.apptools.OrmLiteSqliteOpenHelper;
11 import com.j256.ormlite.dao.Dao;
12 import com.j256.ormlite.support.ConnectionSource;
13 import com.j256.ormlite.table.TableUtils;
14
15 public class ORMLiteDatabaseHelper extends OrmLiteSqliteOpenHelper {
16
17     private static ORMLiteDatabaseHelper mDatabaseHelper = null;
18     private Dao<User, Integer> mUserDao = null;
19
20     private final static String DataBase_NAME = "ormlite.db";
21     private final static int DataBase_VERSION = 1;
22
23     public ORMLiteDatabaseHelper(Context context, String databaseName,
24             CursorFactory factory, int databaseVersion) {
25         super(context, DataBase_NAME, factory, DataBase_VERSION);
26     }
27
28     public static ORMLiteDatabaseHelper getInstance(Context context) {
29         if (mDatabaseHelper == null) {
30             mDatabaseHelper = new ORMLiteDatabaseHelper(context, DataBase_NAME,
31                     null, DataBase_VERSION);
32         }
33
34         return mDatabaseHelper;
35     }
36
37     @Override
38     public void onCreate(SQLiteDatabase arg0, ConnectionSource connectionSource) {
39
40         Log.d(this.getClass().getName(), "ORMLite数据库 -> onCreate");
41
42         try {
43             TableUtils.createTableIfNotExists(connectionSource, User.class);
44         } catch (Exception e) {
45             e.printStackTrace();
46         }
47     }
48
49     @Override
50     public void onUpgrade(SQLiteDatabase database, ConnectionSource arg1,
51             int arg2, int arg3) {
52
53         Log.i(this.getClass().getName(), "数据库 -> onUpgrade");
54
55         try {
56             // 删除旧的数据库表。
57             TableUtils.dropTable(connectionSource, User.class, true);
58
59             // 重新创建新版的数据库。
60             onCreate(database, connectionSource);
61         } catch (SQLException e) {
62             e.printStackTrace();
63         }
64     }
65
66     /**
67      * 每一个数据库中的表,要有一个获得Dao的方法。 可以使用一种更通用的模板方法如:
68      *
69      * public Dao<Class, Integer> getORMLiteDao(Class cls) throws SQLException {
70      * if (dao == null) { dao = getDao(cls); }
71      *
72      * return dao; }
73      */
74     public Dao<User, Integer> getUserDao() {
75         if (mUserDao == null) {
76             try {
77                 mUserDao = getDao(User.class);
78             } catch (java.sql.SQLException e) {
79                 e.printStackTrace();
80             }
81         }
82
83         return mUserDao;
84     }
85
86     @Override
87     public void close() {
88         super.close();
89         mUserDao = null;
90     }
91 }

最后在mainactivity中操作添加数据:

 1 import java.sql.SQLException;
 2 import java.util.List;
 3 import java.util.Random;
 4
 5 import com.j256.ormlite.dao.Dao;
 6
 7 import zhangphil.ormlitetest.database.ORMLiteDatabaseHelper;
 8 import zhangphil.ormlitetest.database.User;
 9 import android.support.v7.app.ActionBarActivity;
10 import android.widget.Toast;
11 import android.os.Bundle;
12
13 public class MainActivity extends ActionBarActivity {
14
15     private Dao<User, Integer> mUserDao;
16
17     @Override
18     protected void onCreate(Bundle savedInstanceState) {
19         super.onCreate(savedInstanceState);
20
21         ORMLiteDatabaseHelper mDatabaseHelper = ORMLiteDatabaseHelper
22                 .getInstance(this);
23         mUserDao = mDatabaseHelper.getUserDao();
24
25         Random rand = new Random();
26         for (int i = 0; i < 3; i++) {
27             User user = new User();
28             user.setUserId(i);
29             user.setName("name" + i);
30             // 生成随机测试的年龄。
31             user.setAge(rand.nextInt(100));
32
33             try {
34                 mUserDao.createOrUpdate(user);
35             } catch (SQLException e) {
36                 e.printStackTrace();
37             }
38         }
39     }
40
41     @Override
42     public void onStart() {
43         super.onStart();
44
45         // 全局查询
46         try {
47             List<User> users = mUserDao.queryForAll();
48
49             for (User u : users) {
50                 Toast.makeText(this, u.toString(), Toast.LENGTH_SHORT).show();
51             }
52         } catch (SQLException e) {
53             e.printStackTrace();
54         }
55
56         // 条件查询QueryBuilder
57         // 假设我们给定一个用户的id=1
58         int uid = 1;
59         try {
60             List<User> users = mUserDao.queryBuilder().where()
61                     .eq(User.USER_ID, uid).query();
62
63             for (User u : users) {
64                 Toast.makeText(this, "查询结果 : " + u.toString(),
65                         Toast.LENGTH_SHORT).show();
66             }
67         } catch (SQLException e) {
68             e.printStackTrace();
69         }
70     }
71 }
时间: 2024-08-07 17:01:40

关系数据库ORMlite的用法;的相关文章

Android ORMLite 框架的入门用法

转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/39121377 大家在Android项目中或多或少的都会使用数据库,为了提高我们的开发效率,当然少不了数据库ORM框架了,尤其是某些数据库操作特别频繁的app:本篇博客将详细介绍ORMLite的简易用法. 下面开始介绍ORMLite的入门用法~ 1.下载 ORMLite Jar 首先去ORMLite官网下载jar包,对于Android为:ormlite-android-4.48.

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

ORM的全称是Object/Relation Mapping ,即对象/关系数据库映射.ORM可理解成一种规范,它概述了这类框架的基本特征:完成面向对象的编程语言到关系数据库的映射.当ORM框架完成映射后,既可利用面向对象程序设计语言的简单易用性,又可利用关系数据库的技术优势.因此可把ORM框架当成应用程序和数据库的桥梁. 当使用了一种面向对象的程序设计语言来进行应用开发时,从项目开始起一直采用的是面向对象分析(OOA).面向对象设计(OOD).面向对象编程(OOP),但到了持久层数据库访问时,

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

ORMLite 是一款非要流行的Android平台上的数据库框架,性能优秀,代码简洁: 简述: 优点: 1.轻量级:2.使用简单,易上手:3.封装完善:4.文档全面. 缺点:1.基于反射,效率较低(本人还没有觉得效率低):2.缺少中文翻译文档 准备工作: jar包 地址:http://ormlite.com/releases/ 集成方法:把jar包复制到as的libs文件夹下,并且引用jar包即可 之后创建一个类User,并完成相关配置 @DatabaseTable(tableName="tb_

安卓数据库ORMLite框架总结

/*---------------------------------------- *-描述--ORMLite框架使用总结. *-描述--S1.相关理论描述 * >>ORMlite通过Java注解的方式来建立起与数据库的映射关系,在Android面向数据库开发中,是一个比较 * 流行的开源框架,方便操作而且功能强大 * >>ORMLite的优缺点 * 优点:轻量级.使用简单.封装完善.文档全面 * 缺点:基于反射,效率较低,缺少中文翻译文档 * >> *-描述--S2

标准SQL语言的用法

原文链接:http://www.ifyao.com/2015/05/18/%E6%A0%87%E5%87%86%E7%9A%84sql%E8%AF%AD%E8%A8%80%E4%BD%BF%E7%94%A8%E6%96%B9%E6%B3%95%E5%8F%8A%E5%A4%9A%E8%A1%A8%E8%BF%9E%E6%8E%A5/ 标准SQL语言的用法 SQL语言是目前最通用的关系数据库语言.ANSI SQL是指由美国国家标准局(ANSI)的数据库委员会制定的标准SQL语言,多数关系数据库产品

【光速使用开源框架系列】数据库框架OrmLite

[关于本系列] 最近看了不少开源框架,网上的资料也非常多,但是我认为了解一个框架最好的方法就是实际使用.本系列博文就是带领大家快速的上手一些常用的开源框架,体会到其作用. 由于作者水平有限,本系列只会描述如何快速的使用框架的基本功能,更多的详细设置大家可以在这些项目的页面上找到. [介绍]: ORMLite是一款辅助开发数据库的框架,可以通过给实体配置标注来快速建立数据表,也可以通过其提供的DAO类中的方法来快速对数据库进行操作,如增删改查等. [项目页面]: http://ormlite.co

OrmLite动态创建表,一个实体类创建多张表的的偏招

在做一个Android的项目,因为使用数据库频繁,实体字段也比较多,于是打算采用ORM框架,发现OrmLite还不错,于是下了下来,打算使用. 没想到还没正式开工,就遇到问题了.我现在的一个需求如下, 我有一个实体类如下,代表聊天消息,现在要做的是针对每一个当前用户(userId)对应一个朋友(friendId)都要创建一个表.需求比较蛋疼,我本来想的是直接在加两个字段就搞定的,但是我们老大说要分表.没办法只能分表. public class ChatMessage{ public ChatMe

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

OrmLite是一个数据库操作辅助的开源框架,主要面向Java语言.在Android面向数据库开发中,是一个比较流行的开源框架,方便操作而且功能强大,今天来学习一下,最近的项目中也有所涉及,写个博客来记一下吧,感谢大神团队贡献如此实用的开源框架,这里是OrmLite的官方网址:http://ormlite.com/ 准备工作–创建数据库及数据表 ORMlite通过Java注解的方式来建立起与数据库的映射关系,在这里我们以一个实例来进行说明,如我们现在想要建立一个简单的数据库test.db并创建一

Android 快速开发系列 ORMLite 框架的使用

上一篇已经对ORMLite框架做了简单的介绍:Android ORMLite 框架的入门用法~~本篇将介绍项目可能会使用到的一些用法,也为我们的使用ORMLite框架总结出一个较合理的用法. 通过上一篇的了解,我们使用ORMLite,需要自己写一个DatabaseHelper去继承OrmLiteSqliteOpenHelper,下面我们首先给出一个我认为比较靠谱的Helper的写法: 1.DatabaseHelper package com.zhy.zhy_ormlite.db; import