1. properties 标签

可以引入外部配置文件

可以将数据库的连接信息抽取到一个配置文件中进行维护
新建 jdbc.properties

  1. jdbc.url = jdbc:mysql://81.68.241.238:3306/mybatis
  2. jdbc.username = root
  3. jdbc.password = 123456
  4. jdbc.driver = com.mysql.cj.jdbc.Driver

2. settings

MyBatis 中极为重要的配置,会改变 MyBatis 的运行时行为。

开启驼峰命名自动映射

  1. <settings>
  2. <!-- 开启驼峰命名自动映射 -->
  3. <setting name="mapUnderscoreToCamelCase" value="true "/>
  4. <!-- 打印查询语句 -->
  5. <setting name="logImpl" value="STDOUT_LOGGING" />
  6. </settings>

数据库字段 user_phone 实体类为 userPhone

开启前后的差距
User(id=1, name=Jone, email=test1@baomidou.com, userPhone=null)
User(id=1, name=Jone, email=test1@baomidou.com, userPhone=111)

3. environments

该标签用于配置多个数据库 例如本地,测试,生产。

  1. <environments default="development">
  2. <environment id="development">
  3. <transactionManager type="JDBC"/>
  4. <dataSource type="POOLED">
  5. <property name="url" value="${dev.jdbc.url}"/>
  6. <property name="username" value="${dev.jdbc.username}"/>
  7. <property name="password" value="${dev.jdbc.password}"/>
  8. <property name="driver" value="${dev.jdbc.driver}"/>
  9. </dataSource>
  10. </environment>
  11. <environment id="prod">
  12. <transactionManager type="JDBC"></transactionManager>
  13. <dataSource type="POOLED">
  14. <property name="url" value="${prod.jdbc.url}"/>
  15. <property name="username" value="${prod.jdbc.username}"/>
  16. <property name="password" value="${prod.jdbc.password}"/>
  17. <property name="driver" value="${prod.jdbc.driver}"/>
  18. </dataSource>
  19. </environment>
  20. </environments>

可以看到配置了两个environment dev 和 prod

为了指定创建哪种环境,只要将它作为可选的参数传递给 SqlSessionFactoryBuilder 即可。
return new SqlSessionFactoryBuilder().build(inputStream, environment).openSession(true);

如果忽略了环境参数,那么将会加载默认环境(default的值)