使用ORMLite(框架)创建SQLite数据库
来源:互联网 发布:android 存储数据 编辑:程序博客网 时间:2024/06/05 05:46
在android中使用原始的SQLiteOpenHelper操作数据库显得过于繁琐,ORMLite可以快速有效地创建数据库
O: object 对象
R: relation 关系(关系型数据库)
M: mapping 映射(对象的名字对应了数据库的数据表,对象的属性对应了数据表中的列(字段))
步骤:
1)要先声明映射关系 –>使用注解
2)继承OrmLiteSqliteOpenHelper写一个DBHelper类
3)写一个DBUtil,利用DBHelper获得Ormlite提供的DAO对象进行数据的CRUD
step 1:UserBean.java
@DatabaseTablepublic class UserBean{ @DatabaseField private String objId; @DatabaseField private String avatar; @DatabaseField(id=true) private String name;//用户名 @DatabaseField(canBeNull=false) private String password;//密码 @DatabaseField(canBeNull=false) private boolean gender;//true 男、false 女 public String getAvatar() { return avatar; } public void setAvatar(String avatar) { this.avatar = avatar; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public boolean isGender() { return gender; } public void setGender(boolean gender) { this.gender = gender; } public String getObjId() { return objId; } public void setObjId(String objId) { this.objId = objId; }
- 首先在UserBean类上添加@DatabaseTable,标明这是一张数据表
接着在属性上添加@DatabaseField,标明这是数据表中的列
在属性的@DatabaseField后可以添加括号后缀
1)(id=true)–>设置为唯一键
2)(canBeNull=false)–>该列的内容不能为空
3)(generatedId = true)–>表示id为主键且自动生成
step 2 DBHelper.java
package com.example.bmobdemo.util;import java.sql.SQLException;import android.content.Context;import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQLiteDatabase.CursorFactory;import com.example.bmobdemo.bean.UserBean;import com.j256.ormlite.android.apptools.OrmLiteSqliteOpenHelper;import com.j256.ormlite.support.ConnectionSource;import com.j256.ormlite.table.TableUtils;public class DBHelper extends OrmLiteSqliteOpenHelper{ //利用单例的方式获取DBHelper对象 private static DBHelper dbhelper; public static DBHelper getInstance(Context context){ if(dbhelper==null){ synchronized (DBHelper.class) { if(dbhelper==null){ dbhelper = new DBHelper(context); } } } return dbhelper; }// private DBHelper(Context context, String databaseName,// CursorFactory factory, int databaseVersion) {// super(context, "user.db", null, 1);// } private DBHelper(Context context) { super(context, "user.db", null, 1); } @Override public void onCreate(SQLiteDatabase arg0, ConnectionSource arg1) {// String sql="" //有框架就不用这样写 //创建表 try { TableUtils.createTableIfNotExists(arg1, UserBean.class); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } @Override public void onUpgrade(SQLiteDatabase arg0, ConnectionSource arg1, int arg2, int arg3) { try { TableUtils.dropTable(arg1, UserBean.class, true);//删表 onCreate(arg0, arg1);//建表 } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } }}
OrmLiteSqliteOpenHelper类本身已继承了SQLiteOpenHelper,其实就是间接继承了SQLiteOpenHelper
这里要实现onCreate和onUpgrade方法,利用单例的方式获取DBHelper对象就不用经常new。
private DBHelper(Context context) { super(context, "user.db", null, 1); }
不单单可以在这里设置表名,也可以在UserBean类上的注解这样写:@DatabaseTable(tableName = “tb_user”)
step 3 DBUtil.java
package com.example.bmobdemo.util;import java.sql.SQLException;import java.util.List;import com.example.bmobdemo.bean.UserBean;import com.j256.ormlite.dao.Dao;import android.content.ContentValues;import android.content.Context;import android.database.sqlite.SQLiteDatabase;public class DBUtil { DBHelper dbhelper; private Dao<UserBean, String> dao; public DBUtil(Context context){ dbhelper = DBHelper.getInstance(context); try { dao = dbhelper.getDao(UserBean.class); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public void add(UserBean bean){ try { dao.create(bean); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public void remove(UserBean bean){ try { dao.delete(bean); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public List<UserBean> query(){ try { return dao.queryForAll(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace();// throw new RuntimeException("查询时产生异常"); return null;//throw和return随便选一个 } }}
0 0
- 使用ORMLite(框架)创建SQLite数据库
- 基于ormlite框架SQLite数据库的使用
- SQLite数据库框架ORMLite与GreenDao的简单比较
- SQLite数据库框架ORMLite与GreenDao的简单比较
- SQLite数据库框架ORMLite与GreenDao的简单比较
- SQLite数据库框架ORMLite与GreenDao的简单比较
- SQLite数据库框架ORMLite与GreenDao的简单比较
- android Sqlite数据库对象模型ORMLite框架学习
- SQLite数据库框架ORMLite与GreenDao的简单比较
- Android 数据库框架ormlite 使用精要
- Android 数据库框架ormlite 使用精要
- android 数据库操作使用ormlite框架1
- Android 数据库框架ormlite 使用精要
- OrmLite数据库框架的集成及使用
- ORMLite数据库框架的简单使用
- 在android中使用OrmLite数据库框架
- android数据库框架ormlite的使用
- Android ORMLite数据库框架使用入门
- 14.2.5.5 Change Buffer
- C#转换全角半角方法示例
- poj 7222 怀表问题(递推+空间压缩)
- 爱丽丝的发丝──《爱丽丝惊魂记:疯狂再临》制作点滴
- Mac 教程:告别 Dashboard,教你禁用 OS X 下的仪表盘教程
- 使用ORMLite(框架)创建SQLite数据库
- 音频处理中的尺度--Bark尺度与Mel尺度
- 苹果AppStore审核规则标准指南!
- Git 常用命令大全
- 二叉树的建立和遍历算法 --->树
- C# 十六进制转换ASCII
- 每天一个linux命令(17):whereis 命令
- Java 内存管理
- 很全的ABAP入门资料(待整理)