mybatis配置
mybatis在spring下总共有两种方式,一种是接口映射xml,一种是实现接口类,调用sqlsession相应的方法。这边文章主要讲接口映射xml这种。
spring配置:
<!-- 使用jdbc.properties的数据源时打开--> <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close"> <property name="driverClass" value="${jdbc.driverClassName}"/> <property name="jdbcUrl" value="${jdbc.url}"/> <property name="user" value="${jdbc.username}"/> <property name="password" value="${jdbc.password}"/> <property name="maxIdleTime" value="${maxIdleTime}"/> <property name="maxPoolSize" value="${maxPoolSize}"/> <property name="minPoolSize" value="${minPoolSize}"/> <property name="initialPoolSize" value="${initialPoolSize}"/> <property name="idleConnectionTestPeriod" value="${idleConnectionTestPeriod}"/> </bean> <bean id="hmSqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource"/> <property name="configLocation" value="classpath:mybatis.xml"/> <property name="mapperLocations"> <list> <value>classpath:mapper/**/*.xml</value> </list> </property> </bean> <bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate"> <constructor-arg index="0" ref="hmSqlSessionFactory"/> <constructor-arg index="1" value="BATCH"/> </bean> <!--使用MapperScannerConfigurer去扫描接口--> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <!--如果是多个的话,使用英文,分割--> <property name="basePackage" value="com.test.dao" /> <!-- sqlsession要换名字 sqlSessionFactoryBeanName要用value,不能用ref,否则程序会报异常 --> <property name="sqlSessionFactoryBeanName" value="hmSqlSessionFactory" /> </bean>
mybatis.xml配置:
<?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="cacheEnabled" value="true"/> <setting name="defaultStatementTimeout" value="100"/> </settings> <!-- 注意放置顺序,typeAliases必须放到 environments前 --> <typeAliases> <!--自动将目录下的class映射,相当于typeAlias功能--> <package name="com.test.entity"/> </typeAliases> </configuration>
编写接口:
@Repository("alarmLogDao") public interface AlarmLogDao{ //编写相应的方法 }
xml配置:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.test.dao.common.AlarmLogDao"> //mybatis相应的sql </mapper>
按照上述配置就可以实现接口映射到xml了。其中要注意的事项是sqlSessionFactory一定要改成其他名称,否则会在应用加载时候报错。