Spring集成Mybatis

一、配置数据源

<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">
        <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
        <property name="url" value="${db.bbs.url}"/>
        <property name="username" value="${db.bbs.username}"/>
        <property name="password" value="${db.bbs.password}"/>
        <!-- 配置初始化大小、最小、最大 -->
        <property name="initialSize" value="${db.bbs.initialSize}"/>
        <property name="minIdle" value="${db.bbs.minIdle}"/>
        <property name="maxActive" value="${db.bbs.maxPoolSize}"/>
        <!-- 配置获取连接等待超时的时间 --> 
        <property name="maxWait" value="60000"/>
        
        <!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 --> 
        <property name="timeBetweenEvictionRunsMillis" value="3000"/>
        <!-- 配置一个连接在池中最小生存的时间,单位是毫秒 --> 
        <property name="minEvictableIdleTimeMillis" value="300000"/>
        <property name="validationQuery" value="SELECT 'x'"/>
        <property name="testWhileIdle" value="true"/>
        
        <!-- 这里建议配置为true,防止取到的连接不可用 --> 
        <property name="testOnBorrow" value="true"/>
        <property name="testOnReturn" value="false"/>
        
        <!-- 打开PSCache,并且指定每个连接上PSCache的大小 --> 
        <property name="poolPreparedStatements" value="true"/>
        <property name="maxPoolPreparedStatementPerConnectionSize" value="20"/>
        
        <!-- 获取数据库连接的时候执行sql:set names utf8mb4; -->
        <property name="connectionInitSqls" value="set names utf8mb4 ;"/>
        
        <!-- 配置监控统计拦截的filters -->
        <property name="filters" value="stat"/>
        <!-- 配置关闭长时间不使用的连接 -->
        <!-- 是否清理removeAbandonedTimeout秒没有使用的活动连接,清理后并没有放回连接池(针对未被close的活动连接) -->
        <property name="removeAbandoned" value="true"/>
        <!-- 活动连接的最大空闲时间,1800秒,也就是30分钟 -->
        <property name="removeAbandonedTimeout" value="1800"/>
        <!-- 连接池收回空闲的活动连接时是否打印消息 -->
        <property name="logAbandoned" value="true"/>
    </bean>    

二、配置SqlSessionFactory

<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource"/>
        <!--Mybatis全局配置-->
        <property name="configLocation" value="classpath:spring/mybatis-config.xml"/>
        <!--model路径-->
        <property name="typeAliasesPackage" value="com.wslook.model"/>
        <property name="mapperLocations">
            <list>
                <value>classpath:mapper/*.xml</value>
            </list>
        </property>
        <property name="plugins">
            <array>
                <bean class="com.github.pagehelper.PageInterceptor">
                    <property name="properties">
                        <value>
                            helperDialect=mysql
                            reasonable=true
                        </value>
                    </property>
                </bean>
            </array>
        </property>
    </bean>

 

三、Mybatis全局配置文件(非必须)

<configuration>

    <settings>
        <!-- Globally enables or disables any caches configured in any mapper under this configuration -->
        <setting name="cacheEnabled" value="true"/>
        <!-- Sets the number of seconds the driver will wait for a response from the database -->
        <setting name="defaultStatementTimeout" value="3000"/>
        <!-- Enables automatic mapping from classic database column names A_COLUMN to camel case classic Java property names aColumn -->
        <setting name="mapUnderscoreToCamelCase" value="true"/>
        <!-- Allows JDBC support for generated keys. A compatible driver is required.
        This setting forces generated keys to be used if set to true,
         as some drivers deny compatibility but still work -->
        <setting name="useGeneratedKeys" value="true"/>
    </settings>

    <!-- Continue going here -->
    <plugins>
        <plugin interceptor="com.github.pagehelper.PageInterceptor">
            <property name="dialect" value="mysql"/>
            <property name="pageSizeZero" value="true"/>
            <!-- 如果pageNum<1会查询第一页,如果pageNum>pages会查询最后一页(false返回空);-->
            <property name="reasonable" value="true"/>
        </plugin>
    </plugins>

</configuration>

四、配置mapper路径

<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
    <property name="basePackage" value="com.wslook.dao"/>
</bean>

 

五、配置sqlSessionTemplate(非必须)

<bean id="sqlSessionTemplate" class="org.mybatis.spring.SqlSessionTemplate">
    <constructor-arg index="0" ref="sqlSessionFactory" />
</bean>

 

posted @ 2018-06-14 22:58  时间-海  阅读(183)  评论(0编辑  收藏  举报