ORMLite使用

ORMLite

先去 ORMLite官网下载jar包 写博客时,目前最新的,对于Android为:ormlite-android-5.0.jar 和 ormlite-core-5.0.jar ;

首先要生成一个存放你各种属性的一个属性类,在类的开始添加注解
表明这是一张表,名字叫做cardImg
然后每条属性都应添加注解,表明是表单中的每一列
到这里属性类就算完美的建成了,次数省略了每条属性的get与set方法以及有参和无参构造方法
2、然后就要创建数据库了,这里与基本的SQList数据库的创建方法也没有什么大样

1 public class DataBaseHelper extends OrmLiteSqliteOpenHelper {
2 private static final String DB_NAME=“biying.db”;
3 private static final int DB_VERSON=1;
4 private DataBaseHelper(Context mContext){
5 super(mContext,DB_NAME,null,DB_VERSON);
6 }
7 /**
8 * 基本单例模式:
9 * 1、先把构造函数私有化
10 * 2、对外提供一个静态方法
11 * 3、在方法中判断如果已经存在就不再创建,如果不存在再创建
12 * 这样保证永远只有一个DataBaseHelper对象
13 * 4、为了线程安全,需要在方法前提供一个线程安全关键字synchronized
14 * 如果一个调用时,另一个就不允许调用
15 */
16 private static DataBaseHelper dataBaseHelper;
17 public synchronized static DataBaseHelper getInstance(Context mContext){
18 if (dataBaseHelper == null) {
19 dataBaseHelper = new DataBaseHelper(mContext);
20 }
21 return dataBaseHelper;
22 }
23
24 @Override
25 public void onCreate(SQLiteDatabase sqLiteDatabase, ConnectionSource connectionSource) {
26 //创建表
27 try {
28 //CardImg
29 TableUtils.createTableIfNotExists(connectionSource, CardImg.class);
30
31 } catch (SQLException e) {
32 e.printStackTrace();
33 }
34 }
35
36 @Override
37 public void onUpgrade(SQLiteDatabase sqLiteDatabase, ConnectionSource connectionSource, int i, int i1) {
38 //删除表
39 try {
40 TableUtils.dropTable(connectionSource,CardImg.class,true);
41 } catch (SQLException e) {
42 e.printStackTrace();
43 }
44 }
45
46 }

创建好属性类以及创建好了数据库之后,就要根据属性类来专门写一个针对于此属性类的一个数据库操作对象了,
大家一定要记住,在使用orm的时候最好就是一个表单对应一个数据库操作对象,这样方便操作也不会混淆,这里就只附上代码,大家自己领悟。
1 package com.jereh.biyingapplication.dao;
2
3 import android.content.Context;
4
5 import com.j256.ormlite.dao.Dao;
6 import com.j256.ormlite.stmt.DeleteBuilder;
7 import com.jereh.biyingapplication.db.DataBaseHelper;
8 import com.jereh.biyingapplication.entity.CardImg;
9 import com.jereh.biyingapplication.entity.Images;
10
11 import java.sql.SQLException;
12 import java.util.List;
13
14 /**
15 * Created by zhangdi on 2016/8/31.
16 /
17 public class CardImgDao {
18 private Dao<CardImg,Integer> cardImgDao;
19 public CardImgDao(Context mContext){
20 DataBaseHelper dataBaseHelper = DataBaseHelper.getInstance(mContext);
21 try {
22 cardImgDao = dataBaseHelper.getDao(CardImg.class);
23 } catch (SQLException e) {
24 e.printStackTrace();
25 }
26 }
27
28 /
*
29 * 添加一条数据,一个对象
30 * @param cardImg
31 * @return
32 /
33 public long addCardImg(CardImg cardImg){
34 int id =0;
35 try {
36 id = cardImgDao.create(cardImg);
37 } catch (SQLException e) {
38 e.printStackTrace();
39 }
40 return id;
41 }
42
43 public void addAll(List images){
44 for (CardImg img:images){
45 addCardImg(img);
46 }
47 }
48 /
*
49 * 查询表中所有属性
50 * @return 表的集合
51 /
52 public List findAll(){
53 try {
54 return cardImgDao.queryForAll();
55 } catch (SQLException e) {
56 e.printStackTrace();
57 }
58 return null;
59 }
60 /
*
61 * 根据对象删除某条数据
62 * @param cardImg
63 /
64 public void delete(CardImg cardImg){
65 DeleteBuilder deleteBuilder = cardImgDao.deleteBuilder();
66 try {
67 deleteBuilder.where().eq(“img”,cardImg.getImg());
68 deleteBuilder.delete();
69 } catch (SQLException e) {
70 e.printStackTrace();
71 }
72 }
73
74 /
*
75 * 删除所有数据
76 * @param images
77 */
78 public void removeAll(List images){
79 for (CardImg img:images){
80 delete(img);
81 }
82 }
83 }

至此使用orm创建数据库的方法基本上算是圆满成功了,在实体类中需要调用的时候只需要把数据库操作对象即你写的
那个dao给new出来即可通过数据库操作对象来对数据库中的这张表单实现增删改查等一系列的操作了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值