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


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