过去做过一些基于spring、hibernate整合应用的实例,本人感觉spring与hibernate最好的结合就是泛型Dao的实现,代码量节省了一半,而且业务逻辑一目了然。
后来做别的系统时候考虑过这样的框架,但是数据库结构如果不固定,动态生成的东西比较多这个时候只好放弃了hibernate而选择了同样具有orm性能的ibatis,下面就spring与ibatis的结合相关配置做下说明(如有不同意见,希望交流)
首先spring和ibatis具体下载和安装就不多说了。直接切入正题
Spring框架下的ibatis应用,特别是在容器事务管理模式下的ibatis应用开发
部署如下:
首先spring配置文件:
Spring_base.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans default-lazy-init="true">
<!-- 配置数据源 -->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName">
<value>net.sourceforge.jtds.jdbc.Driver</value>
</property>
<property name="url">
<value>jdbc:jtds:sqlserver://localhost:1433/test</value>
</property>
<property name="username">
<value>sa</value>
</property>
<property name="password">
<value>sa</value>
</property>
<property name="maxActive">
<value>10</value>
</property>
<property name="maxIdle">
<value>2</value>
</property>
<property name="maxWait">
<value>300</value>
</property>
</bean>
/////////////////// dataSource:配置你的数据源连接
<bean id="sqlMapClient"
class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
<property name="configLocation">
<value>SqlMap_config.xml</value>
</property>
<property name="dataSource"><!-- 从指定dataSource中获取数据源 亦可把该定义放到每个自定义Dao中-->
<ref bean="dataSource" />
</property>
</bean>
//////////////////// sqlMapClient:集成ibatis配置文件和把数据源与ibatis相关联
<!-- 配置事务管理 -->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource">
<ref local="dataSource" />
</property>
</bean>
///////////////// transactionManager:配置事务管理
<!--公共组件-->
<import resource="spring_other.xml" />
////////////把用户自定义Bean与基本bean分开,集成进去spring_other.xml文件
</beans>
以上是spring 把一些ibatis相关配置集成到自己的配置文件里面
Spring_other.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean id="userService" class="com.user.UserServiceImpl">
<property name="transactionManager">
<ref bean="transactionManager" />
</property>
<property name="userDao">
<ref local="userDao" />
</property>
</bean>
////////////////////////使用service管理所有用户自定义bean和Dao操作,用来设置事务回滚,线程安全等。
<bean id="userDao" class="com.user.dao.UserDaoImpl">
<property name="sqlMapClient" ref="sqlMapClient"/>
</bean>
///////////////用户自定义Dao操作,因spring_base.xml中sqlMapClient已经把dataSource包含,故dataSource不再声明,如果该操作需要别的数据连接,可加入例如:
////////<property name=”dataSource1” ref=”dataSource1”/>//////////
</beans>
Spring_other.xml存放用户自定义bean
SqlMap_config.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE sqlMapConfig
PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN"
"http://ibatis.apache.org/dtd/sql-map-config-2.dtd">
<sqlMapConfig>
<settings lazyLoadingEnabled="true"
useStatementNamespaces="true"
enhancementEnabled="true"
errorTracingEnabled="true"
/>
相关专题
- 路由安全配置专题 (12483篇文章)
- 系统安全设置 (24954篇文章)
- 配置安全的操作系统 (10538篇文章)
- 打造安全服务器 (13997篇文章)
- MySQL安全 (10466篇文章)
- Spring开源框架技术 (887篇文章)
- 电子邮件安全 (8896篇文章)
- SSH安全技术 (8745篇文章)
- 数据库安全技术专题 (13981篇文章)
- FreeBSD系统安全管理 (9305篇文章)
- Java远程通讯的6种可选技术及原理 (279次浏览)
- struts2 + spring + hibernate 实现CRUD (217次浏览)
- Spring 与 Log4J 进行动态日志配置切换 (182次浏览)
- 初学者对Hibernate的学习方法 (168次浏览)
- Hibernate的映射关联关系 (154次浏览)
- MyEclipse搞定hibernate的web应用 (104次浏览)
- 多动鼠标少动脑,Java报表工具的简约之美 (92次浏览)
- 多种计时器的比较与分析 (90次浏览)
- 没有父类的Java Class是如何从Object继承的 (88次浏览)
- JAVA Calendar方法详解 (87次浏览)



