成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

鴻蒙HarmonyOS三方件開發指南(6)-ActiveOhos_sqlite組件

開發 OpenHarmony
文章由鴻蒙社區產出,想要了解更多內容請前往:51CTO和華為官方戰略合作共建的鴻蒙技術社區https://harmonyos.51cto.com/#zz

[[377874]]

想了解更多內容,請訪問:

51CTO和華為官方合作共建的鴻蒙技術社區

https://harmonyos.51cto.com/#zz

1. ActiveOhos功能介紹

1.1. 組件介紹

基于HarmonyOS據庫進行sqlite數據庫操作,創建連接時比較繁瑣,本組件簡化了sqlite數據庫的連接,并且對HarmonyOS原生的API進行封裝加強,使sqlite數據庫的讀寫更加方便。

1.2. 手機模擬器上運行效果

[[377875]]

插入數據成功


2. ActiveOhos使用方法

2.1. 為應用添加sqlitelibrary-debug.har包依賴

在應用模塊中調用HAR,常用的添加依賴為:依賴本地HAR

第一步:將sqlitelibrary-debug.har復制到entry\libs目錄下即可(由于build.gradle中已經依賴的libs目錄下的*.har,因此不需要再做修改)。

查看工程目錄中build.gradle下的*.har是否存在


第二步:除了依賴har之外還需要添加外部依賴用來實現類的引入,引入方式如下,引入完之后同步即可使用。

