• 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>
  • 相关阅读:
    docker tar 镜像 容器相互转换
    JavaScript执行上下文
    JavaScript 作用域
    原型与原型链
    使用Navicat for Oracle新建表空间、用户及权限赋予
    PL/SQL Developer使用教程(中文)
    一步一步使用bootstrap开发一个博客模板
    How to create a simple blog using ASP.NET MVC
    一个有意思的编程网站
    一个很好的java编程国外网站
  • 原文地址:https://www.cnblogs.com/wslook/p/9185377.html
Copyright © 2020-2023  润新知