第一次寫博客。文章有點渣,喜歡就看看,不喜歡路過點個贊。
效果:直接一條語句多種用法
先來原理 HQL/SQL + Freemarker 模版生成查詢語句。
1:把SQL/HQL寫在XML。
2:編寫文件掃描器(缺)
3:讀取解釋XML
4:按實體類空間緩存查詢語句
5:直接使用
注意:不要直接復制,先弄懂流程,因為這源於舊版本及測試包來寫的,也省略了部分代碼,因此包路徑有問題。程序也不完整,缺了的自己讓大家自己去思考實現。基本上依賴Spring,不依賴Spring注入的可以考慮用代理模式注入(反射/生成字節碼(javassist/asm)/CGLIB等)
1:為了方便先定義約束Query.dtd
2:建個實體類user.class
3:建立對應的XML (User.query.xml)
4:解析緩存XML
5:定義 DBAdapter接口。
6:寫實現(AbstractHibernateDBAdapter、HibernateSingleDBAdapter)
AbstractHibernateDBAdapter
HibernateSingleDBAdapter
7:注入xml
<!-- QueryFile 注入 -->
<bean id="queryFactory" class="com.cheuks.bin.db.manager.QueryFactory">
<property name="files" value="*.query.xml" />
</bean>
<!--Single DBAdapter 注入 -->
<bean id="dBAdapter" class="com.cheuks.bin.db.manager.HibernateSingleDBAdapter">
<property name="sessionFactory" ref="sessionFactory" />
<property name="queryFactory" ref="queryFactory" />
</bean>
8:使用 AbstractDao 、UserDao
AbstractDao
UserDao
整體就完了。XML部分看DTD。覺得不錯可以收藏。但請不要 不名字改了變成自己的成果呀!