ORMLite的使用
首先需要下载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的使用的更多相关文章
- Android Ormlite 学习笔记1 -- 基础
Ormlite 是一个开源Java数据实体映射框架.其中依赖2个核心类库: 1.ormlite-android-4.48.jar 2.ormlite-core-4.48.jar 新建项目,引用上面2个 ...
- [翻译] ORMLite document -- How to Use Part (二)
前言 此文档翻译于第一次学习 ORMLite 框架,如果发现当中有什么不对的地方,请指正.若翻译与原文档出现任何的不相符,请以原文档为准.原则上建议学习原英文文档. ----------------- ...
- [翻译] ORMLite document -- How to Use Part (一)
前言 此文档翻译于第一次学习 ORMLite 框架,如果发现当中有什么不对的地方,请指正.若翻译与原文档出现任何的不相符,请以原文档为准.原则上建议学习原英文文档. ----------------- ...
- [翻译] ORMLite document -- Getting Started
前言 此文档翻译于第一次学习 ORMLite 框架,如果发现当中有什么不对的地方,请指正.若翻译与原文档出现任何的不相符,请以原文档为准.原则上建议学习原英文文档. ----------------- ...
- 测试EF6.1.3和OrmLite性能
公司原来用nhibernate,现在考虑要不要换一种ORM,于是找来了EF和ServiceStack.OrmLite.所以就产生了测试这三个性能的要求.对比三个ORM工具的性能,主要是对比ORM配置和 ...
- ormlite的使用方法
ormlite是什么? 简单来说,就是我们定义一个实体类,利用这个框架,它可以帮我们吧这个实体映射到我们的数据库中,在Android中是SQLite,数据中的字段就是我们定义实体的成员变量. 官网地址 ...
- Android 数据库框架OrmLite的使用(一)
在这里记录下最基本的用法,官网上可了解相关的介绍. 1.下载OrmLite jar 在下载android的:ormlite-android-4.48.jar和ormlite-core-4.48.jar ...
- Android 数据库框架OrmLite的使用(二)
前面说了OrmLite的基本使用,现在说下更规范的做法以及常用的一些功能. 1.DatabaseHelper package com.example.ormlite.db; import java.s ...
- Loogn.OrmLite映射优化记录
大家对ORM效率的争议多半在映射性能方面.自己的ORMLite也是如此,经过前段时间的折腾,已经找不出一个简单的方法再提升一下这部分的方法了.在此把优化涉及的几点记录一下. 注:用于性能测试的Code ...
- 谈谈我的入门级实体框架Loogn.OrmLite
每次看到有新的ORM的时候,我总会留意一下,因为自己也写过一个这样的框架,人总是有比较之心的.我可能会down下来跑一跑,也可能不会这么做,这个取决于跑起来的难易程度.我是很懒的,有XML配置或其他稍 ...
随机推荐
- MySql判断汉字、日期、数字的具体函数
几个平常用的mysql函数,MySql判断汉字.日期.数字的具体函数分享给大家,具体内容如下 1.判断字符串是否为汉字 返回值:1-汉字 0-非汉字 ? 1 2 3 4 5 6 7 8 9 10 11 ...
- .NET Framework(CLI,CLS,CTS,CLR,FCL,BCL)
最下层蓝色部分是.NET Framework的基础,也是所有应用软件的基础..NET Framework不是凭空出来的,实际上API,COM+,和一些相关驱动依然是它的基石..NET Framewor ...
- 3.scala容器
3.scala容器 a:focus { outline: thin dotted #333; outline: 5px auto -webkit-focus-ring-color; outline-o ...
- virtualbox ubuntu下ssh连接
一.首先Ubuntu中安装ssh服务器 Ubuntu 下安装 OpenSSH Server 是无比轻松的一件事情,需要的命令只有一条: sudo apt-get install openssh-ser ...
- scala学习手记28 - Execute Around模式
我们访问资源需要关注对资源的锁定.对资源的申请和释放,还有考虑可能遇到的各种异常.这些事项本身与代码的逻辑操作无关,但我们不能遗漏.也就是说进入方法时获取资源,退出方法时释放资源.这种处理就进入了Ex ...
- BZOJ 4726 [POI2017]Sabota?:树形dp
传送门 题意 某个公司有 $ n $ 个人,上下级关系构成了一个有根树.其中有个人是叛徒(这个人不知道是谁).对于一个人, 如果他下属(直接或者间接, 不包括他自己)中叛徒占的比例超过 $ x $ , ...
- [JavaScript]对象创建方法
1.使用Object或对象字面量创建对象 (1)使用Object创建对象 var cat= new Object(); cat.name = "Tom"; cat.color= & ...
- PHP中的定界符
因为PHP是一个Web编程语言,在编程过程中难免会遇到用echo来输出大段的html和javascript脚本的情况,如果用传统的输出方法——按字符串输出的话,肯定要有大量的转义符来对字符串中的引号等 ...
- 31-THREE.JS 正方体
<!DOCTYPE html> <html> <head> <title>Example 05.04 - Basic 2D geometries - C ...
- 009——VUE中watch监听属性变化实现类百度搜索栏功能
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...