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配置或其他稍 ...
随机推荐
- hi.baidu.com 百度流量统计
在字幕侠的官网访问之后,发现 <meta name="baidu-site-verification" content="3uvZd9Aact" /> ...
- 选择使用Spring框架的原因(Spring框架为企业级开发带来的好处有哪些)
- mysql——jdbc驱动下载&连接mysql例子
mysql-connector-java-5.1.46.zip[解压后里面jar文件就是所需要的] https://dev.mysql.com/get/Downloads/Connector-J/my ...
- JMS-activeMq发布订阅模式
上一篇对点对点模式进行总结,这一篇都发布订阅模式进行总结,代码都差不多,唯一区别就是创建队(session.createQueue(目的地))列改为创建主题(session.createTopic(目 ...
- WebUploader 解决文件多次上传和删除上传文件的问题
文件多次上传有两种情况: 1. 上传前的多次选择 2. 上传成功后,再次选择 其实API上,已经有了介绍了,不知道为什么有同学还是不知道如何做,我来抛砖引玉吧. 配置项: duplicate {Boo ...
- 字符串拆分split
public static void main(String[] args) { String s = "A1B2C3D4E5F6G7H8"; String[] arr1 = s. ...
- 《Computational Statistics with Matlab》硬译2
T=; sigma=; thetamin=-;thetamax=; theta=zeros(,T); seed=;rand('state',seed);randn('state',seed); the ...
- 运行jar_测试代码
1.Eclipse 将 工程 导出成 jar Eclipse --> Export... --> 界面中树状图形中选择" Java下的'JAR file' "(不知道这 ...
- PHP服务器变量$_SERVER
常用的就几个,自己print_r($_SERVER); 看看. $_SERVER['PHP_SELF'] #当前正在执行脚本的文件名,与 document root相关. $_SERVER['argv ...
- 使用Mybatis时报错Cause: java.sql.SQLSyntaxErrorException: ORA-00911: 无效字符
首先保证sql语句在oracle中的编写是正确的,然后在配置文件中插入时就报这样的错误.有可能是因为sql语句后面多了“:”分号,在标签中写分号是错的.如果我写成了 insert into emplo ...