https://www.jianshu.com/p/8035eb5da7a2 https://github.com/LitePalFramework/LitePal 使用上確實簡單 集成流程: 1、在build.gradle裏添加依賴: //數據庫框架 compile 'org.litepal.android:core:2.0.0' 2、在src-main目錄下新建assets文件夾,新建一個名爲litepal.xml的xml文件,裏面爲: <?xml version="1.0" encoding="utf-8"?> <litepal> <!--名稱--> <dbname value="test2"/> <!--版本號--> <version value="1"/> <list> <!--這裏是類映射,必填--> <mapping class="mo.com.db.Student"></mapping> </list> <!-- 直接設置這個,就表示數據庫存儲的位置,直接打開手機存儲就可以找到 --> <!--這個貌似是路徑,沒測試過,以後有時間。。--> <!-- <storage value="guolin/database"/>--> </litepal> 3、在manifest裏的application節點裏添加: android:name="org.litepal.LitePalApplication" 如果有自己的application,則在自己的application裏初始化 @Override public void onCreate() { super.onCreate(); // 初始化LitePal數據庫 LitePal.initialize(this); } 5、權限 有時候會權限錯誤 在manifest裏添加 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 親測不加一般不會報錯,沒搞懂這個是什麼原理,好像是和數據庫文件的存儲位置有關係 6、存儲實體類,需繼承LitePalSupport類,必須實現set get方法,也可以直接用構造器創建 7、具體操作: (1)增:實體類直接操作 Student student = new Student("1238409","小明",21); //Student student = new Student(); //student.setNumber("1238409"); //student.setName("小明"); //student.setAge(21); student.save(); (2)刪: //表對應的類、條件、條件值 LitePal.deleteAll(Student.class, "id > ?", "2"); (3)改:可以調用父類的updateAll方法,也可以find出來後,修改,然後save Student student1 = new Student(); student1.setAge(0); student1.setName("111111"); student1.setToDefault("age"); student1.updateAll("name = ?", "小明"); (4)查: //按條件查 List<Student> students1 = LitePal.where("age = ?", "21").find(Student.class); //查全部 List<Student> list = LitePal.findAll(Student.class); //獲取第一條數據 Student firstStu = DataSupport.findFirst(Student.class); //獲取最後一條數據 Student lastStu = DataSupport.findLast(Student.class); //要查詢某幾列 List<Student> someLineStu = DataSupport.select("number", "name").find(Student.class); //排序查詢,("列名 規則") desc降序 asc升序 List<Student> orderStu = DataSupport.order("age desc").find(Student.class); //只查前5條 List<Student> limitStu = DataSupport.limit(5).find(Student.class); //查詢結果的偏移量,跟limit搭配可以做分頁使用,下面是從第3條開始,共查詢5條 List<Student> offsetStu = DataSupport.limit(5).offset(2).find(Student.class); //多種條件組合查詢 /*List<Student> setStu = DataSupport.select("number", "name") .where("id > ?", "3") .order("age desc") .limit(5) .offset(4) .find(Student.class);*/ //使用SQL語句查詢 List<Student> students2 = new ArrayList<>(); Cursor cursor = LitePal.findBySQL("select * from student where age = ? and id> ?", "21", "3"); if (cursor != null) { while (cursor.moveToNext()) { Student stu = new Student(); stu.setId(cursor.getInt(cursor.getColumnIndex("id"))); stu.setNumber(cursor.getString(cursor.getColumnIndex("number"))); stu.setName(cursor.getString(cursor.getColumnIndex("name"))); stu.setAge(cursor.getInt(cursor.getColumnIndex("age"))); students2.add(stu); } cursor.close(); }
LitePal集成
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.