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的使用就介紹到這里,希望對大家能有所幫助!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM