zoukankan      html  css  js  c++  java
  • OrmLite数据库的使用方法

    第一步:导入架包
        1、将orm的两个支持包放入project视图下的你的工程的lib目录里(这两个JAR包网上都有,GitHub上最新)
        2、添加依赖:在file文件目录下的project structure里选择你的APP,选择depedence目录
    点击加号选择第二个library depedence选择lib目录下点击选择添加依赖
        3、导入JAR包成功后两个jar文件是可以点开的,这就表明添加成功
     
     
    第二步:使用ormList创建数据库;
        1、首先要生成一个存放你各种属性的一个属性类,在类的开始添加注解
            表明这是一张表,名字叫做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 }
        3、创建好属性类以及创建好了数据库之后,就要根据属性类来专门写一个针对于此属性类的一个数据库操作对象了,
    大家一定要记住,在使用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<CardImg> images){
    44 for (CardImg img:images){
    45             addCardImg(img);
    46         }
    47     }
    48 /**
    49      * 查询表中所有属性
    50 * @return  表的集合
    51 */
    52 public List<CardImg> 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<CardImg> images){
    79 for (CardImg img:images){
    80             delete(img);
    81         }
    82     }
    83 }
        4、至此使用orm创建数据库的方法基本上算是圆满成功了,在实体类中需要调用的时候只需要把数据库操作对象即你写的
    那个dao给new出来即可通过数据库操作对象来对数据库中的这张表单实现增删改查等一系列的操作了。
     
    关于ormlite的使用就介绍到这里,希望对大家能有所帮助!
  • 相关阅读:
    双边沿采样
    `ifdef、`else、`endif 用法
    交通信号灯
    异步复位同步释放
    用Verilog来实现d触发器2分频的Verilog hdl程序
    谈谈Mux与门电路的相互替换(包含实例分析)
    数字电路笔试题
    仰视奶牛
    单调栈
    div2 620 C
  • 原文地址:https://www.cnblogs.com/zhangdiIT/p/5829581.html
Copyright © 2011-2022 走看看