如果使用注解處理器的模塊為“com.huawei.ohos.hap”,則需要在模塊 “build.gradle”文件的“ohos”節點中添加以下配置:

  1. compileOptions{  
  2.  
  3.   annotationEnabled true 
  4.  

 如果使用注解處理器的模塊為“com.huawei.ohos.library”,則需要在模塊“build.gradle”文件的“dependencies”節點中配置注解處理器。查看“orm_annotations_java.jar”、“orm_annotations_processor_java.jar” 、“javapoet_java.jar” 3個jar包在HUAWEI SDK中的對應目錄,并將這三個jar包導入項目中。

  1. dependencies {    compile files("orm_annotations_java.jar的路徑 
  2. ","orm_annotations_processor_java.jar的路徑","javapoet_java.jar的路徑")    
  3.  annotationProcessor files("orm_annotations_java.jar的路徑 
  4. ","orm_annotations_processor_java.jar的路徑","javapoet_java.jar的路徑")} 

 如果使用注解處理器的模塊為“java-library”,則需要在模塊 “build.gradle”文件的“dependencies”節點中配置注解處理器,并導入“ohos.jar”。

  1. dependencies {    compile files("ohos.jar的路徑","orm_annotations_java.jar的路徑 
  2. ","orm_annotations_processor_java.jar的路徑","javapoet_java.jar的路徑")          
  3. annotationProcessor files("orm_annotations_java.jar的路徑 
  4. ","orm_annotations_processor_java.jar的路徑","javapoet_java.jar的路徑")} 

 比如:


以上操作無誤 之后就可以進行編碼了!

3. ActiveOhos開發實現

3.1. 主頁面的布局文件

定義四個按鈕分別實現增刪改查,定義四個Button實現請求點擊事件

  1. <?xml version="1.0" encoding="utf-8"?> 
  2. <DirectionalLayout 
  3.     xmlns:ohos="http://schemas.huawei.com/res/ohos" 
  4.     ohos:height="match_parent" 
  5.     ohos:width="match_parent" 
  6.     ohos:orientation="vertical"
  7.  
  8.     <Button 
  9.         ohos:id="$+id:btn_insert" 
  10.         ohos:height="match_content" 
  11.         ohos:width="80fp" 
  12.         ohos:text_color="red" 
  13.         ohos:text="插入" 
  14.         ohos:text_size="20fp" 
  15.         ohos:weight="100fp"/> 
  16.  
  17.     <Button 
  18.         ohos:id="$+id:btn_query" 
  19.         ohos:height="match_content" 
  20.         ohos:width="100fp" 
  21.         ohos:text_color="blue" 
  22.         ohos:text="查詢" 
  23.         ohos:text_size="20fp" 
  24.         ohos:weight="100fp"/> 
  25.  
  26.     <Button 
  27.         ohos:id="$+id:btn_update" 
  28.         ohos:height="match_content" 
  29.         ohos:width="100fp" 
  30.         ohos:text_color="green" 
  31.         ohos:text="更新" 
  32.         ohos:text_size="20fp" 
  33.         ohos:weight="100fp"/> 
  34.  
  35.     <Button 
  36.         ohos:id="$+id:btn_delete" 
  37.         ohos:height="match_content" 
  38.         ohos:width="100fp" 
  39.         ohos:text_color="black" 
  40.         ohos:text="刪除" 
  41.         ohos:text_size="20fp" 
  42.         ohos:weight="100fp"/> 
  43.  
  44.     <ListContainer 
  45.         ohos:id="$+id:listText" 
  46.         ohos:height="match_parent" 
  47.         ohos:width="match_parent"/> 
  48.  
  49. </DirectionalLayout> 
  50.  
  51.  
  52.  
  53.         ohos:width="match_content" 
  54.  
  55.         ohos:background_element="$graphic:background_ability_main" 
  56.  
  57.         ohos:layout_alignment="horizontal_center" 
  58.  
  59.         ohos:text="get請求" 
  60.  
  61.         ohos:text_size="50" 
  62.  
  63.         ohos:top_margin="80vp" 
  64.  
  65.         /> 
  66.  
  67.  
  68.  
  69. </DirectionalLayout> 

 3.2. 例子代碼如下

組件中有兩種連接數據的方式,分別是OrmContext,RdbStore ,其中使用OrmContext連接方式時,需要定義一個實體類(User)來和數據庫對應表名及字段,一個數據庫類 BookStore 來配合開發,代碼如下:

  1. MainAbilitySlice 
  2.  
  3. import com.example.myapplication.BookStore; 
  4. import com.example.myapplication.ResourceTable; 
  5. import com.example.myapplication.User
  6. import com.example.sqlitelibrary.DBManage; 
  7. import com.example.sqlitelibrary.DBOrmContext; 
  8. import com.example.sqlitelibrary.utils.Log; 
  9. import ohos.aafwk.ability.AbilitySlice; 
  10. import ohos.aafwk.content.Intent; 
  11. import ohos.agp.components.Button; 
  12. import ohos.agp.components.Component; 
  13. import ohos.data.DatabaseHelper; 
  14. import ohos.data.orm.OrmContext; 
  15. import ohos.data.orm.OrmPredicates; 
  16. import ohos.data.rdb.RdbStore; 
  17. import ohos.data.rdb.ValuesBucket; 
  18.  
  19. import java.util.ArrayList; 
  20. import java.util.List; 
  21.  
  22. public class MainAbilitySlice extends AbilitySlice implements Component.ClickedListener { 
  23.      
  24.     private DatabaseHelper helper; 
  25.     private RdbStore store; 
  26.     private  OrmContext context; 
  27.     @Override 
  28.     public void onStart(Intent intent) { 
  29.         super.onStart(intent); 
  30.         super.setUIContent(ResourceTable.Layout_ability_main); 
  31.         helper = new DatabaseHelper(this); 
  32.         DBManage dbManger = new DBManage("user.db","user"); 
  33.         context = dbManger.getConnectionContext(helper, BookStore.class); 
  34. //         DBManage dbManger = new DBManage("user.db"); 
  35. //         store = dbManger.getConnectionStore(helper,"user"); 
  36.         Button btnInsert = (Button) findComponentById(ResourceTable.Id_btn_insert); 
  37.         Button btnQuery = (Button) findComponentById(ResourceTable.Id_btn_query); 
  38.         Button btnDelete = (Button) findComponentById(ResourceTable.Id_btn_delete); 
  39.         Button btnUpdate = (Button) findComponentById(ResourceTable.Id_btn_update); 
  40.         btnInsert.setClickedListener(this::onClick); 
  41.         btnQuery.setClickedListener(this::onClick); 
  42.         btnDelete.setClickedListener(this::onClick); 
  43.         btnUpdate.setClickedListener(this::onClick); 
  44.     } 
  45.  
  46.     @Override 
  47.     public void onActive() { 
  48.         super.onActive(); 
  49.     } 
  50.  
  51.     @Override 
  52.     public void onForeground(Intent intent) { 
  53.         super.onForeground(intent); 
  54.     } 
  55.  
  56.     @Override 
  57.     public void onClick(Component component) { 
  58. //        RdbStoreManage rdbStoreMange = new RdbStoreManage(); 
  59. //        ValuesBucket values = new ValuesBucket(); 
  60. //        values.putInteger("id", 1); 
  61. //        values.putString("name""zhangsan"); 
  62. //        values.putInteger("age", 18); 
  63. //        values.putDouble("salary", 100.5); 
  64. //        values.putByteArray("blobType", new byte[] {1, 2, 3}); 
  65. //        rdbStoreMange.setSql(store, "insert into user values(zhangsan, 18, 100.5, byte[1,2,3])"); 
  66. //        long id = rdbStoreMange.insert(store,"user"values); 
  67. //        System.out.println(id); 
  68.  
  69.         DBOrmContext dbOrmContext = new DBOrmContext(); 
  70.         switch (component.getId()) { 
  71.             case ResourceTable.Id_btn_insert: //插入數據 
  72.                 //第一次使用user對應的表的時候,如果有這張表就直接使用,沒有就創建表 
  73.                 User user = new User(); 
  74.                 user.setFirstName("Zhang"); 
  75.                 user.setLastName("San"); 
  76.                 user.setAge(29); 
  77.                 user.setBalance(100.51); 
  78.                 boolean b = dbOrmContext.insert(context, user); 
  79.                 Log.i("插入成功"); 
  80.                 System.out.println(b); 
  81.                 break; 
  82.             case ResourceTable.Id_btn_query: //條件查詢 
  83.                 List<User> users = new ArrayList<>(); 
  84.                 OrmPredicates query = context.where(User.class).equalTo("lastName""San"); 
  85.                 users = dbOrmContext.query(context, query); 
  86.                 break; 
  87.             case ResourceTable.Id_btn_delete: //條件刪除 
  88.                 OrmPredicates delete = context.where(User.class).equalTo("lastName""San"); 
  89.                 int delete1 = dbOrmContext.delete(context, delete); 
  90.                 System.out.println(delete1); 
  91.                 break; 
  92.             case ResourceTable.Id_btn_update: //條件更新 
  93.                 ValuesBucket valuesBucket = new ValuesBucket(); 
  94.                 valuesBucket.putInteger("age", 31); 
  95.                 valuesBucket.putString("firstName""Zhang"); 
  96.                 valuesBucket.putString("lastName""San"); 
  97.                 valuesBucket.putDouble("balance", 300.51); 
  98.                 OrmPredicates update = context.where(User.class).equalTo("userId", 1); 
  99.                 int update1 = dbOrmContext.update(context, valuesBucket, update); 
  100.                 System.out.println(update1); 
  101.                 break; 
  102.         } 
  103.         dbOrmContext.flush(context); 
  104.     } 

 user.java 

  1. @Entity(tableName = "user", ignoredColumns = {"ignoreColumn1""ignoreColumn2"}, 
  2.         indices = {@Index(value = {"firstName""lastName"}, name = "name_index"unique = true)}) 
  3. public class User extends OrmObject { 
  4.     // 此處將userId設為了自增的主鍵。注意只有在數據類型為包裝類型時,自增主鍵才能生效。 
  5.     @PrimaryKey(autoGenerate = true
  6.     private Integer userId; 
  7.     private String firstName; 
  8.     private String lastName; 
  9.     private int age; 
  10.     private double balance; 
  11.     private int ignoreColumn1; 
  12.     private int ignoreColumn2; 
  13.  
  14.     // 開發者自行添加字段的getter和setter 方法 

 BookStore.java

  1. @Database(entities = {User.class}, version = 1) 
  2. public abstract class BookStore extends OrmDatabase { 

 項目源代碼地址:https://github.com/isoftstone-dev/Active_HarmonyOS

歡迎交流:HWIS-HOS@isoftstone.com

©著作權歸作者和HarmonyOS技術社區共同所有,如需轉載,請注明出處,否則將追究法律責任

想了解更多內容,請訪問:

51CTO和華為官方合作共建的鴻蒙技術社區

https://harmonyos.51cto.com/#zz

 

責任編輯:jianghua 來源: 鴻蒙社區
相關推薦

2021-06-28 14:48:03

鴻蒙HarmonyOS應用

2021-01-18 09:52:20

鴻蒙HarmonyOS開發

2021-02-04 09:45:19

鴻蒙HarmonyOS應用開發

2021-03-01 09:48:24

鴻蒙HarmonyOS應用開發

2021-02-24 15:22:47

鴻蒙HarmonyOS應用開發

2021-01-21 13:21:18

鴻蒙HarmonyOSPhotoview組件

2021-01-12 12:04:40

鴻蒙HarmonyOS應用開發

2021-01-20 09:54:56

鴻蒙HarmonyOS開發

2021-02-04 13:06:38

鴻蒙HarmonyOS應用開發

2021-01-13 09:40:31

鴻蒙HarmonyOS開發

2021-04-16 09:28:18

鴻蒙HarmonyOS應用

2021-02-26 14:15:27

鴻蒙HarmonyOS應用開發

2021-05-12 15:17:39

鴻蒙HarmonyOS應用

2021-03-01 14:01:41

鴻蒙HarmonyOS應用開發

2021-03-19 17:42:01

鴻蒙HarmonyOS應用開發

2021-04-20 09:42:20

鴻蒙HarmonyOS應用開發

2021-03-31 09:50:25

鴻蒙HarmonyOS應用開發

2021-04-12 09:36:54

鴻蒙HarmonyOS應用

2021-03-10 15:03:40

鴻蒙HarmonyOS應用

2021-08-04 14:16:41

鴻蒙HarmonyOS應用
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 成人午夜毛片 | 亚洲男女视频在线观看 | 国产农村妇女精品一二区 | 成年人免费网站 | www日本高清| 欧美福利视频 | 无人区国产成人久久三区 | 精国产品一区二区三区四季综 | 国产精品99久久久久久宅男 | 久久久www成人免费无遮挡大片 | 狠狠操婷婷 | 精品国产欧美日韩不卡在线观看 | jdav视频在线观看免费 | 亚洲精品在线视频 | 国产精品一区二区久久久久 | a在线v| 日韩精品一区二区在线观看 | 国产一卡二卡三卡 | 国产一区二区在线免费播放 | 日韩精品视频在线 | 亚洲综合伊人 | 男女羞羞视频免费 | 日韩中文在线视频 | 一区二区三区高清 | 欧美成人a∨高清免费观看 欧美日韩中 | 狠狠操狠狠色 | 亚洲在线视频 | 狠狠干在线 | 久久一二 | 国产精品福利久久久 | 国产美女视频一区 | 国产一区二区在线免费观看 | 在线观看成人免费视频 | 欧美精品一 | 亚洲一区二区三区免费在线观看 | 在线色网 | 亚洲国产一区二区三区, | 成人三级网址 | 韩国av网站在线观看 | 亚洲日产精品 | 毛片免费观看 |