spring整合mybatis(idea版)

zangerqiang發表於2020-12-08

1、建立maven專案
建立專案很簡單這裡不再贅述。

2、匯入依賴
在pom.xml中匯入以下依賴

<!-- Mybatis 依賴 -->
<dependency>
	<groupId>org.mybatis</groupId>
	<artifactId>mybatis</artifactId>
	<version>3.5.5</version>
</dependency>
<!-- Mypatis-Spring 依賴 -->
<dependency>
	<groupId>org.mybatis</groupId>
	<artifactId>mybatis-spring</artifactId>
	<version>2.0.5</version>
</dependency>
<!-- PageHelper 依賴(如果需要) -->
<dependency>
	<groupId>com.github.pagehelper</groupId>
	<artifactId>pagehelper</artifactId>
	<version>5.2.0</version>
</dependency>

3、配置applicationContext.xml
在src/main/java/resources下建立applicationContext.xml,並新增如下 配置

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:context="http://www.springframework.org/schema/context"
	xmlns:aop="http://www.springframework.org/schema/aop"
	xmlns:tx="http://www.springframework.org/schema/tx"
	xmlns:mvc="http://www.springframework.org/schema/mvc"
	xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
        http://www.springframework.org/schema/context
		http://www.springframework.org/schema/context/spring-context-4.0.xsd
		http://www.springframework.org/schema/aop
		http://www.springframework.org/schema/aop/spring-aop-4.0.xsd
		http://www.springframework.org/schema/tx
		http://www.springframework.org/schema/tx/spring-tx-4.0.xsd
		http://www.springframework.org/schema/mvc
		http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd">
		
		<!-- 啟用自動掃描 -->
	<context:component-scan	base-package="com.zangerqiang.service.impl" />
	<!-- 引入外部的配置檔案 -->
	<context:property-placeholder location="config.properties" />

	<!--HikariCP資料來源 -->
	<bean id="dataSourceHikariCP" class="com.zaxxer.hikari.HikariDataSource">
        <property name="driverClassName" value="${driverName}" />
        <property name="jdbcUrl" value="${url}" />
        <property name="username" value="${user}" />
        <property name="password" value="${password}" />
        <!-- 連線只讀資料庫時配置為true, 保證安全 -->
        <!-- <property name="readOnly" value="false" /> -->
        <!-- 等待連線池分配連線的最大時長(毫秒),超過這個時長還沒可用的連線則發生SQLException, 預設:30-->
        <property name="connectionTimeout" value="30000" />
        <!-- 一個連線idle狀態的最大時長(毫秒),超時則被釋放(retired),預設:10分鐘 -->
        <property name="idleTimeout" value="600000" />
        <!-- 一個連線的生命時長(毫秒),超時而且沒被使用則被釋放(retired),預設:30分鐘,建議設定比資料庫超時時長少30秒,參考MySQL 
            wait_timeout引數(show variables like '%timeout%';-->
        <property name="maxLifetime" value="1800000" />
        <!-- 連線池中允許的最大連線數。預設值:10;推薦的公式:((core_count * 2) + effective_spindle_count) -->
        <property name="maximumPoolSize" value="60" />
        <property name="minimumIdle" value="10" />
    </bean>
	
	<!-- 配置SqlSessionFactory -->
	<bean id="sqlSessionFactory"
		class="org.mybatis.spring.SqlSessionFactoryBean">
		<!-- 資料來源 -->
		<property name="dataSource" ref="dataSourceHikariCP" />
		<!-- 其它屬性 -->
		<property name="typeAliasesPackage" value="com.zangerqiang.entity" />
		<property name="typeHandlersPackage" value="com.zangerqiang.typehandler"/> 
		<property name="mapperLocations" value="mappers/*.xml"/>
		<property name="plugins">
			<array>
				<bean class="com.github.pagehelper.PageInterceptor">
					<property name="properties">
						<value> 
							helperDialect=mysql
							pageSizeZero=true
							reasonable=true
						</value>
					</property>
				</bean>
			</array>
		</property>
	</bean>
	
	<!-- 配置MapperScannerConfigurer -->
	<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
		<property 
		name="basePackage" value="com.zangerqiang.dao" />
	</bean>
	
	<!-- 配置事務管理器 -->
	<bean id="txManager"
		class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
		<property name="dataSource" ref="dataSourceHikariCP" />
	</bean>

	<!-- 開啟事務註解掃描 -->
	<tx:annotation-driven transaction-manager="txManager" />
	
	<!-- 掃描控制器所在的包 -->
	<context:component-scan
		base-package="com.zpark.controller" />

	<!-- 啟用註解配置 -->
	<mvc:annotation-driven />
</beans>		

4、總結
其實很簡單,大家可以慢慢琢磨。

相關文章