sqlite ORMLite 框架应用
bean
package com.test.deamo.bean; import android.os.Parcel;
import android.os.Parcelable; import com.j256.ormlite.field.DatabaseField;
import com.j256.ormlite.table.DatabaseTable; /**
* author: yhf
* Description:
* date: 2016/04/20 18:22
*/
@DatabaseTable(tableName = "tb_account")
public class Account implements Parcelable {
@DatabaseField(generatedId = true)
private int id;
@DatabaseField(columnName = "user_name")
private String userName;// 用户姓名
@DatabaseField(columnName = "password")
private String password;//密码
@DatabaseField(columnName = "token")
private String token;// token值 public int getId() {
return id;
} public void setId(int id) {
this.id = id;
} public String getUserName() {
return userName;
} public void setUserName(String userName) {
this.userName = userName;
} public String getPassword() {
return password;
} public void setPassword(String password) {
this.password = password;
} public String getToken() {
return token;
} public void setToken(String token) {
this.token = token;
} @Override
public int describeContents() {
return ;
} @Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeInt(this.id);
dest.writeString(this.userName);
dest.writeString(this.password);
dest.writeString(this.token);
} public Account() {
} protected Account(Parcel in) {
this.id = in.readInt();
this.userName = in.readString();
this.password = in.readString();
this.token = in.readString();
} public static final Creator<Account> CREATOR = new Creator<Account>() {
@Override
public Account createFromParcel(Parcel source) {
return new Account(source);
} @Override
public Account[] newArray(int size) {
return new Account[size];
}
};
}
DatabaseHelper
package com.test.deamo.utils.db; 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 com.test.deamo.bean.Account; import java.sql.SQLException;
import java.util.HashMap;
import java.util.Map; /**
* Created by administrator
* Description 数据库操作封装
* 2016/4/27 9:06.
*/
public class DatabaseHelper extends OrmLiteSqliteOpenHelper { private static final String TABLE_NAME = "test.db"; private Map<String, Dao> daos = new HashMap<String, Dao>(); private DatabaseHelper(Context context)
{
super(context, TABLE_NAME, null, );
} @Override
public void onCreate(SQLiteDatabase database,
ConnectionSource connectionSource)
{
try
{
TableUtils.createTable(connectionSource, Account.class);
} catch (SQLException e)
{
e.printStackTrace();
}
} @Override
public void onUpgrade(SQLiteDatabase database,
ConnectionSource connectionSource, int oldVersion, int newVersion)
{
try
{
TableUtils.dropTable(connectionSource, Account.class, true);
onCreate(database, connectionSource);
} catch (SQLException e)
{
e.printStackTrace();
}
} private static DatabaseHelper instance; /**
* 单例获取该Helper
*
* @param context
* @return
*/
public static synchronized DatabaseHelper getHelper(Context context)
{
context = context.getApplicationContext();
if (instance == null)
{
synchronized (DatabaseHelper.class)
{
if (instance == null)
instance = new DatabaseHelper(context);
}
} return instance;
} public synchronized Dao getDao(Class clazz) throws SQLException
{
Dao dao = null;
String className = clazz.getSimpleName(); if (daos.containsKey(className))
{
dao = daos.get(className);
}
if (dao == null)
{
dao = super.getDao(clazz);
daos.put(className, dao);
}
return dao;
} /**
* 释放资源
*/
@Override
public void close()
{
super.close(); for (String key : daos.keySet())
{
Dao dao = daos.get(key);
dao = null;
}
}
}
dao类
package com.test.deamo.dao; import android.content.Context; import com.j256.ormlite.dao.Dao;
import com.j256.ormlite.stmt.QueryBuilder;
import com.j256.ormlite.stmt.Where;
import com.test.deamo.bean.Account;
import com.test.deamo.utils.db.DatabaseHelper; import java.sql.SQLException; public class AccountDao {
private Context context;
private Dao<Account, Integer> accountDao;
private DatabaseHelper databaseHelper; public AccountDao(Context context) {
this.context = context;
try {
databaseHelper = DatabaseHelper.getHelper(this.context);
accountDao = databaseHelper.getDao(Account.class);
} catch (SQLException e) {
e.printStackTrace();
}
} /**
* 添加用户信息
* @param account
*/
public void add(Account account){
try {
accountDao.create(account);
} catch (SQLException e) {
e.printStackTrace();
}
} /**
* 更新用户信息
* @param account
*/
public void update(Account account){
try {
accountDao.update(account);
} catch (SQLException e) {
e.printStackTrace();
}
} /**
* 根据token获取account实体
* @param token
* @return Account account
*/
public Account getAccountWithToken(String token){
return getAccountWithFiled("token", token);
} /**
* 根据字段名和值获取账号实体
* @param fieldName
* @param fieldVal
* @return
*/
public Account getAccountWithFiled(String fieldName, String fieldVal){
Account account = null;
try {
QueryBuilder<Account, Integer> queryBuilder = accountDao.queryBuilder();
Where<Account, Integer> where = queryBuilder.where();
where.eq(fieldName, fieldVal);
account = where.queryForFirst();
} catch (SQLException e) {
e.printStackTrace();
}
return account;
}
}
sqlite ORMLite 框架应用的更多相关文章
- ORM数据库框架 SQLite ORMLite MD
Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...
- Android ORMLite 框架的入门用法
大家在Android项目中或多或少的都会使用数据库,为了提高我们的开发效率,当然少不了数据库ORM框架了,尤其是某些数据库操作特别频繁的app:本篇博客将详细介绍ORMLite的简易用法. 下面开始介 ...
- android数据库持久化框架, ormlite框架,
前言 Android中内置了SQLite,但是对于数据库操作这块,非常的麻烦.其实可以试用第3方的数据库持久化框架对之进行结构上调整, 摆脱了访问数据库操作的细节,不用再去写复杂的SQL语句.虽然这样 ...
- android端的ormlite框架
安卓端有很多优秀的数据库框架来操作sqlite,如ormlite框架,这个框架可以用来实现表到对象的解析和转化. 使用: 首先去官网下载两个jar包,core和android(如果在安卓端开发的话), ...
- FMDB是iOS平台的SQLite数据库框架
1.FMDB简介 什么是FMDBFMDB是iOS平台的SQLite数据库框架 FMDB以OC的方式封装了SQLite的C语言API 为什么使用FMDB使用起来更加面向对象,省去了很多麻烦.冗余的C语言 ...
- SQLite数据库框架--FMDB简单介绍
1.什么是FMDB FMDB是iOS平台的SQLite数据库框架 FMDB以OC的方式封装了SQLite的C语言API 2.FMDB的优点 使用起来更加面向对象,省去了很多麻烦.冗余的C语言代码 对比 ...
- SQLite数据库框架ORMLite与GreenDao的简单比较
笔记摘要:最近准备使用数据库做个缓存,以前因为项目中的实时性要求比较高,所以在整体的框架中就没有加缓存,有些地方只 是简单的将对象保存到了Preference中,所以并没有对数据库方面有所研究,既然准 ...
- Android—Ormlite框架简单的操作数据库
大家在Android项目中或多或少的都会使用数据库,为了提高我们的开发效率,当然少不了数据库ORM框架了,尤其是某些数据库操作特别频繁的app:本篇博客将详细介绍ORMLite的简易用法. 下面开始介 ...
- SQlite数据库框架:LitePal
常用的数据库框架Android的发展的速度是难以置信的,Android出来哪一年我还在小学上学很,还能很清楚的记得,那年一切,但是那个时候的我怎么可能也不会想到自己将来会要去做Android.Andr ...
随机推荐
- Python开发【第十五篇】:Web框架之Tornado
概述 Tornado 是 FriendFeed 使用的可扩展的非阻塞式 web 服务器及其相关工具的开源版本.这个 Web 框架看起来有些像web.py 或者 Google 的 webapp,不过为了 ...
- Struts2中ModelDriven的陷阱及其预防
页面表单 <form action="updateInput.action" method="post"> <input type=" ...
- JavaScriptSerializer中日期序列化问题
js请求的json数据返回前台的DateTime 类型被替换成了:\/Date(1404098342309)\/. 这个1404098342309数值,是1970年1月1日(DateTime的最小值) ...
- Redis3.0.7 cluster/集群 安装配置教程
1.前言 环境:CentOS-6.7-i386-LiveDVD 安装的CentOs系统 节点: 6个节点,3个主节点.3个从节点(由于redis默认需要3个主节点,如果想每个主节点有一个从节点,这是最 ...
- jQuery EasyUI API 中文文档 - ComboGrid 组合表格
jQuery EasyUI API 中文文档 - ComboGrid 组合表格,需要的朋友可以参考下. 扩展自 $.fn.combo.defaults 和 $.fn.datagrid.defaults ...
- PHP: 手把手编写自己的 MVC 框架实例教程
1 什么是MVC MVC模式(Model-View-Controller)是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model).视图(View)和控制器(Controller ...
- GOF业务场景的设计模式-----策略模式
定义:定义一组算法,将每个算法都封装起来,并且使他们之间可以互换. 策略模式代码实现 interface IStrategy { public void doSomething(); } class ...
- Unity3D 学习笔记
不是什么技术文章,纯粹是我个人学习是遇到一些觉得需要注意的要点,当成笔记. 1.关于调试,在Android下无法断点,Debug也无法查看,查看日志方法可以启动adb的log功能,或者自己写个GUI控 ...
- EF-联合查询-结果集-Group by-统计数目
EF框架用着痛并且快乐着··· 毕竟用习惯了SQL语句直接硬查的··· SELECT C0.ID,C_C.Name,C_C.C_COUNT FROM article_type C0 INNER JOI ...
- HDU 2007
/*杭电ACM ID:2007*/ #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> int main() { int in1, in2 ...