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 ...
随机推荐
- java语言一维数组,对象数组
/** * 对象数组的使用 */package com.test5; import java.io.BufferedReader;import java.io.InputStream;import j ...
- Samus驱动中的Document条件
今天要说一个东西就是Samus驱动里的 Document 和他的一个子类 Op 在Samus驱动的增删改查方法中都有这类的参数传递.. 大致的使用方法是这样.. MongoU.Find<Per ...
- python 占位符 %s Format
1.百分号方式 %[(name)][flags][width].[precision]typecode (name) 可选,用于选择指定的key flags 可选,可供选择 ...
- min-device-pixel-ratio
Devices with -webkit-min-device-pixel-ratio: 2.0 All Macs with Retina displaysApple iPhone 4Apple iP ...
- 2015年12月01日 GitHub入门学习(三)GitHub创建仓库
序:创建自己的GITHub账号,并创建自己第一个仓库,尝试通过msysgit客户端,往仓库提交文件. 一.创建GitHub账户 链接地址:https://github.com/join,很简单,自己创 ...
- 阿里云Centos配置iptables防火墙
虽说阿里云推出了云盾服务,但是自己再加一层防火墙总归是更安全些,下面是我在阿里云vps上配置防火墙的过程,目前只配置INPUT.OUTPUT和FORWORD都是ACCEPT的规则 一.检查iptabl ...
- activiti数据库表结构全貌解析
http://www.jianshu.com/p/e6971e8a8dad 下面本人介绍一些activiti这款开源流程设计引擎的数据库表结构,首先阐述:我们刚开始接触或者使用一个新的东西(技术)时我 ...
- PHP基础之 继承(一)
========================================= * 继承 extends *============================ ...
- bootstrap搜索框样式代码及效果
<div class="container"> <div class="input-group"> <input type=&qu ...
- JS快速获取图片宽高的方法
快速获取图片的宽高其实是为了预先做好排版样式布局做准备,通过快速获取图片宽高的方法比onload方法要节省很多时间,甚至一分钟以上都有可能,并且这种方法适用主流浏览器包括IE低版本浏览器. 我们一步一 ...