當前位置:首頁 » 數據倉庫 » androidorm資料庫
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

androidorm資料庫

發布時間: 2022-05-15 10:31:40

A. android ormlite 資料庫操作 一執行OpenHelperManager.getHelper 就報錯

用 OrmLitesqliteOpenHelper helper=OpenHelperManager.getHelper(context,BasicDAO.class);方法來得到helper對象,

你看下這個http://blog.csdn.net/joker_zhou/article/details/7869244

B. android orm entity里屬性刪除了,資料庫表欄位會變嗎

如果沒有進行資料庫同步的還應該不會有影響的,但如果刪除了對應的欄位,應該會出現錯誤的信息的。

C. android orm 可以刪除列嗎

首先展示一下項目結構圖

GreenDAO_entity是一個java工程
之前的經驗分享裡面講到(用來生成對應的實體類)

實體類生成模板

GreenDao_test是一個android項目
是整合了GreenDAO的android項目

DaoMaster:Dao的通用管理類和sqlitedatebase管理,提供了基礎的資料庫操作方法
DaoSession:操作具體的DAO對象(清除方法和獲取方法)
Db_user:對應sqllite的實體類
Db_userDao:對應表的Dao方法

Initialize_Entity_main頁面類
這個例子沒有做數據的界面顯示,此處布局文件省略。

Initialize_Entity_main頁面代碼
調用框架的方法寫在onCreate方法中

這部分代碼是創建資料庫,創建表
DevOpenHelper helper = new DaoMaster.DevOpenHelper(mContext, "data_db_user", null); db = helper.getWritableDatabase(); Master = new DaoMaster(db); Session = Master.newSession(); db_userDao = Session.getDb_userDao();

9
這部分代碼是給表插入數據

Db_user db_user = new Db_user(null, "1", "hhh", "12345", "12345", "12345", "12345", "12345", "12345", "12345", "12345", "12345"); db_userDao.insert(db_user);
10
這部分代碼是一個where條件的查詢語句。返回List<Db_user>

db_user_list = db_userDao.queryBuilder() .where(Properties.User_name.eq("hhh")) .orderAsc(Properties.User_id).list();

D. android studio怎麼引入ormlitesqliteopenhelper的jar

首先說明一下,本人已經使用ormlite-Android做過兩個大型的項目開發,很久以來就想對此資料庫做一些總結,正好今天有空就寫出來:
1. 首先去官網http://ormlite.com/看官方說明,也可以去http://ormlite.com/releases/下載兩個包:一個是ormlite-core-4.24.jar,另一個是ormlite-android-4.24.jar
2. 下載完2個jar包後導入項目中,在此不多說,大家都懂的
3.前奏工作完成,下面就是怎麼去搭建框架使用了,首先說明本人做過一段時間的web開發,所以喜歡用mvc模式,下面將通過代碼來說明:
1).建立自己的DatabaseHelper類
[java] view plain
public class DatabaseHelper extends OrmLiteSqliteOpenHelper {

// name of the database file for your application -- change to something
// appropriate for your app
private static final String DATABASE_NAME

E. 如何使用ormlite有效地插入Android的SQLite資料庫批量數據

與Android中的資料庫創建相似,使用OrmLite創建資料庫需要我們創建一個SqlOpenHelper繼承OrmLiteSqliteOpenHelper,在OrmLiteSqliteOpenHelper也有兩個重要方法,分別是onCreate和onUpgrade,負責資料庫創建以及升級時的操作 01.public class My...

F. 哪個ORM框架可以最好地處理MVCC資料庫設計

1、傳統的建表方式

其實為了方便我們對資料庫表進行管理,Android本身就提供了一個幫助類:SQLiteOpenHelper。這個類集創建和升級資料庫於一身,並且自動管理了資料庫版本,算是一個非常好用的工具。
那我們現在就來試試SQLiteOpenHelper的用法吧。首先你要知道SQLiteOpenHelper是一個抽象類,這意味著如果我們想要使用它的話,就需要創建一個自己的幫助類去繼承它。SQLiteOpenHelper中有兩個抽象方法,分別是onCreate()和onUpgrade(),我們必須在自己的幫助類裡面重寫這兩個方法,然後分別在這兩個方法中去實現創建、升級資料庫的邏輯。本篇文章只需要把注意力放在創建資料庫這里就行了,升級資料庫我們會在下一篇文章中去討論。
新建一個MySQLiteHelper類並讓它繼承SQLiteOpenHelper,這樣一個最基本的資料庫幫助類的代碼如下所示:

[java] view plain
public class MySQLiteHelper extends SQLiteOpenHelper {

public MySQLiteHelper(Context context, String name, CursorFactory factory,
int version) {
super(context, name, factory, version);
}

@Override
public void onCreate(SQLiteDatabase db) {
}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}

}

其中,當資料庫創建的時候會調用onCreate()方法,在這里去執行建表操作就可以了。比如說我們想新建一張news表,其中有title,content,publishdate,commentcount這幾列,分別代表著新聞標題、新聞內容、發布時間和評論數,那麼代碼就可以這樣寫:

