一、Mybatis配置文件 — properties标签
MyBatis配置文件结构: -configuration -properties(属性) -property -settings(全局配置参数) -setting -plugins(插件) -plugin -typeAliases(别名) -typeAliase -package -environments(环境) -environment -transactionManager(事务管理) -dataSource(数据源) -mappers(映射器) -mapper -package
properties 属性值定义。properties标签中可以定义属性值,也可以引入外部配置文件。无论是内部定义还是外部引入,都可以使用${name}获取值。 例如:我们可以将数据源配置写到外部的db.properties中,再使用properties标签引入外部配置文件,这样可以做到动态配置数据源。
① 编写db.properties
代码语言:javascript复制jdbc.driver = com.mysql.cj.jdbc.Driver
jdbc.url = jdbc:mysql://localhost:3306/mybatis
jdbc.username = root
jdbc.password = 666666
② 在配置文件中引入db.properties
代码语言:javascript复制 <properties resource="db.properties">
</properties>
<environments default="mysql">
<environment id="mysql">
<!-- 事务类型 -->
<transactionManager type="JDBC"></transactionManager>
<!-- 数据源 -->
<dataSource type="POOLED">
<property name="driver" value="${jdbc.driver}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</dataSource>
</environment>
</environments>
当然我们也可以将数据源数据通过 <properties> 配置到MyBatis配置文件内,但这样做没什么意义。
测试一下findAll方法是否测功执行
OK,说明了确实可以的。
二、Mybatis配置文件 — settings标签
<settings> 是配置MyBatis运行时的一些行为的,例如缓存、延迟加载、命名规则等一系列控制性参数。后期我们会使用该标签配置缓存和延迟加载等。
三、Mybatis配置文件 — plugins标签
<plugins> 是配置MyBatis插件的。插件可以增强MyBatis功能,比如进行sql增强,打印日志,异常处理等。后期我们会使用该标签配置分页插件。
四、Mybatis配置文件 — typeAliases标签
MyBatis对常用类有默认别名支持,比如java.lang.Stirng的别名为string。除此之外,我们也可以使用 <typeAliases> 设置自定义别名。
为一个类配置别名,如下图所示
代码语言:javascript复制<typeAliases>
<typeAlias type="全类名" alias="别名"></typeAlias>
</typeAliases>
此时我们即可在映射文件中使用自定义别名,如帮User类配置一个别名 ① 配置文件:
代码语言:javascript复制 <typeAliases>
<typeAlias type="com.mybatisstudy.pojo.User" alias="User"></typeAlias>
</typeAliases>
② 映射文件:
代码语言:javascript复制 <select id="findAll" resultType="User">
select * from user
</select>
③ 测试findAll方法:
OK,同样是可以执行的,说明该方法可以使用 。
为一个所有包下的所有类配置别名
代码语言:javascript复制<typeAliases>
<package name="包名"></package>
</typeAliases>
此时该包下的所有类都有了别名,别名省略包名,和类名相同。
如:
① 配置文件:
代码语言:javascript复制 <typeAliases>
<package name="com.mybatisstudy.pojo"/>
</typeAliases>
② 映射文件:
代码语言:javascript复制 <select id="findPage2" resultType="User" parameterType="PageQuery">
select * from user limit #{startIndex},#{pageSize}
</select>
③ 测试结果:
OK,同样可以运行,说明该方法也可以使用。
五、Mybatis配置文件 — environments标签
<environments> 可以为 MyBatis 配置数据环境。
事务管理
代码语言:javascript复制<environments default="mysql">
<environment id="mysql">
<!-- JDBC:使用JDBC的提交和回滚MANAGED:不做事务处理-->
<transactionManager type="JDBC"></transactionManager>
</environment>
</environments>
连接池
代码语言:javascript复制<environments default="mysql">
<environment id="mysql">
<transactionManager type="JDBC"></transactionManager>
<!-- 连接池设置 -->
<dataSource type="POOLED">
<!-- 数据源设置... -->
</dataSource>
</environment>
</environments>
dataSource的type属性:
- POOLED:使用连接池管理连接,使用MyBatis自带的连接池。
- UNPOOLED:不使用连接池,直接由JDBC连接。
- JNDI:由JAVAEE服务器管理连接,如果使用Tomcat作为服务器则使用Tomcat自带的连接池管理。
六、Mybatis配置文件 — mappers标签
<mappers> 用于注册映射文件或持久层接口,只有注册的映射文件才能使用,共有四种方式都可以完成注册:
① 使用相对路径注册映射文件
代码语言:javascript复制 <mappers>
<mapper resource="com/mybatisstudy/mapper/UserMapper.xml"></mapper>
</mappers>
② 使用绝对路径注册映射文件
代码语言:javascript复制<mappers>
<mapper url="file:///C:javaProjectsmybatiscasemybatisDemo1srcmainresourcescomitbaizhanmapperUserMapper.xml"/>
</mappers>
③ 注册持久层接口
代码语言:javascript复制<mappers>
<mapper class="com.itbaizhan.mapper.UserMapper"/>
</mappers>
④ 注册一个包下的所有持久层接口
代码语言:javascript复制<mappers>
<package name="com.itbaizhan.mapper"/>
</mappers>
我正在参与2023腾讯技术创作特训营第三期有奖征文,组队打卡瓜分大奖!