一、Maven依賴
- spring-jdbc
- spring-tx
- mysql-connector-java
- mybatis
- mybatis-spring
- druid 或 其他數據庫連接池
- 如果需要分頁,可以再引入 pagehelper 分頁插件【非必須引入】
代碼:
<!-- spring-jdbc : jdbcTemplate -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>5.0.7.RELEASE</version>
</dependency>
<!-- spring-tx : 事務 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>5.0.7.RELEASE</version>
</dependency>
<!-- mysql -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.46</version>
</dependency>
<!-- mybatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.6</version>
</dependency>
<!-- mybatis-spring -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.3.2</version>
</dependency>
<!-- 數據庫連接池 c3p0、dbcp、druid、hikariCP-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.10</version>
</dependency>
<!-- pageHelper -->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.1.10</version>
</dependency>
二、需要配置的Bean對象
需要將以下Bean對象,配置到Root容器中,也就是父容器,而不是SpringMVC子容器中。
- 數據源
- SqlSessionFactoryBean
- MapperScannerConfigurer
代碼:
<!-- 1. 數據源 -->
<!-- 驅動名稱、鏈接地址、用戶名、密碼 -->
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://127.0.0.1:3306/et1909?serverTimezone=GMT" />
<property name="username" value="root" />
<property name="password" value="root" />
</bean>
<!-- 2. SqlSessionFactoryBean -->
<!-- 屬性: Bean別名、數據源、mapper位置、插件 【config.xml】-->
<!-- typeAliasesPackage\dataSource\mapperLocations\plugins -->
<bean name="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="mapperLocations" value="classpath:mappers/*.xml" />
<property name="typeAliasesPackage" value="com.golden.bean" />
<property name="plugins">
<array>
<!--5.0版本前是PageHelper-->
<bean class="com.github.pagehelper.PageInterceptor">
<!-- 調用setProperties()方法 -->
<property name="properties">
<props>
<!--指定使用的是什麼數據庫-->
<prop key="helperDialect">mysql</prop>
<!--是否開啓頁數溢出保護-->
<prop key="resonable">true</prop>
</props>
</property>
</bean>
</array>
</property>
</bean>
<!-- 3. MapperScannerConfigurer: 掃描mapper接口,創建代理類,並將代理類加載到spring容器中 -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.golden.mapper" />
<!--如果有多個FactoryBean的話,可以使用這種方式指定一下-->
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" />
</bean>
- 這裏我們使用的是Druid數據源;
- 配置Druid數據源中的SqlSessionFactory;
- 掃描指定包裏的接口,爲接口創建代理,並將代理類加載到 spring容器中,用於執行sql語句。