MiniDao持久化解決方案
MiniDao是Jeecg自己的持久化解決方案,具備了Hibernate實(shí)體維護(hù)和Mybaits SQL分離的兩大優(yōu)勢。 具有以下特征:
- 1.O/R mapping不用設(shè)置xml,零配置便于維護(hù)
- 2.不需要了解JDBC的知識
- 3.SQL語句和java代碼的分離
- 4.可以自動生成SQL語句
- 5.接口和實(shí)現(xiàn)分離,不用寫持久層代碼,用戶只需寫接口,以及某些接口方法對應(yīng)的sql 它會通過AOP自動生成實(shí)現(xiàn)類
- 6.支持自動事務(wù)處理和手動事務(wù)處理
- 7.支持與hibernate輕量級無縫集成
- 8.MiniDao整合了Hibernate+mybatis的兩大優(yōu)勢,支持實(shí)體維護(hù)和SQL分離
- 9.SQL支持腳本語言
※向下兼容Hibernate實(shí)體維護(hù)方式,實(shí)體的增刪改查SQL自動生成
接口和SQL文件對應(yīng)目錄
接口定義[EmployeeDao.java]
@MiniDao
public interface EmployeeDao {
@Arguments("employee")
public ListgetAllEmployees(Employee employee);
@Arguments("empno")
Employee getEmployee(String empno);
@Arguments({"empno","name"})
Map getMap(String empno,String name);
@Sql("SELECT count(*) FROM employee")
Integer getCount();
@Arguments("employee")
int update(Employee employee);
@Arguments("employee")
void insert(Employee employee);
}
SQL文件[EmployeeDao_getAllEmployees.sql]
SELECT * FROM employee where 1=1 <#if employee.age ?exists> and age = :employee.age <#if employee.name ?exists> and name = :employee.name <#if employee.empno ?exists> and empno = :employee.empno
MiniDao接口配置
<!-- 注冊MiniDao接口 -->
<bean class="org.jeecgframework.minidao.factory.MiniDaoBeanFactory">
<property name="packagesToScan">
<list>
<value>examples.dao.*</value>
</list>
</property>
</bean>
測試代碼
public class Client {
public static void main(String args[]) {
BeanFactory factory = new ClassPathXmlApplicationContext(
"applicationContext.xml");
EmployeeDao employeeDao = (EmployeeDao) factory.getBean("employeeDao");
Employee employee = new Employee();
Listlist = employeeDao.getAllEmployees(employee);
for(Map mp:list){
System.out.println(mp.get("id"));
System.out.println(mp.get("name"));
System.out.println(mp.get("empno"));
System.out.println(mp.get("age"));
System.out.println(mp.get("birthday"));
System.out.println(mp.get("salary"));
}
}
}評論
圖片
表情
