Android 中的ORM框架

在android 中,內置了sqlite數據庫,java web 中,用慣了Hibernate ,想找找android中是否也有類似的orm框架,后來在開源中國看到了orman,這是一個很不錯的框架。

這個可以幫我們快捷方便的實現數據庫的CURD操作。下面以Users這個用戶類為例,和大家分享一下我的心得。

大家先在工程中導入orman的jar包。

這是我寫的users類

package xidian.wq.entity;import java.io.Serializable;import org.orman.mapper.Model;
import org.orman.mapper.ModelQuery;
import org.orman.mapper.annotation.Column;
import org.orman.mapper.annotation.Entity;
import org.orman.mapper.annotation.PrimaryKey;
import org.orman.sql.C;/*** 用戶類* @author WWF* @date 2012-12-16 下午1:22:37*/
@SuppressWarnings("serial")
@Entity(table="users")
public class Users extends Model<Users>implements Serializable{@PrimaryKey//自增的話,@PrimaryKey(autoIncrement=true)@Column(name="user_id",type="int")//映射的字段名和類型,類型可以省略不寫public int userId;@Column(name = "user_name",type="text")public String userName;@Column(name="user_password",type="text")public String userPassword;@Column(name="login_time",type="text")public String loginTime;@Overridepublic void update() {Model.execute(ModelQuery.update().from(Users.class).set(Users.class, "user_name", userName).set(Users.class, "user_password",userPassword).set(Users.class, "login_time", loginTime).where(C.eq("user_id", userId)).getQuery());}}

因為orman對于持久化的支持不咋符合我們的操作習慣,所以我個人比較喜歡重寫其update方法,就幾行代碼。android中,字段盡量少,存儲重要的數據。所以這個工程量較少。然后在應用啟動時,要注冊這個users類,在啟動的Application中注冊,

代碼如下

Database db = new SQLiteAndroid(this, AppConfig.DATABASE_PATH+AppConfig.DATABASE_FILENAME);MappingSession.registerDatabase(db);//注冊實體類MappingSession.registerEntity(Users.class);MappingSession.registerEntity(Channel.class);MappingSession.registerEntity(RSSItem.class);MappingSession.registerEntity(ChannelGroup.class);MappingSession.start();

然后在任何的Activity 中就可以使用了,

Users user = new Users();
//插入
user.insert();
//刪除
user.delete();
//更新
user.update();
//查詢
user = Model.fetchSingle(ModelQuery.select().from(Users.class).
where(C.eq("user_id", id)).getQuery(), Users.class);
//查詢更多
List<Users> users = Model.fetchQuery(ModelQuery.select().from(Users.class).where(
C.like("user_name", "%2%")).getQuery(), Users.class);

轉載于:https://www.cnblogs.com/Codenewbie/archive/2013/03/21/2973248.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/279327.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/279327.shtml
英文地址,請注明出處:http://en.pswp.cn/news/279327.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

android頁面布局 如何讓中間的listview填充剩余部分_谷歌駕駛設計—界面設計布局...

本節提供了可在不同屏幕尺寸范圍內縮放的屏幕布局的設計指南。此處定義的padding和keyline值用于Components&#xff0c;Media規范、Notification Center規范和Dialer規范中。指南概覽&#xff08;TL&#xff1a;DR&#xff09;&#xff1a;基于適當的屏幕尺寸類別的基本布局使…

ios 禁用滑動手勢_如何禁用筆記本電腦上的Windows 8滑動手勢?

ios 禁用滑動手勢If you’re not a fan of the touchpad-based swipe gestures in Windows 8 there is a way to completely disable them and reclaim your touchpad. 如果您不喜歡Windows 8中基于觸摸板的滑動手勢&#xff0c;可以使用一種方法來完全禁用它們并收回您的觸摸板…

Java快速入門-01-基礎篇

Java快速入門-01-基礎篇 如果基礎不好或者想學的很細&#xff0c;請參看&#xff1a;菜鳥教程-JAVA本筆記適合快速學習&#xff0c;文章后面也會包含一些常見面試問題&#xff0c;記住快捷鍵操作&#xff0c;一些內容我就不轉載了&#xff0c;直接附上鏈接&#xff0c;嘻嘻開發…

Excel導入MS SQL SERVER 操作

關于Excel導入到sql操作的相關問題總結&#xff1a; 一、大批量數據導入 方法1、從Excel大批量數據導入時我們可以使用sql里面有一個batch copy的功能 方法2、在sql中建一個table type結構&#xff0c;在前端將excel讀到datatable中&#xff0c;把整個datatable作為存儲過程參數…

蘋果mac閃退_自從Mac有了WPS,從此和雙系統說再見!

薛崗13,712本文共計2266個字&#xff0c;預計閱讀時長需要6分鐘。大部分使用Macbook的用戶都有一個痛點&#xff0c;就是編輯好的office文件&#xff0c;在朋友或同事的windows電腦上展示效果與自己的會有差異。除此外&#xff0c;卡頓、閃退、數據丟失等也是Windows版office在…

初學者計算機_初學者極客:如何在計算機上重新安裝Windows

初學者計算機Reinstalling Windows is one of the easiest ways to fix software problems on your computer, whether it’s running slow or infected by viruses. You should also reinstall Windows before you get rid of an old PC. 重新安裝Windows是修復計算機上軟件問…

win7 32位 安裝opencv-python后,運行時提示 from .cv2 import *: DLL load failed: 找不到指定的模塊 的解決辦法...

安裝opencv后&#xff0c;運行一個測試程序提示"from .cv2 import *: DLL load failed: 找不到指定的模塊"。于是百度一下解決辦法&#xff0c;結果試了N多方法后也沒能解決這個問題。 最后不得不耐心的下載了dependency walker來查看opencv到底是缺少了哪個dll文件。…

goahead處理json_GoAhead Web Server遠程代碼執行漏洞分析(附PoC)

*本文中涉及到的相關漏洞已報送廠商并得到修復&#xff0c;本文僅限技術研究與討論&#xff0c;嚴禁用于非法用途&#xff0c;否則產生的一切后果自行承擔。本文是關于GoAhead web server遠程代碼執行漏洞(CVE-2017-17562)的分析&#xff0c;該漏洞源于在初始化CGI腳本環境時使…

項目中的模塊剝離成項目_使用MCEBuddy 2從電視錄制中剝離廣告

項目中的模塊剝離成項目One of the great things about time-shifting your television viewing is that you are able to watch the shows you love at a time that suits you. Just because you have an appointment on Wednesday evening there’s no need to miss out on y…

有上下界限制可行流

無源匯有上下界限制可行流&#xff08;循環流&#xff09; 即每條邊的流量限制為[L,R]&#xff0c;判斷有沒有滿足整個網絡的可行流。 看看以前學的網絡流&#xff0c;實際上它的流量限制為[0,C]&#xff0c;現在無非多了一個下限的限制。 網絡流的一個重要性質&#xff1a;除了…

.gitignore文件將已經納入版本管理的文件刪除

git rm -r --cached . git add . git commit -m update .gitignore git push -u origin master 先將本地緩存刪除&#xff0c;再提交&#xff0c;.gitignore文件只針對那些沒有被staged的文件有效 參考博客&#xff1a;https://www.cnblogs.com/kevingrace/p/5690241.html 轉載…

gmail收件箱標簽設置_通過在Gmail中啟用實驗室功能來啟動收件箱

gmail收件箱標簽設置We recently looked at how you can make it easier to manage multiple inboxes in Gmail using the Multiple Inboxes Lab feature. This is a non-standard feature and it’s far from being the only one available to you. In fact there are numerou…

linux rmp命令安裝包在哪里_rpm命令_Linux rpm 命令用法詳解:RPM軟件包的管理工具...

rpm命令是RPM軟件包的管理工具。rpm原本是Red Hat Linux發行版專門用來管理Linux各項套件的程序&#xff0c;由于它遵循GPL規則且功能強大方便&#xff0c;因而廣受歡迎。逐漸受到其他發行版的采用。RPM套件管理方式的出現&#xff0c;讓Linux易于安裝&#xff0c;升級&#xf…

【題解】洛谷P1066 [NOIP2006TG] 2^k進制數(復雜高精+組合推導)

洛谷P1066&#xff1a;https://www.luogu.org/problemnew/show/P1066 思路 挺難的一道題 也很復雜 滿足題目要求的種數是兩類組合數之和 r的最多位數m為 w/k&#xff08;當w mod k0 時&#xff09;w/k1&#xff08;當 w mod k1 時&#xff09;First: 位數為2~m的種數 即從2k-1中…

cmd命令不識別exp_Cmder-超量級的Cmd

Windows命令行工具cmd缺點窗口size不能便捷縮放復制文本&#xff0c;不能直接用鼠標拷貝&#xff0c;還需要多一道菜單操作&#xff1b;而且&#xff0c;還只能塊狀拷貝&#xff0c;而不是按行字符&#xff0c;極其不便不支持多Tab頁&#xff0c;多窗口管理不便cmd界面丑陋&…

sizeof string

char a[] "hello"; string s "hello"; cout<<sizeof(a)<<endl; cout<<sizeof(s)<<endl; cout<<sizeof(s.c_str())<<endl;輸出為 6 32 4最后一個c_str返回的是char*,所有指針的長度都為4。sizeof(s)為什么為32&#…

iTOP-4412開發板實現3路ADC數模轉換驅動例程

學習下 linux 數模程序驅動的編寫&#xff0c;本節我們實現的功能是實現三路ADC 數模轉換。驅動程序驅動程序的名字&#xff1a;“itop4412_adc.c”。要想把這個驅動注冊到內核,先把這個驅動程序放到內核的“driver/char”目錄下面&#xff0c;如下圖所示&#xff1a; Makefile…

β射線與哪些物質可產生較高的韌致輻射_輻射無所不在,香蕉土豆里都有?我們還能愉快生活嗎?...

作為一枚受過系統科學教育&#xff0c;耳聰目明的當代年輕人&#xff0c;你是不是隔三差五被長輩親友群里各種“XX有放射性&#xff0c;趕緊遠離&#xff01;”的科學謠言搞得哭笑不得&#xff1f;又或者&#xff0c;稍一不注意&#xff0c;長輩親友就買回了各種號稱黑科技滿滿…

requests保存圖片

1.創建07_save_jpg.py文件 import requests#發送請求respone requests.get("https://www.baidu.com/img/bd_logo1.png?wheresuper")#保存with open("a.png","wb")as f: f.write(respone.content)2.運行代碼 轉載于:https://www.cnblogs.com…

在Linux上運行Windows軟件的4種以上方法

Linux has come a long way, but you may still need to run Windows applications occasionally – especially Windows-only PC games. Luckily, there are quite a few ways to run Windows applications on Linux. Linux已經走了很長一段路&#xff0c;但是您可能仍然偶爾需…