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一定要改成其他名称,否则会在应用加载时候报错。

 

posted @ 2015-06-19 22:33  世间安得两全法  阅读(196)  评论(0编辑  收藏  举报