准备依赖:

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project xmlns="http://maven.apache.org/POM/4.0.0"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  5. <modelVersion>4.0.0</modelVersion>
  6. <groupId>com.st</groupId>
  7. <artifactId>spring-MyBatis</artifactId>
  8. <version>1.0-SNAPSHOT</version>
  9. <dependencies>
  10. <!--测试 -->
  11. <dependency>
  12. <groupId>junit</groupId>
  13. <artifactId>junit</artifactId>
  14. <version>4.12</version>
  15. </dependency>
  16. <!-- spring的依赖 -->
  17. <dependency>
  18. <groupId>org.springframework</groupId>
  19. <artifactId>spring-context</artifactId>
  20. <version>5.2.9.RELEASE</version>
  21. </dependency>
  22. <dependency>
  23. <groupId>org.springframework</groupId>
  24. <artifactId>spring-aspects</artifactId>
  25. <version>5.2.9.RELEASE</version>
  26. </dependency>
  27. <!-- MyBatis的依赖 -->
  28. <dependency>
  29. <groupId>org.mybatis</groupId>
  30. <artifactId>mybatis</artifactId>
  31. <version>3.4.6</version>
  32. </dependency>
  33. <!-- spring整合MyBatis的中间包 -->
  34. <dependency>
  35. <groupId>org.mybatis</groupId>
  36. <artifactId>mybatis-spring</artifactId>
  37. <version>1.3.2</version>
  38. </dependency>
  39. <dependency>
  40. <groupId>org.springframework</groupId>
  41. <artifactId>spring-jdbc</artifactId>
  42. <version>5.2.9.RELEASE</version>
  43. </dependency>
  44. <!--连接数据库-->
  45. <dependency>
  46. <groupId>mysql</groupId>
  47. <artifactId>mysql-connector-java</artifactId>
  48. <version>5.1.47</version>
  49. </dependency>
  50. <!-- https://mvnrepository.com/artifact/com.alibaba/druid -->
  51. <!--德鲁伊连接池-->
  52. <dependency>
  53. <groupId>com.alibaba</groupId>
  54. <artifactId>druid</artifactId>
  55. <version>1.1.10</version>
  56. </dependency>
  57. </dependencies>
  58. </project>

spring的配置文件

[1]配置数据源

<!-- 引入外部资源文件 -->
<context:property-placeholder location="classpath:db.properties"/>
<!-- 配置数据源 -->
<bean id="datasource" class="com.alibaba.druid.pool.DruidDataSource">
  <property name="url" value="${url}"/>
  <property name="driverClassName" value="${driver}"/>
  <property name="username" value="${username}"/>
  <property name="password" value="${password}"/>
  <!-- 可以继续配置其他属性 -->
</bean>

[2]配置sqlSessionFactory

<!-- 配置sqlSessionFactory -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
    <!-- 注入数据源 -->
    <property name="dataSource" ref="datasource"/>
    <!-- 别名包 -->
    <property name="typeAliasesPackage" value="com.st.pojo"/>
   <property name="configLocation" value="classpath:mybatis-config.xml"/>
</bean>

<!-- 配置一个mapper的扫描bean -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
  <!-- 配置mapper所在包 -->
  <property name="basePackage" value="com.st.mapper"/>
</bean>

[3]配置扫描包

<!-- 配置扫描包 -->
<context:component-scan base-package="com.st"/>

在POM文件中添加如下的内容

<build>
    <resources>
        <resource>
            <directory>src/main/resources</directory>
            <excludes>
                <exclude>**/*.properties</exclude>
                <exclude>**/*.xml</exclude>
            </excludes>
            <filtering>false</filtering>
        </resource>
        <!-- 如果不配置,默认情况下,不会将java目录下的资源文件打包 -->
        <resource>
            <directory>src/main/java</directory>
            <includes>
                <include>**/*.properties</include>
                <include>**/*.xml</include>
            </includes>
            <filtering>false</filtering>
        </resource>
    </resources>
</build>

一个小坑:
在db.properties中我们使用username属性作为数据库的用户名:

username = root

在spring的配置文件中,使用${username}获取,默认获取的是操作系统得以用户名。所以这里无法获取我们db.properties中的属性值。

我们修改为jdbc.username解决问题:

jdbc.url=jdbc:mysql://localhost:3306/mis
jdbc.username=root
jdbc.password=root