[java] view plain
public class MySQLiteHelper extends SQLiteOpenHelper {

public static final String CREATE_NEWS = "create table news ("
+ "id integer primary key autoincrement, "
+ "title text, "
+ "content text, "
+ "publishdate integer,"
+ "commentcount integer)";

public MySQLiteHelper(Context context, String name, CursorFactory factory,
int version) {
super(context, name, factory, version);
}

@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(CREATE_NEWS);
}
...
}

可以看到,我們把建表語句定義成了一個常量,然後在onCreate()方法中去執行了這條建表語句,news表也就創建成功了。這條建表語句雖然簡單,但是裡面還是包含了一些小的細節,我來解釋一下。首先,根據資料庫的範式要求,任何一張表都應該是有主鍵的,所以這里我們添加了一個自增長的id列,並把它設為主鍵。然後title列和content列都是字元串類型的,commentcount列是整型的,這都很好理解,但是publishdate列該怎麼設計呢?由於SQLite中並不支持存儲日期這種數據類型,因此我們需要將日期先轉換成UTC時間(自1970年1月1號零點)的毫秒數,然後再存儲到資料庫中,因此publishdate列也應該是整型的。

現在,我們只需要獲取到SQLiteDatabase的實例,資料庫表就會自動創建了,如下所示:
[java] view plain
SQLiteOpenHelper dbHelper = new MySQLiteHelper(this, "demo.db", null, 1);
SQLiteDatabase db = dbHelper.getWritableDatabase();

LitePal的基本用法
雖說LitePal宣稱是近乎零配置,但也只是「近乎」而已,它還是需要進行一些簡單配置才可以使用的,那麼我們第一步就先快速學習一下LitePal的配置方法。
快速配置
1. 引入Jar包或源碼
首先我們需要將LitePal的jar包引入到項目當中,可以點擊這里查看LitePal的最新版本,選擇你需要的下載即可。下載好了jar包之後,把它復制到項目的libs目錄中就算是引入成功了,如下圖所示:
如果你不想用jar包的話,也可以把LitePal的源碼下載下來,然後作為一個library庫導入到Eclipse當中,再讓我們的項目去引用這個library庫就可以了。

2. 配置litepal.xml
接著在項目的assets目錄下面新建一個litepal.xml文件,並將以下代碼拷貝進去:
[java] view plain
<?xml version="1.0" encoding="utf-8"?>
<litepal>
<dbname value="demo" ></dbname>

<version value="1" ></version>

<list>
</list>
</litepal>

配置文件相當簡單,<dbname>用於設定資料庫的名字,<version>用於設定資料庫的版本號,<list>用於設定所有的映射模型,我們稍後就會用到。

3. 配置LitePalApplication
由於操作資料庫時需要用到Context,而我們顯然不希望在每個介面中都去傳一遍這個參數,那樣操作資料庫就顯得太繁瑣了。因此,LitePal使用了一個方法來簡化掉Context這個參數,只需要在AndroidManifest.xml中配置一下LitePalApplication,所有的資料庫操作就都不用再傳Context了,如下所示:
[java] view plain
<manifest>
<application
android:name="org.litepal.LitePalApplication"
...
>
...
</application>
</manifest>

當然,有些程序可能會有自己的Application,並在這里配置過了。比如說有一個MyApplication,如下所示:
[java] view plain
<manifest>
<application
android:name="com.example.MyApplication"
...
>
...
</application>
</manifest>

沒有關系,這時只需要修改一下MyApplication的繼承結構,讓它不要直接繼承Application類,而是繼承LitePalApplication類,就可以使用一切都能正常工作了,代碼如下所示:

[java] view plain
public class MyApplication extends LitePalApplication {
...
}

但是,有些程序可能會遇到一些更加極端的情況,比如說MyApplication需要繼承另外一個AnotherApplication,並且這個AnotherApplication還是在jar包當中的,不能修改它的代碼。這種情況應該算是比較少見了,但是如果你遇到了的話也不用急,仍然是有解釋方案的。你可以把LitePal的源碼下載下來,然後把src目錄下的所有代碼直接拷貝到你項目的src目錄下面,接著打開LitePalApplication類,將它的繼承結構改成繼承自AnotherApplication,再讓MyApplication繼承自LitePalApplication,這樣所有的Application就都可以在一起正常工作了。
僅僅三步,我們就將所有的配置工作全部完成了,並且這是一件一本萬利的事情,自此以後,你就可以開心地體驗LitePal提供的各種便利了,就讓我們從建表開始吧。

