[TOC]
说明:以下文字总结来源尚硅谷视频《MyBatis》https://www.bilibili.com/video/av34875242/?p=9
官网文档:http://www.mybatis.org/mybatis-3/zh/configuration.html#typeAliases
Settings标签
<?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>
<settings>
<!-- 开启驼峰命名法 -->
<setting name="mapUnderscoreToCamelCase" value="true" />
<!-- 允许使用方法签名中的名称作为语句参数名称。 为了使用该特性,你的项目必须采用 Java 8 编译
默认是true, 所以在mapper中方法中的参数,在sql的xml中可以直接使用。
-->
<setting name="useActualParamName" value="true" />
</settings>
</configuration>
typeAliases标签
<typeAliases>
<!--
type: 为某个java类型起别名,默认别名就是类的小写
alias: 为这个类取一个别名
但是感觉这种方式,在实际开发中不利于查看代码
-->
<typeAlias type="com.example.mybatisconfig.mysql.Student" alias="student"/></typeAliases>
内建的相应的类型别名
这是一些为常见的 Java 类型内建的相应的类型别名。它们都是不区分大小写的,注意对基本类型名称重复采取的特殊命名风格。注意默认的别名都是小写, 所以我们以后返回的时候可以不写java.lang.String
别名 | 映射的类型 |
---|---|
_byte | byte |
_long | long |
_short | short |
_int | int |
_integer | int |
_double | double |
_float | float |
_boolean | boolean |
string | String |
byte | Byte |
long | Long |
short | Short |
int | Integer |
integer | Integer |
double | Double |
float | Float |
boolean | Boolean |
date | Date |
decimal | BigDecimal |
bigdecimal | BigDecimal |
object | Object |
map | Map |
hashmap | HashMap |
list | List |
arraylist | ArrayList |
collection | Collection |
iterator | Iterator |
databaseIdProvider(动态切换数据库)
<!-- 支持多数据厂商,作用就是得到数据库厂商的标识,mybatis就能根据不同的数据库厂商标识执行不同的sql语句-->
<databaseIdProvider type="DB_VENDOR">
<property name="MySql" value="mysql"/>
<property name="Oracle" value="oracle" />
</databaseIdProvider>
xml
<mapper namespace="com.example.mybatisconfig.mysql.MysqlStudentMapper">
<select id="getStudentInfoByID" resultType="com.example.mybatisconfig.mysql.bean.Student" databaseId="mysql">
select sex from student where id = #{id}
</select>
<select id="getStudentInfoByID" resultType="com.example.mybatisconfig.mysql.bean.Student" databaseId="oracle">
select name from student where id = #{id}
</select>
<select id="getStudentInfoByID"resultType="com.example.mybatisconfig.mysql.bean.Student">
select * from student where id = #{id}
</select>
</mapper>
databaseId
如果配置了数据库厂商标识(databaseIdProvider),MyBatis 会加载所有的不带 databaseId 或匹配当前 databaseId 的语句;如果带或者不带的语句都有,则不带的会被忽略。
注意:但是我用了这种方式,在springboot中并没有成功, 报出的错误是,在指定的mysql或者oracle中,找不到这个getStudentInfoByID这个方法,后期在修改测试这个问题。
mappers(映射器)
<mappers>
<!-- 使用相对于类路径的资源引用 -->
<mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
<!-- 使用完全限定资源定位符(URL) -->
<mapper url="file:///var/mappers/AuthorMapper.xml"/>
<!-- 使用映射器接口实现类的完全限定类名 -->
<mapper class="org.mybatis.builder.AuthorMapper"/>
</mappers>
注意:class方式的话,有sql映射文件,映射文件名必须和接口同名,并且放在与接口同一目录下
<!-- 将包内的映射器接口实现全部注册为映射器 -->
<mappers>
<package name="org.mybatis.builder"/>
</mappers>
还可以直接注解写sql语句,但是一般不用这种方式开发。
「真诚赞赏,手留余香」
真诚赞赏,手留余香
使用微信扫描二维码完成支付