在这里记录下最基本的用法,官网上可了解相关的介绍。

1、下载OrmLite jar

  在下载android的:ormlite-android-4.48.jar和ormlite-core-4.48.jar,放在你项目的libs目录下。

2、编写Bean类

package com.example.ormlite.bean;

import java.util.Collection;

import com.j256.ormlite.field.DatabaseField;
import com.j256.ormlite.field.ForeignCollectionField;
import com.j256.ormlite.table.DatabaseTable; @DatabaseTable(tableName="tb_user") //表明这是数据库中的一张表
public class User {
@DatabaseField(generatedId=true) //generatedId表示id为主键切自动生成
private int id;
@DatabaseField(columnName="name") //columnName的值为该字段在数据库表中的列名
private String name;
@DatabaseField(columnName="desc")
private String desc; public User() { }
public User(String name, String desc) {
this.name = name;
this.desc = desc;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getDesc() {
return desc;
}
public void setDesc(String desc) {
this.desc = desc;
}
@Override
public String toString() {
return "User [id=" + id + ", name=" + name + ", desc=" + desc + "]";
}
}

3.编写Dao类

package com.example.ormlite.db;

import java.sql.SQLException;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory; import com.example.ormlite.bean.User;
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;
/**
* 编写DAO类
* 原生的数据库操作,需要继承SQLiteOpenHelper,这里我们需要继承OrmLiteSqliteOpenHelper(间接继承了SQLiteOpenHelper)
* @author Administrator
*
*/
public class DatabaseHelper extends OrmLiteSqliteOpenHelper{
private static final String TABLE_NAME="sqlite-test.db";
private static DatabaseHelper instance; //userDao,每张表对应一个
private Dao<User,Integer> userDao;
public DatabaseHelper(Context context) {
super(context, TABLE_NAME, null, 2);
} /**
* 建表
*/
@Override
public void onCreate(SQLiteDatabase database, ConnectionSource connectionSource) {
try {
TableUtils.createTable(connectionSource, User.class);
} catch (SQLException e) {
e.printStackTrace();
}
} /**
* 更新表
*/
@Override
public void onUpgrade(SQLiteDatabase database, ConnectionSource connectionSource, int oldVersion,
int newVersion) {
try {
TableUtils.dropTable(connectionSource, User.class, true);
onCreate(database, connectionSource);
} catch (SQLException e) {
e.printStackTrace();
}
} /**
* 单例获取该Helper
* @param context
* @return
*/
public static synchronized DatabaseHelper getHelper(Context context){
if(instance==null){
synchronized(DatabaseHelper.class){
if(instance==null){
instance=new DatabaseHelper(context);
}
}
}
return instance;
} /**
* 获得userDao
* 我们会有很多表,每个表一般我们都会单独写个Dao用于操作,这里为了简单我并没有抽取出来,直接写在helper中,比如UserDao的获取
* @return
* @throws SQLException
*/
public Dao<User,Integer> getUserDao() throws SQLException{
if(userDao==null){
userDao=getDao(User.class);
}
return userDao;
} /**
* 释放资源
*/
@Override
public void close() {
super.close();
userDao=null;
}
}

4.测试

关于单元测试的配置可参考Android Junit测试框架

package com.example.ormlite.test;

import java.sql.SQLException;
import java.util.List; import android.test.AndroidTestCase;
import android.util.Log; import com.example.ormlite.bean.User;
import com.example.ormlite.dao.UserDao;
import com.example.ormlite.db.DatabaseHelper; public class OrmLiteDbTest extends AndroidTestCase{
public void testAddUser(){
// User u1=new User("yanqiong", "developer");
// DatabaseHelper helper=DatabaseHelper.getHelper(getContext());
// try {
// helper.getUserDao().create(u1);
// u1=new User("yanqiong2", "developer");
// helper.getUserDao().create(u1);
// u1=new User("yanqiong3", "developer");
// helper.getUserDao().create(u1);
// u1=new User("yanqiong4", "developer");
// helper.getUserDao().create(u1);
//
// testList();
// } catch (SQLException e) {
// e.printStackTrace();
// } User u1=new User("yanqiong5", "developer");
UserDao userDao=new UserDao(getContext());
userDao.add(u1); } public void testList() {
DatabaseHelper helper=DatabaseHelper.getHelper(getContext());
User u1=new User("yanqiong-android", "developer");
u1.setId(2);
List<User> users;
try {
users = helper.getUserDao().queryForAll();
Log.i("OrmLiteDbTest", users.toString());
} catch (SQLException e) {
e.printStackTrace();
}
} public void testDeleteUser(){
DatabaseHelper helper=DatabaseHelper.getHelper(getContext());
try {
helper.getUserDao().deleteById(2);
} catch (SQLException e) {
e.printStackTrace();
}
} public void testUpdateUser(){
DatabaseHelper helper=DatabaseHelper.getHelper(getContext());
User u1=new User("yanqiong-android", "developer");
u1.setId(3);
try {
helper.getUserDao().update(u1);
} catch (SQLException e) {
e.printStackTrace();
}
}
}

规范的写法请参考Android 数据库框架OrmLite的使用(二)

Android 数据库框架OrmLite的使用(一)的更多相关文章