開始建表
前面在介紹的時候已經說了,LitePal採取的是對象關系映射(ORM)的模式,那麼什麼是對象關系映射呢?簡單點說,我們使用的編程語言是面向對象語言,而我們使用的資料庫則是關系型資料庫,那麼將面向對象的語言和面向關系的資料庫之間建立一種映射關系,這就是對象關系映射了。
但是我們為什麼要使用對象關系映射模式呢?這主要是因為大多數的程序員都很擅長面向對象編程,但其中只有少部分的人才比較精通關系型資料庫。而且資料庫的SQL語言晦澀難懂,就算你很精通它,恐怕也不喜歡經常在代碼中去寫它吧?而對象關系映射模式則很好地解決了這個問題,它允許我們使用面向對象的方式來操作資料庫,從而可以從晦澀難懂的SQL語言中解脫出來。
那麼接下來我們就看一看LitePal中是如何建表的吧。根據對象關系映射模式的理念,每一張表都應該對應一個模型(Model),也就是說,如果我們想要建一張news表,就應該有一個對應的News模型類。新建一個News類,如下所示:
[java] view plain
package com.example.databasetest.model;

public class News {
}

然後,表中的每一列其實就是對應了模型類中的一個欄位,比如news表中有id、title、content、publishdate、commentcount這幾個列,那麼在News類中就也應該有這幾個欄位,代碼如下所示:
[java] view plain
[java] view plain
public class News {

private int id;

private String title;

private String content;

private Date publishDate;

private int commentCount;

// 自動生成get、set方法
...
}

其中id這個欄位可寫可不寫,因為即使不寫這個欄位,LitePal也會在表中自動生成一個id列,畢竟每張表都一定要有主鍵的嘛。

這里我要特別說明一下,LitePal的映射規則是非常輕量級的,不像一些其它的資料庫框架,需要為每個模型類單獨配置一個映射關系的XML,LitePal的所有映射都是自動完成的。根據LitePal的數據類型支持,可以進行對象關系映射的數據類型一共有8種,int、short、long、float、double、boolean、String和Date。只要是聲明成這8種數據類型的欄位都會被自動映射到資料庫表中,並不需要進行任何額外的配置。
那麼有的朋友可能會問了,既然是自動映射的話,如果News類中有一個字元串欄位我並不想讓它映射到資料庫表中,這該怎麼辦呢?對此,LitePal同樣採用了一種極為輕量的解決方案,只有聲明成private修飾符的欄位才會被映射到資料庫表中,如果你有某一個欄位不想映射的話,只需要將它改成public、protected或default修飾符就可以了。
現在模型類已經建好了,我們還差最後一步,就是將它配置到映射列表當中。編輯assets目錄下的litepal.xml文件,在<list>標簽中加入News模型類的聲明:
[java] view plain
<?xml version="1.0" encoding="utf-8"?>
<litepal>
<dbname value="demo" ></dbname>

<version value="1" ></version>

<list>
<mapping class="com.example.databasetest.model.News"></mapping>
</list>
</litepal>

注意這里一定要填入News類的完整類名。

OK,這樣所有的工作就都已經完成了,現在只要你對資料庫有任何的操作,news表就會被自動創建出來。比如說LitePal提供了一個便捷的方法來獲取到SQLiteDatabase的實例,如下所示:
[java] view plain
SQLiteDatabase db = Connector.getDatabase();

好了,到目前為止你已經算是對LitePal的用法有點入門了,那麼本篇文章的內容就到這里,下篇文章當中我們將學習使用LitePal進行升級表的操作。感興趣的朋友請繼續閱讀 Android資料庫高手秘籍(三)——使用LitePal升級表 。

G. Android 查詢資料庫採用ORM數據框架,是否還需要開啟線程非同步處理

直接引入的api就是非同步的吧,不需要單獨處理了。

H. android orm 框架有哪些

你好,手機先生為您解答!


1、Afinal

Afinal是一個android的ioc,orm框架,內置了四大模塊功能:FinalAcitivity,FinalBitmap,FinalDb,FinalHttp。通過finalActivity,可以通過註解的方式進行綁定ui和事件。通過finalBitmap,可以方便的載入bitmap圖片,而無需考慮oom等問題。通過finalDB模塊,一行代碼就可以對android的 sqlite資料庫 進行增刪改查。通過FinalHttp模塊,以ajax形式請求http數據。

2、 xUtils

xUtils:可以說是Afinal的升級版。

xUtils 包含了很多實用的android工具。

xUtils 支持大文件上傳,更全面的http請求協議支持(10種謂詞),擁有更加靈活的ORM,更多的事件註解支持且不受混淆影響。

xUitls 最低兼容android 2.2 (api level8)。

3、LoonAndroid

這是一個純實現功能的框架,它的目標是節省代碼量,降低耦合,讓代碼層次看起來更清晰。

4、 KJFrameForAndroid

是一個android的orm 和 ioc 框架。同時封裝了android中的Bitmap與Http操作的框架,使其更加簡單易用;

KJFrameForAndroid的設計思想是通過封裝Android原生SDK中復雜的復雜操作而達到簡化Android應用級開發,最終實現快速而又安全的開發APP。我們提倡用最少的代碼,完成最多的操作,用最高的效率,完成最復雜的功能。

希望我的回答對您有所幫助,祝您生活愉快!

望採納,謝謝!