Orm_Reflect_DB——Orm
ORM系列章節列表(點擊查閱):
因爲涉及的東西比較多,我這個人不喜歡長篇大論,所以將所講的東西拆分成三個部分,方便大家理解和接受。
第一部分我們就來講一下Orm這個東西,具體含義找度娘幫你,首先貼一段XML代碼:
<orm tablename="students" beanName="pdm.com.ormdatabase.bean.Student"
daoName="pdm.com.ormdatabase.dao.StudentDao">
<!-- 是否自增長identity -->
<key column="_sid" property="stuId" type="java.lang.Integer" identity="true"></key>
<item column="stu_name" property="stuName" type="java.lang.String"></item>
<item column="stu_classname" property="stuClass" type="java.lang.String"></item>
</orm>
這裏我將它存放到assets目錄,文件名:Student.orm.xml方便操作。咋看一眼,不是太明白寫的啥東西,那麼我們繼續貼代碼:
創建一個bean目錄,用來存放實體類,類名Student,內容如下:
package pdm.com.ormdatabase.bean;
import java.util.Random;
/**
* Created by pdm on 2016/10/3.
* CSDN :http://write.blog.csdn.net/postlist
* GitHub :https://github.com/flyingfishes
*/
public class Student {
private Integer stuId;
private String stuName;
private String stuClass;
public Student() {
super();
stuName = "name_"+ new Random().nextInt(10000);//隨機取數
stuClass="class_"+new Random().nextInt(10000);
// TODO Auto-generated constructor stub
}
public Student(String stuName, String stuClass) {
super();
this.stuName = stuName;
this.stuClass = stuClass;
}
public Integer getStuId() {
return stuId;
}
public void setStuId(Integer stuId) {
this.stuId = stuId;
}
public String getStuName() {
return stuName;
}
public void setStuName(String stuName) {
this.stuName = stuName;
}
public String getStuClass() {
return stuClass;
}
public void setStuClass(String stuClass) {
this.stuClass = stuClass;
}
@Override
public String toString() {
return "Student [stuId=" + stuId + ", stuName=" + stuName
+ ", stuClass=" + stuClass + "]";
}
}
然後我們看一下XML裏的property(屬性)對應的值,是不是跟 Student中的字段名一一對應,是不是有一點眉目了。
接下來繼續貼代碼(建立數據庫的代碼):
@Override
public void onCreate(SQLiteDatabase db) {
db.beginTransaction();
try {
db.execSQL("create table students(_sid integer primary key autoincrement," +
"stu_name varchar(20),stu_classname varchar(20))");
db.setTransactionSuccessful();
} catch (Exception e) {
e.printStackTrace();
} finally {
db.endTransaction();
}
}
我們將建立數據庫表中的三個字段拿出來分別是:_sid,stu_name,stu_classname,跟XML中的column對應的值是不是一樣,包括後面的type跟數據庫創建字段的類型也都是一一對應關係。再看看orm標籤的tablename屬性對應的值不正是數據庫的表名。
講到了這裏Orm的基本概念是不是大概清楚了,通過XMl或者其他文本形式,將實體和數據庫中的表以及包含的字段關聯起來,是不是就有點“對象關係映射”的感覺了,這裏的XMl文件可以稱之爲關係映射配置文件。
接下來大家是不是想問,這樣有什麼用? 不用着急,我們一步步來,請看下一章節Orm(二):XML文本解析 + Application初始化配置文件。