  1. Android数据库框架——ORMLite轻量级的对象关系映射(ORM)Java包

    Android数据库框架--ORMLite轻量级的对象关系映射(ORM)Java包 事实上,我想写数据库的念头已经很久了,在之前写了一个答题系统的小项目那只是初步的带了一下数据库,数据库是比较强大的, ...

  2. Android 数据库框架ormlite

    Android 数据库框架ormlite 使用精要 前言 本篇博客记录一下笔者在实际开发中使用到的一个数据库框架,这个可以让我们快速实现数据库操作,避免频繁手写sql,提高我们的开发效率,减少出错的机 ...

  3. Android数据库框架-----ORMLite关联表的使用

    上一篇已经对ORMLite框架做了简单的介绍:Android数据库框架-----ORMLite 的基本用法~~本篇将介绍项目可能会使用到的一些用法,也为我们的使用ORMLite框架总结出一个较合理的用 ...

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

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

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

    前面说了OrmLite的基本使用,现在说下更规范的做法以及常用的一些功能. 1.DatabaseHelper package com.example.ormlite.db; import java.s ...

  6. Android数据库框架-ORMLite

    参考资料 Android ORMLite 框架的入门用法 Android 快速开发系列 ORMLite 框架最佳实践 添加依赖 compile 'com.j256.ormlite:ormlite-an ...

  7. Android数据库框架——GreenDao轻量级的对象关系映射框架,永久告别sqlite

    Android数据库框架--GreenDao轻量级的对象关系映射框架,永久告别sqlite 前不久,我在写了ORMLite这个框架的博文 Android数据库框架--ORMLite轻量级的对象关系映射 ...

  8. Android 数据库框架总结(转)

    转自 http://blog.csdn.net/da_caoyuan/article/details/61414626 一:OrmLite 简述: 优点: 1.轻量级:2.使用简单,易上手:3.封装完 ...

  9. Android 数据库框架总结,总有一个适合你!

    一:OrmLite 简述: 优点: 1.轻量级:2.使用简单,易上手:3.封装完善:4.文档全面.缺点:1.基于反射,效率较低(本人还没有觉得效率低):2.缺少中文翻译文档 jar包 地址:http: ...

随机推荐

  1. 05.DOM

    DOM基础 什么是DOM 标签元素节点浏览器支持情况  火狐支持最好 谷歌其次 ie最差 尤其是ie6-8DOM节点节点分为:元素节点和文本节点 测试节点的类型用nodeTypenodeType 为3 ...

  2. nodejs学习之events

    在node里许多对象都发出事件:一个net.Server对象每次一个连接到来,都发出一个事件,一个fs.readStream对象在文件打开时放出一个事件.所有能放出事件的对象都是event.Event ...

  3. WPF整理-使用ResourceDictionary管理Logical Resources

    “Logical resources may be of various types, such as brushes, geometries, styles, and templates.Placi ...

  4. 计数排序和桶排序(Java实现)

    目录 比较和非比较的区别 计数排序 计数排序适用数据范围 过程分析 桶排序 网络流传桶排序算法勘误 桶排序适用数据范围 过程分析 比较和非比较的区别 常见的快速排序.归并排序.堆排序.冒泡排序等属于比 ...

  5. Unity - 接入Android SDK

    在网络上,关于Unity与Android如何进行交互,雨松MOMO大神已经有两篇文章简单介绍了如何操作(1)Unity3D研究院之打开Activity与调用JAVA代码传递参数(2)Unity3D研究 ...

  6. jquery 选择元素

  7. 《HiWind企业快速开发框架实战》(3)使用HiWind创建和管理菜单

    <HiWind企业快速开发框架实战>(3)使用HiWind创建和管理菜单 关于HiWind HiWind企业快速开发框架,是基于.NET+EasyUi(支持各种前端扩展,后面将扩展Boot ...

  8. 再看Ajax

    再回顾Ajax相关的内容,再次梳理学习还是很有必要的,尤其是实际的开发中,ajax更是必不可少,仔细学习以便避免不必要的错误. 文章导读: --1.使用XMLHttpRequest---------- ...

  9. Sql Server数据库备份和恢复:原理篇

    本文与您探讨为什么Sql Server有完整备份.差异备份和事务日志备份三种备份方式,以及为什么数据库又有简单模式.完整模式和大容量日志模式这三种恢复模式.本文内容适用于2005以上所有版本的Sql ...

  10. 飞鱼(FlyFish)——便捷的原型在线制作工具

    关于项目原型制作,小菜先前写过一篇文章<FastUI快速界面原型制作工具>,只不过那个是用C#写的原型制作工具,但是感觉用C#写起来比较费力,而且也不太好用,经过高人指点,茅塞顿开,决定重 ...