首先需要下载core和android两个jar

http://ormlite.com/releases/

然后拷贝到libs文件夹下并且添加为库

具体的使用看标程:

School.java

 package com.turtle920.ormlitedemo;

 import com.j256.ormlite.field.DatabaseField;
import com.j256.ormlite.table.DatabaseTable; @DatabaseTable(tableName = "school")
public class School { @DatabaseField(generatedId=true)
private int id; @DatabaseField(columnName = "name")
private String name; @DatabaseField
private String location; 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 getLocation() {
return location;
} public void setLocation(String location) {
this.location = location;
}
}

以上通过注释符来用框架反射table和field,(generatedId=true)表示自增长

DBHelper.java

 package com.turtle920.ormlitedemo;

 import android.content.Context;
import android.database.sqlite.SQLiteDatabase; 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; import java.sql.SQLException; public class DBHelper extends OrmLiteSqliteOpenHelper { private final static int DATABASE_VERSION = 1;
Dao<School, Integer> mSchoolDao;
private static final String DB_NAME = "orm";
private static DBHelper mDbHelper; private DBHelper(Context context) {
super(context, DB_NAME, null, DATABASE_VERSION);
} public static DBHelper getInstance(Context context) {
if (mDbHelper == null) {
mDbHelper = new DBHelper(context);
}
return mDbHelper;
} @Override
public void onCreate(SQLiteDatabase arg0, ConnectionSource arg1) {
try {
TableUtils.createTableIfNotExists(connectionSource, School.class);
} catch (SQLException e) {
e.printStackTrace();
}
} @Override
public void onUpgrade(SQLiteDatabase arg0, ConnectionSource arg1, int arg2,
int arg3) {
} public Dao<School, Integer> getSchoolDao() throws SQLException {
if (mSchoolDao == null) {
mSchoolDao = getDao(School.class);
}
return mSchoolDao;
} }

这个类继承自OrmLiteSqliteOpenHelper.class继承自SqliteOpenHelper.class,相当于是增强版的

MainActivity.java

 package com.turtle920.ormlitedemo;

 import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log; import com.j256.ormlite.dao.Dao; import java.sql.SQLException;
import java.util.List; public class MainActivity extends AppCompatActivity { private static final String TAG = "DaoDaoDao";
DBHelper mDbHelper;
Dao<School, Integer> mSchoolDao; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mDbHelper = DBHelper.getInstance(this);
try {
mSchoolDao = mDbHelper.getSchoolDao();
} catch (SQLException e) {
Log.e(TAG, "constructor exception", e);
}
testDao();
} private void testDao() { School school1 = new School();
school1.setName("university");
school1.setLocation("shanghai"); School school2 = new School();
school2.setName("middle school");
school2.setLocation("hubei"); School school3 = new School();
school3.setName("CDQZ");
school3.setLocation("CHENGDU"); try {
mSchoolDao.create(school1);
mSchoolDao.create(school2);
mSchoolDao.create(school3);
//获取表中所有的student。
Log.e(TAG,"************BEGIN*************");
List<School> schools=mSchoolDao.queryForAll();
Log.e(TAG, "before delete school1 size is:" + schools.size());
for (int i = 0; i < schools.size(); i++) {
Log.e(TAG, schools.get(i).getId()+" "+schools.get(i).getName()+" "+schools.get(i).getLocation());
}
mSchoolDao.delete(school1); //schools=mSchoolDao.queryForAll();
schools=mSchoolDao.queryForEq("id","3");
Log.e(TAG, "after delete school1 list size is:"+schools.size());
for (int i = 0; i < schools.size(); i++) {
Log.e(TAG, schools.get(i).getId()+" "+schools.get(i).getName()+" "+schools.get(i).getLocation());
} } catch (SQLException e) {
e.printStackTrace();
}
} }

其中一些操作:

 .queryForEq("id","3");//查询“id”=“3”的
.queryForAll();//所有
.delete(school1);//删除
.deleteById(int id);//按id删
.update(school);//更新
.create(school);//插入

可以看到对数据库的访问被投影成了对对象的操作,相比直接用android给的api操作数据库要短平快的多。

 

