Spring 整合ORM框架
使用mybatis提供的ORM机制,对业务逻辑实现人员来说,面对的是纯粹的Java对象,
<context: property-placeholder location="classpath: jbdc.properties"/>
导入properties文件.
配置SqlMapClient
每个mybatis的应用程序都以一个SQLSessionFactory对象的实例为核心,SQLSessionFactory的对象实例可以通过SqlSesssionFactoryBuilder对象来获得,SQLSessionFactoryBuilder可以从XML配置文件或者Configuration类的实例中构建SqlSessionFactory对象.
MySQL拥有多个SQL映射文件,并通过一个配置文件对这些SQL映射文件进行装配,同时在该文件中定义一些控制属性的信息,
1 2 3 4 5 6 7 8 9 10 11
| <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <settings> <setting name="useGeneratedKeys" value="true"/> <setting name="mapUnderscoreToCamelCase" value="true"/> </settings> </configuration>
|
在Spring中配置Mybatis
可以使用mybatis提供的mybatis-spring整合包实现Spring和Mybatis的整合,从功能上说,mbatis-spring完全符合Spring的风格,要在Spring中整合Mybatis,必须把mybatis-spring构件添加到pom.xml中.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| <?xml version="1.0" encoding="UTF-8" ?> <beans> <context:component-scan base-package="com.sysu.dao"/> <context:component-scan base-package="com.sysu.service"/> <context: property-placeholder location="classpath: jbdc.properties"/> <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close"> <property name="driverClass" value="com.mysql.jdbc.Driver"></property> <property name="jdbcUrl" value="${dataSource.url}"></property> <property name="user" value="${dataSource.username}"></property> <property name="password" value="${dataSource.password}"></property> <property name="idleConnectionTestPeriod" value="60" /> </bean> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource"/> <property name="mapperLocations" value="classpath:mapper/*.xml"/> <property name="typeAliasesPackage" value="org.Sysu.bean"/> <property name="configLocation" value="classpath:mybatis.xml"/> </bean> </beans>
|
mybatis-spring提供了一个sqlsessionFactoryBean,以便通过Spring风格创建mybatis的SqlsessionFactory,像上面配置文件的最后一个bean.mapperLoactions 属性快速扫描sql映射文件.
使用映射接口
mybatis提供了一种可将sql映射文件中的映射项通过名称匹配接口进行调用的方法,接口名称和映射命名空间相同,接口方法和映射元素的id相同.
定义好DAO接口后,如何通过该接口进行数据访问呢,mybatis-spring提供了转换器MapperScannerConfigurer,将映射接口直接变为spring容器中的bean,
1 2 3 4
| <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/> <property name="basePackage" value="org.Sysu.Dao"/> </bean>
|