Orm_Reflect_DB——Orm
ORM系列章节列表(点击查阅):
一、ORM之开篇
这里用最简单的数据库操作,为大家透析Orm+Reflect+DataBase结合的小框架,相信用过Orm框架的人都会觉得在解耦和使用上非常方便,同样也觉得它很神秘,那么我就带大家来慢慢揭开它神秘的面纱,其实so easy !
因为涉及的东西比较多,我这个人不喜欢长篇大论,所以将所讲的东西拆分成三个部分,方便大家理解和接受。
第一部分我们就来讲一下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初始化配置文件。