0
点赞
收藏
分享

微信扫一扫

android orm持久层框架

天蓝Sea 2022-09-07 阅读 85

1. android数据库开发
2.
3. Android中内置了sqlite,但是常用的开发语言java是面向对象的,而数据库是关系型的,二者之间的转化每次都很麻烦(主要是我对sql语言不熟悉)。而Java Web开发中有很多orm框架,但是想直接放到Android上用有些麻烦。尝试了一下找Android的orm框架,说实话还有好几个。
4.
5. 实现考虑的是:androrm
6. 官网:http://androrm.the-pixelpla.net/
7. 说实话,这个我实在没有弄懂,一共两个包。
8. 一个是依赖包:Apache Commons - Lang (2.6)
9. 另外一个就是主包:androrm.jar 不管怎么下载的都不能使用...
10.
11. 然后有考虑了一下db4o
12. 官网:http://www.db4o.com/
13. 官网上的介绍说是已经支持Android了,但是我一是觉得包有点大,而是觉得速度有点慢
14.
15. 最后看到的就是ormlite
16. 官网:http://ormlite.com/
17. 一共两个包:一个是ormlite-core-4.24.jar,另一个是ormlite-android-4.24.jar
18. 从以下网址可以下载到:http://ormlite.com/releases/
19.
20. 下面按照惯例来个Hello world
21. 新建Android项目:HelloOrmLite
22.
23.
24. 添加文件夹:libs,将所需的两个包复制到其中。添加引用
25.
26. 新建一个model:Hello.java
27.
28.
29. package
30.
31. import
32.
33. public class
34. @DatabaseField(generatedId = true)
35. int
36. @DatabaseField
37. String word;
38.
39. public
40. }
41.
42. @Override
43. public
44. new
45. "id=").append(id);
46. " ,word=").append(word);
47. return
48. }
49.
50. }
51.
52. @DatabaseField是声明id为数据库字段,generatedId =true声明id为自增长
53. 然后重写了toString()
54.
55. 再添加一个DataHelper.java
56.
57.
58. package
59.
60. import
61.
62. import
63. import
64. import
65.
66.
67. import
68.
69. import
70. import
71. import
72. import
73.
74. public class DataHelper extends
75.
76. private static final String DATABASE_NAME = "HelloOrmlite.db";
77. private static final int DATABASE_VERSION = 1;
78. private Dao<Hello, Integer> helloDao = null;
79.
80. public
81. super(context, DATABASE_NAME, null, DATABASE_VERSION);
82. }
83.
84. @Override
85. public void
86. try
87. class);
88. catch
89. class.getName(), "创建数据库失败", e);
90. e.printStackTrace();
91. }
92. }
93.
94. @Override
95. public void onUpgrade(SQLiteDatabase db, ConnectionSource connectionSource, int
96. int
97. try
98. class, true);
99. onCreate(db, connectionSource);
100. catch
101. class.getName(), "更新数据库失败", e);
102. e.printStackTrace();
103. }
104. }
105.
106. @Override
107. public void
108. super.close();
109. null;
110. }
111.
112. public Dao<Hello, Integer> getHelloDataDao() throws
113. if (helloDao == null) {
114. class);
115. }
116. return
117. }
118. }
119.
120.
121. 在布局文件中添加一个TextView
122. HelloOrmliteActivity.java中添加对数据库的操作
123.
124. 代码如下:
125.
126.
127. package
128.
129. import
130. import
131.
132. import
133. import
134.
135. import
136. import
137. import
138. import
139.
140. public class HelloOrmliteActivity extends
141. /** Called when the activity is first created. */
142. @Override
143. public void
144. super.onCreate(savedInstanceState);
145. setContentView(R.layout.main);
146. this.findViewById(R.id.output);
147. try
148. Dao<Hello, Integer> helloDao = getHelper().getHelloDataDao();
149. // 添加数据
150. for (int i = 0; i < 2; i++) {
151. new Hello("Hello"
152. helloDao.create(hello);
153. }
154. "\n" + "添加数据完成");
155. // 查询添加的数据
156. List<Hello> hellos = helloDao.queryForAll();
157. for
158. "\n"
159. }
160. // 删除数据第一条数据
161. 0));
162. "\n" + "删除数据完成");
163. // 重新查询数据
164. hellos = helloDao.queryForAll();
165. for
166. "\n"
167. }
168. // 修改数据
169. 0);
170. "这是修改过的数据");
171. "\n" + "修改数据完成");
172. helloDao.update(h1);
173. // 重新查询数据
174. hellos = helloDao.queryForAll();
175. for
176. "\n"
177. }
178.
179. catch
180. // TODO Auto-generated catch block
181. e.printStackTrace();
182. }
183.
184. }
185. }
186.
187.
188.
189. 以上实现了数据库操作相关的增删改,下面是效果:
190.
191.
192.
193.
194. OrmLite的功能非常强大,Model类的声明中非常重要,外键约束,非空检查等等问题都有相对的处理方法。
195.



举报

相关推荐

0 条评论