ORMLite的使用的更多相关文章

  1. Android Ormlite 学习笔记1 -- 基础

    Ormlite 是一个开源Java数据实体映射框架.其中依赖2个核心类库: 1.ormlite-android-4.48.jar 2.ormlite-core-4.48.jar 新建项目,引用上面2个 ...

  2. [翻译] ORMLite document -- How to Use Part (二)

    前言 此文档翻译于第一次学习 ORMLite 框架,如果发现当中有什么不对的地方,请指正.若翻译与原文档出现任何的不相符,请以原文档为准.原则上建议学习原英文文档. ----------------- ...

  3. [翻译] ORMLite document -- How to Use Part (一)

    前言 此文档翻译于第一次学习 ORMLite 框架,如果发现当中有什么不对的地方,请指正.若翻译与原文档出现任何的不相符,请以原文档为准.原则上建议学习原英文文档. ----------------- ...

  4. [翻译] ORMLite document -- Getting Started

    前言 此文档翻译于第一次学习 ORMLite 框架,如果发现当中有什么不对的地方,请指正.若翻译与原文档出现任何的不相符,请以原文档为准.原则上建议学习原英文文档. ----------------- ...

  5. 测试EF6.1.3和OrmLite性能

    公司原来用nhibernate,现在考虑要不要换一种ORM,于是找来了EF和ServiceStack.OrmLite.所以就产生了测试这三个性能的要求.对比三个ORM工具的性能,主要是对比ORM配置和 ...

  6. ormlite的使用方法

    ormlite是什么? 简单来说,就是我们定义一个实体类,利用这个框架,它可以帮我们吧这个实体映射到我们的数据库中,在Android中是SQLite,数据中的字段就是我们定义实体的成员变量. 官网地址 ...

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

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

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

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

  9. Loogn.OrmLite映射优化记录

    大家对ORM效率的争议多半在映射性能方面.自己的ORMLite也是如此,经过前段时间的折腾,已经找不出一个简单的方法再提升一下这部分的方法了.在此把优化涉及的几点记录一下. 注:用于性能测试的Code ...

  10. 谈谈我的入门级实体框架Loogn.OrmLite

    每次看到有新的ORM的时候,我总会留意一下,因为自己也写过一个这样的框架,人总是有比较之心的.我可能会down下来跑一跑,也可能不会这么做,这个取决于跑起来的难易程度.我是很懒的,有XML配置或其他稍 ...

随机推荐

  1. Sharding-Jdbc实现分表分库

    Sharding-Jdbc分表分库LogicTable数据分片的逻辑表,对于水平拆分的数据库(表),同一类表的总称.订单信息表拆分为2张表,分别是t_order_0.t_order_1,他们的逻辑表名 ...

  2. Hive-开启动态分区

    开启动态分区 --开启动态分区 set hive.exec.dynamic.partition=true; set hive.exec.dynamic.partition.mode=nonstrict ...

  3. matplotlib之散点图

    环境:windows系统,anaconda3 64位,python 3.6 1.初认识 基本代码如下: import numpy as np import matplotlib.pyplot as p ...

  4. MongoDB在linux下的启动

    最近公司数据库用到MongoDB,而之前只关注知道它是分布式非关系数据库,数据以文档的形式存储,数据格式是类似json的bson格式.而对于具体用法以及java如何调用并没有过多接触,今天花费一天的时 ...

  5. 临时开启Chrome 67拖放crx安装扩展方法

    打开Chrome的设置: chrome://flags/#extensions-on-chrome-urls 更改为enabled,应用后重起浏览器,就可以往 chrome://extensions ...

  6. zzuli 2179 最短路

    2179: 紧急营救 Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 89  Solved: 9 SubmitStatusWeb Board Descri ...

  7. 【scala】迭代器

    如何访问集合呢?我们首先想到的是使用for循环来访问,还有一种方法是通过迭代器来访问. 在Scala中,迭代器(Iterator)不是一个集合,但是,提供了访问集合的一种方法. 迭代器包含两个基本的操 ...

  8. C# List 排序

    (转自:http://www.cnblogs.com/bradwarden/archive/2012/06/19/2554854.html) 第一种:实体类实现IComparable接口,而且必须实现 ...

  9. 【MAF】MAF插件框架简介

    引言    Managed Add-In Framework是一个插件式框架.它有两大作用,一个是解耦,插件和宿主由7个管道组成,两边都有适配器Adapter管道,能最大程度地降低插件和宿主的耦合度: ...

  10. Node大文件处理

    之前有个需求要将文件解析再处理,当时直接将整个文件内容读到内存中然后解析,也是没有考虑到大文件的问题,那么要如何解析大文件呢? 输入:文件的内容是多个json,按顺序排列 输出:解析后的json数据 ...