一、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语句。