<environments>
可以配置多个连接数据库的环境
default
default 属性指明了默认使用的环境 id
多个 environment 示例
<configuration>
<!--设置连接数据库的环境-->
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.cj.jdbc.Driver"/>
<property name="url"
value="jdbc:mysql://localhost:3306/mybatis?characterEncoding=utf8"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</dataSource>
</environment>
<environment id="test"></environment>
</environments>
<!--引入映射文件-->
<mappers>
<mapper resource="mappers/UserMapper.xml"/>
</mappers>
</configuration>
<environment>
配置某个具体的环境
id
表示连接数据库的环境的唯一标识,不能重复
<transactionManager>
设置事务管理方式
type
- JDBC: 表示当前环境中,执行 SQL 时,使用的是 JDBC 中原生的事务管理方式,即事务的提交或者回滚需要手动处理
- MANAGED:设置事务被管理,如通过 Spring
<dataSource>
配置数据源
type
- POOLED:表示使用数据库连接池,即会将创建的连接进行缓存,下次使用可以从 缓存中直接获取,不需要重新创建
- UNPOOLED:表示不使用数据库连接池缓存数据库连接,每次使用连接都需要重新创建
- JNDI:表示使用上下文中的数据源
<property>
设置连接数据库驱动、链接地址、用户名、密码等
在这里是直接指定了具体的内容:
<property name="driver" value="com.mysql.cj.jdbc.Driver"/>
<property name="url"
value="jdbc:mysql://localhost:3306/mybatis?characterEncoding=utf8"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
也可以将这些值写在配置文件里,比如在 jdbc.properties 中:
jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/mybatis?characterEncoding=utf8
jdbc.username=root
jdbc.password=root
使用 jdbc.
作为前缀是因为可能有多个连接,用前缀加以区分
但是写好配置文件后,为了让 mybatis-config 能够读取到,还需要在 mybatis-config.xml 中引入配置文件:
<properties resource="jdbc.properties"/>
然后使用 ${属性名}
,就可以读取到指定的配置内容:
<property name="driver" value="${jdbc.driver}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
<typeAliases>
MyBatis 核心配置文件的标签顺序
properties、settings、typeAliases、typeHandlers、objectFactory、objectwrapperFactory、reflectorFactory、plugins、environments、databaseIdProvider、mappers
所以 typeAliases 需要放在 properties 之后
typeAliases 包含多个具体类型的别名
<typeAlias>
用于设置某个具体的类型的别名
<typeAliases>
<typeAlias type="com.atguigu.mybatis.pojo.User" alias="User"/>
</typeAliases>
设置了全类名为 com.atguigu.mybatis.pojo.User
的别名为 User
,这样在 mapper.xml 中就可以使用别名来替换全类名,注意类型别名不区分大小写。
<!--User getUserById();-->
<select id="getUserById" resultType="User">
select *
from t_user
where id = 3
</select>
<!--List<User> getAllUser();-->
<select id="getAllUser" resultType="User">
select *
from t_user
</select>
在 typeAlias 中 type 是必须要指定的,且 tyep 为全类名,而 alias 可以不指定,不指定的话就会采用默认的别名,即类名,且不区分大小写
<package>
以包为单位,将包下所有的类型设置默认的类型别名,这个更常用点
<typeAliases>
<package name="com.atguigu.mybatis.pojo"/>
</typeAliases>
<mappers>
主要用来引入映射文件,可以以包为单位引入映射文件
<mappers>
<package name="com.atguigu.mybatis.mapper"/>
</mappers>
但是这么做需要符合两个条件:
- mapper 接口所在的包要和映射文件所在的包一致
- mapper 接口要和映射文件的名字一致
并且在 resources 中创建包的方式为:
目录中间要用斜杠隔开
标签:MyBatis4,jdbc,配置文件,数据库,别名,详解,mybatis,连接 From: https://www.cnblogs.com/ShaunY/p/17233491.html