引入dtd约束
正常我们编码的时候 Alt+/ 会有提示信息告诉我们有哪些标签我们可以使用。但是在全局配置文件中,我们发现没有任何提示信息,所以这个时候我们需要引入dtd约束。方法很简单,就是下图标记的dtd链接,我们按住ctrl并单击他进行下载,这个时候我们的配置文件就会有提示信息了!
接下来就是介绍一些常用的标签了,我们需要注意的是在全局配置文件中,标签是有顺序的,不能随意更改标签的位置,我们可以通过点击configuration标签来查看标签的顺序。
properties标签
mybatis可以使用properties来引入外部的properties配置文件的内容,大部分情况是引入我们的数据库配置信息。
1、resource : 引入类路径下的资源
2、url : 引入网络路径或者磁盘路径下的资源
<properties resource="dbconfig.properties"></properties>
settings标签
settings包含很多重要的设置项;比如驼峰命名、缓存等,具体的可以看官方文档,有详细说明。
setting 用来设置每一个设置项
name:设置名
value:设置项取值
<settings>
<setting name="mapUnderscoreToCamelCase" value="true"/>
</settings>
typeAliases标签
typeAliases:别名处理器;为我们的java类型起别名;一共有三种起别名的方式;注意别名不区分大小写!
例如mapper.xml文件中我们sql语句的返回值类型我们就可以用这边的别名替换
<typeAliases>
<!--
(1)typeAlias:为某个Java类型起别名
type:指定要取别名的类型全类名;默认别名就是类型小写
alias:指定新的别名
-->
<!-- <typeAlias type="cc_study.pojo.Employee" alias="testAlias"/> -->
<!--
(2)package:为某个包下的所有l类批量起别名
name:指定包名(为当前包下的所有类起别名,默认类名小写 )
-->
<package name="cc_study.pojo"/>
<!-- (3)在类中使用Alias注解指定新的别名 -->
</typeAliases>
environments标签
<!--
environments:mybatise可以配置多种环境,default指定使用某种环境。
environment:配置一个具体的环境信息,必须有两个标签;id代表当前环境的唯一标识
transactionManager:事务管理器
type:事务管理器的类型(jdbc,managed)
dataSource:数据源
-->
<environments default="development">
<environment id="development">
<transactionManager type="JDBC" />
<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>
databaseIdProvider标签
<!--
databaseIdProvider:支持多数据库厂商
type="DB_VENDOR":作用得到数据库厂商的标识,mybatis根据不同的厂商标识执行不同的sql
在mapper映射文件中指定该语句是用哪个数据库的语句:在select标签中有一个databaseId属性,我们设置成下面取好的别名就可以一一对应了
-->
<databaseIdProvider type="DB_VENDOR">
<!-- 为不同的厂商起别名 -->
<property name="MySQL" value="mysql"/>
<property name="Oracle" value="oracle"/>
</databaseIdProvider>
mappers标签
将sql映射注册在全局配置文件中
<mappers>
<!--
mapper:注册一个sql映射
注册配置文件
resource:引用路径下的sql映射文件
url:引用网络或者磁盘路径
注册接口
class:引用(注册)接口
1、有sql映射文件,映射文件名必须和接口同名,并且放在接口同一目录下
2、没有sql映射文件,所有的sql利用注解写在接口上
建议:重要的Dao接口推荐使用xml映射文件,不重要的简单的为了快速开发可以使用注解。
因为直接使用注解后期维护不方便,写比较复杂的语句也不是很方便
-->
<mapper resource="EmployeeMapper.xml" />
<mapper class="cc_study.mapper.EmployeeMapperAnnotation"/>
<!-- 批量注册:这个时候映射文件和接口文件应该在同一目录下 -->
<!-- <package name="cc_study.mapper"/> -->
</mappers>
注解方式:
public interface EmployeeMapperAnnotation {
@Select("select * from employee where id =#{id}")
Employee getEmpById(Integer id);
}