一、mybatis配置文件sqlmapconfig.xml
该配置文件一般需要配置数据源,别名的定义,加载属性文件的定义,全局参数配置(如开启二级缓存),加载映射文件的配置等
1、配置数据源(与spring整合后将不需要配置)
2、别名的定义(定义了别名在配置mapper的映射文件时就不用写类的完全限定名了,一般直接指定包名)
3、加载属性文件(如db.properties文件,这样分开来写方便后期维护)
4、全局参数配置(需要时开启,如开启二级缓存)
5、加载Mapper的映射文件
二、XXXMapper.xml文件解析
一般在该文件中需要我们根据实际需求写各种sql,增删改查对应的标签为<insert/><delete/><update/><select/>,下面主要详细记录这些标签中的一些属性以及XXXMapper.xml中其他常用且实用的标签
1、增删改查等标签的各个属性
1.1、id(必配):起到唯一标识作用,mapper中的对应方法名需要与该id一致;
1.2、parameterType(根据具体需求)
parameterType即输入参数类型,如果需要有条件查询则需配置该属性,其可以指定输入参数的类型(可以是简单形,map,pojo及其的包装类)。
1.3、resultType(根据具体需求)
resultType即输出参数类型,如果需要sql返回结果则需配置该属性,其可以指定输出参数的类型。需要注意的是,使用该属性需要使查询到的列名与该属性的值(一般为实体类)一致,否则会导致输出映射的数据不全或是失败
1.4、resultMap(根据具体需求)
resultMap也能指定输出参数的类型,但相比于resultType其不要求查询到的列名与其属性值的属性名一致,适用于多表查询或对于查询结果有特殊要求的需求,但是它需要单独配置,一般配置如下:
2、其他常用标签
2.1、sql片段
在配置文件中有时候某一sql或是列名我们会重复使用,我们可以将他们提取出来放在我们定义的sql片段中,一般配置如下:
定义sql片段:
调用sql片段:
2.2、if标签
在开发中我们会遇到一些需求,如对查询条件进行判断,如果输入参数不为空才进行查询条件拼接。使用if标签就不用我们在业务层对参数进行判断而是直接在配置文件中进行判断,下面展示一个实例:
and user.sex = #{userCustom.sex}
2.3、foreach
如果参数是一个list的话我们需要遍历该list,这就需要使用foreach标签了,配置可参考下面的代码:
id=#{user_id}
2.4、占位符
${}:表示拼接sql串,将接收到参数的内容不加任何修饰拼接在sql中,使用${}拼接sql,引起 sql注入
${value}:接收输入 参数的内容,如果传入类型是简单类型,${}中只能使用value
至此,mybatis中用到的配置文件的解析就差不多记完了,下篇准备记录mybatis的延迟加载和缓存。