Orm——源码library使用

Orm——源码library使用

昨天一口气写了四篇博客,洪荒之力也是用的七七八八了,当然做事要有始有终,今天就给大家讲一下我搭的这个Orm小功能模块怎么使用在项目中。想要看整个框架原理的请依次浏览以下章节:
首先我们看一下library的项目结构:

东西不多,用起来也很简单,需要注意的是:你写自己的DataBaseHelper需要继承library中的BaseDatabaseHelper;你写自己的Application需要继承library中的BaseDao,且记得在清单文件中声明:

我这里直接用的是library中的BaseApplication。
db数据库模块都是大同小异,我就不多说了,我这里重点说下,要是用这个library除了上面两点,你还需要做什么,这个library又有什么好处。

第一步:建立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映射关系文件:

需要注意的是:命名规则:实体类名 + orm + xml,以Student为例:student.orm.xml(如果你不想这么写,可以改library源码,允许你随便改大笑
<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>
这里的规则,依然是column值对应你数据库表字段名,property值对应Student中的成员变量名,需要注意beanName和daoName路径需要是全路径。
第三步:建立dao目录,写dao类,这里注意写法就行了:
public class StudentDao extends BaseDao<Student> {
	public StudentDao(BaseDatabaseHelper helper) {
		super(helper,Student.class);
		// TODO Auto-generated constructor stub
	}
	public Orm getOrm(){
		return super.getOrm();
	}
}
做完这三步,我们就可以愉快的使用数据库的增删改查了,有没有使用Gson解析的感觉,就这么简单,不管你以后项目怎么加表,你只要做这三步,我们继续看如何使用(这里只贴部分使用代码,看全部请下载源码:Orm_Reflect_DB):
<span style="white-space:pre">	</span>//初始化dao对象
        dao = new StudentDao(BaseDatabaseHelper.getInstance(this));
        Student student = new Student();
        list = null;
        //获取dao对应的对象映射对象
        orm = dao.getOrm();
        try {
            dao.insert(student); //插入一个Student对象到数据库 
            student = new Student();
            String where = orm.getKey().getColumn() + "=?"; //修改数据库的条件字段,所有数据库字段都可以通过orm对象获取,不用一个个字段粘贴了吧  
            String[] args = new String[]{"1"};//条件字段的值 
            dao.update(student, where, args); //修改主键值 = 1的Student 
            list = dao.selectAll();<span style="white-space:pre">	</span>//查询所有字段
        } catch (Exception e) {
            e.printStackTrace();
        }
是不是so easy!!!每一个dao类对应一张表的操作,贴效果图:


到这里Orm部分就结束了,欢迎各位参考指正,如有需要会继续强大、更新。
欢迎下载源码Orm_Reflect_DB


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章