android中OrmLite数据库编程实例讲解
来源:互联网 发布:jdk windows x64 下载 编辑:程序博客网 时间:2024/05/29 05:08
在android中,使用OrmLite可以快速的进行数据库开发,废话不说,直接上代码。
一 、 编写DatabaseHelper,需要继承OrmLiteSqliteOpenHelper类
package com.xxx.dbimport java.util.HashMap;import java.util.Map;import java.sql.SQLException; 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;public class DatabaseHelper extends OrmLiteSqliteOpenHelper {private static final String DATABASE_NAME = "videointercom.db";private static final int DATABASE_VERSION = 3;private Map<String, Dao> daos = new HashMap<String, Dao>();private static DatabaseHelper instance;/** * userDao ,每张表对于一个 */// private Dao<user, integer=""> userDao;private DatabaseHelper(Context context) {super(context, DATABASE_NAME, null, DATABASE_VERSION);}@Overridepublic void onCreate(SQLiteDatabase database,ConnectionSource connectionSource) {try {TableUtils.createTable(connectionSource, TableCallRecord.class);TableUtils.createTable(connectionSource, TableIptable.class);TableUtils.createTable(connectionSource, TableVillaParameter.class);} catch (SQLException e) {e.printStackTrace();}}@Overridepublic void onUpgrade(SQLiteDatabase database,ConnectionSource connectionSource, int oldVersion, int newVersion) {try { TableUtils.dropTable(connectionSource, TableCallRecord.class, true); TableUtils.dropTable(connectionSource, TableIptable.class, true); TableUtils.dropTable(connectionSource, TableVillaParameter.class, true); onCreate(database, connectionSource); } catch (SQLException e) { e.printStackTrace(); } }/** * 单例获取该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) {try {dao = super.getDao(clazz);} catch (java.sql.SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}daos.put(className, dao);}return dao;}/** * 释放资源 */@Overridepublic void close() {super.close();for (String key : daos.keySet()) {Dao dao = daos.get(key);dao = null;}}}
TableUtils.createTable为创建数据库表,在onCreate中进行。TableUtils.dropTable为更新数据库表,在onUpgrade中进行。
二 、数据库表的定义
package com.xxx.db;import com.j256.ormlite.field.DatabaseField;import com.j256.ormlite.table.DatabaseTable;@DatabaseTable(tableName="T_IpTable") public class TableIptable {@DatabaseField(generatedId=true)public int id;@DatabaseFieldpublic String ip;@DatabaseFieldpublic String addr;public TableIptable(){}public TableIptable(String ip,String addr){this.ip = ip;this.addr = addr;}public int getId() {return id;}public void setId(int id) {this.id = id;}public String getIp() {return ip;}public void setIp(String ip) {this.ip = ip;}public String getAddr() {return addr;}public void setAddr(String addr) {this.addr = addr;}}
三、 编写Dao类
package com.xxx.db;import java.sql.SQLException;import java.util.List;import android.content.Context;import com.j256.ormlite.dao.Dao;public class TableIptableDao {private Dao<TableIptable, Integer> iptableDao;private DatabaseHelper helper;@SuppressWarnings("unchecked")public TableIptableDao(Context context) {try {helper = DatabaseHelper.getHelper(context);iptableDao = helper.getDao(TableIptable.class);} catch (SQLException e) {e.printStackTrace();}} //添加一个TableCallRecordpublic void add(TableIptable iptable) {try {iptableDao.create(iptable);} catch (SQLException e) {e.printStackTrace();}}//通过ID获得一个TableCallRecord public TableIptable get(int id) { TableIptable iptable = null; try { iptable = iptableDao.queryForId(id); } catch (SQLException e) { e.printStackTrace(); } return iptable; } //通过ID获得全部的TableCallRecord public List<TableIptable> listByUserId(int userId) { try { return iptableDao.queryBuilder().where().eq("user_id", userId).query(); } catch (SQLException e){ e.printStackTrace(); } return null; } //查询TableCallRecord的所有记录 public List<TableIptable> queryAll(){ List<TableIptable> all = null; try { all = iptableDao.queryForAll(); } catch (SQLException e) { e.printStackTrace(); } return all; } //通过ID删除一条TableCallRecord public void delete(int id){ try { iptableDao.delete(iptableDao.queryForId(id));} catch (SQLException e) {e.printStackTrace();} } //删除所有记录 public void deleteAll(){ try { iptableDao.delete(queryAll()); } catch (SQLException e) {e.printStackTrace();} } public void update(TableIptable iptable){ try {iptableDao.update(iptable);} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();} } }
0 0
- android中OrmLite数据库编程实例讲解
- 在android中使用OrmLite数据库框架
- Android中OrmLite数据库使用总结
- Android中OrmLite数据库的使用
- Android数据库ORMlite框架
- android Ormlite数据库更新
- Android ORMLite数据库简介
- Android数据库使用(ORMLite)
- Android数据库ORMlite框架
- Android ORMLite数据库简介
- Android 数据库框架ormlite
- Android 数据库ORMLite用法
- Android数据库框架ORMLite
- Android ORMLite数据库详解
- Android中使用ormlite
- Android数据库开发之ORMLite
- Android 使用ORMLite 操作数据库
- Android 使用ORMLite 操作数据库
- Android计时器TimerTask,Timer,Handler
- 基于Gabor滤波的纹理分割 Texture Segmentation Using Gabor Filters
- 为什么说fb_info->node 是设备的次设备号
- (转)onTouchEvent方法的使用
- 简单springmvc实现
- android中OrmLite数据库编程实例讲解
- 带有×的EditText
- Maven以及其Eclipse插件m2eclipse的安装
- FZU 2214 Knapsack problem
- C++最佳编程实践
- linux系统kill和启动tomcat
- Android Material Design:基于CoordinatorLayout实现向上滚动导航条ToolBar滚出、向下滚动导航条滚出
- xmpp的简单使用
- RecyclerView的基本创建