常用标签介绍
-
<properties resource="source/mybatis.properties"></properties>
properties标签作用为引入外部的配置文件,从而将数据的连接信息分离出去 -
<settings>
settting 标签中有很多属性,最常用的就是驼峰属性name=“mapUnderscoreToCamelCase”,默认false,
一般我们在写java代码中的变量命名规范都是驼峰,方法则是下滑线,数据库里的列名一般也是用下划线的,
如果说驼峰属性不改成true,就会导致Java开发人员的变量StudentId和数据库中的student_id,无法一一对应,
既然导致我们的程序无法通过mybatis查询出正确的结果 -
<typeAliases>
- 日常业务中的需要映射的sql语句,肯定会有很多条,但Mapper.xml文件中返回类型建议大家写成全类名,
然而全类名写起来又特别麻烦,可以按照<typeAlias type="model.sutdent" alias="student"/>
这样的方式添加别名,
从而我们在mapper.xml映射文件中的返回类型 就只用填写student了! - 如果我们的model下有多个实体,则可给包起别名
<package name="model"></package>
,
那么我们此时的mapper.xml映射文件中的返回类型直接写实体的类名就可以了。 - 当项目较大时,多个包下都有student属性话,则只能再 实体类.java的类名上添加注解的方式
@Alias("别名X")
,Mapper映射文件中的返回类型则应写成"别名X"。
model --student --teacher --parent 那么别名:<package name="model"></package> Mapper.xml文件 可以写成: <select id="getStudentId" resultType="student"> select * from mybatis_test where id = #{id} </select> <select id="getTeacherId" resultType="teacher"> select * from mybatis_test where id = #{id} </select> <select id="getParentId" resultType="parent"> select * from mybatis_test where id = #{id} </select>
- 日常业务中的需要映射的sql语句,肯定会有很多条,但Mapper.xml文件中返回类型建议大家写成全类名,
-
<typeHaddlers>
主要就是Mybatis用来处理数据库和实体之间的类型转换的类型处理器,主要关注点请看官网截图:
但日常业务中经常会遇到需要自定义处理器,稍后章节更新后,再在这里添加链接! -
<plugin>
插件标签:主要作用简单说就是拦截映射语句执行过程进行拦截从而做出特定的操作,
官网先了解下主要的对象,稍后篇章再给出具体实例!
-
<environments>
environments标签可以算的上日常开发中最有用的标签了,从下面的配置文件中,
我们可以看到environments的字标签environment会有一个标签属性id,
日常业务中,我们就可以通过environment的id属性灵活切换我们需要的环境! -
<databaseIdProvider>
databaseIdProvider标签可以让我们通过配置来执行不容数据库的sql语句,
参考下面配置文件,DB_VENDOR可以认为是代表数据库类型的标识,
Mybatis通过内部逻辑会返回一个具体数据库厂商标识来表明使用哪个数据库的sql语句,
添加此标签后,mapper文件中的sql语句标签内需要添加databaseId来标识是执行哪个数据库语句,
<property name="SQL Server" value="sqlserver"/>
代表别名,mapper文件中的databaseId配置别名即可!
例如:
<select id="getBlogerId" resultType="Bloger" databaseId="mysql">
select * from mybatis_test where id = #{id}
</select>
<mappers>
mappers:主要负责注册映射关系(绑定接口与sql),如配置文件,一共有两种注册方式
1 配置文件注册,使用resource
2 接口注册,使用class
前者在配置文件中维护sql映射,后者则直接通过注解的方式在接口上进行sql语句的映射
实际中根据项目需要选择不同的注册方式。
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<!--通过properties配置将对应配置信息注入到config文件中 -->
<properties resource="source/mybatis.properties"></properties>
<settings>
<setting name="mapUnderscoreToCamelCase" value="true"/>
<setting name="logPrefix" value="[MybatisLogs]" />
<setting name="defaultStatementTimeout" value="1" />
</settings>
<typeAliases>
<!-- <typeAlias alias="Bloger" type="model.Bloger" /> -->
<typeAlias type="model.sutdent" alias="student"/>
<!-- <package name="model"></package> -->
</typeAliases>
<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 type="DB_VENDOR">
<property name="SQL Server" value="sqlserver"/>
<property name="DB2" value="db2"/>
<property name="Oracle" value="oracle" />
</databaseIdProvider>
<mappers>
<!--在全局配置文件中注册映射文件 -->
<mapper resource="source/BlogMapper.xml"/>
<mapper class="dao.BlogerMapper"/>
</mappers>
</configuration>
最后,建了一个微信群,本来想大家一起共同学习,但学习气氛好像目前还不算特别好,加群主微信进群!
最后,建了一个微信群,本来想大家一起共同学习,但学习气氛好像目前还不算特别好,加群主微信进群!(由于广告太多,所以请先点赞,然后发博客名!)