Mybatis进阶用法详解

一.mybatis主配置文件SqlMapConfig.xml进阶配置

SqlMapConfig.xml中配置文件的内容和顺序如下:(数字代表层级)

properties(属性)
settings(全局配置参数)
typeAliases(类型别名)
typeHandlers(类型处理器)
objectFactory(对象工厂)
plugins(插件)
environments(环境集合属性对象)
(2)environment(环境子属性对象)
(3)transactionManager(事务管理)
(3)dataSource(数据源)
mappers(映射器)

标注粗体的个人认为比较重要,故在此记录。

1.properties属性:可以用来引用外部的属性配置文件,常见的有数据库信息的配置文件db.properties,引用如下:

	
	
		
		
		
		
	

引用此文件过后,即可在数据源配置中引用,解决硬编码问题。

2.typeAliases:类型别名,可以用来简化在SQL映射文件中输入输出参数的书写,且别名大小写不敏感。mybatis内置的支持别名列表如下:

别名 映射的类型
_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 
map Map
用户也可以自定义别名,语法如下:可以单个定义,可以使用扫描包的方式定义


		
		
		
		
		
	

3.mapper映射器:用来在mybatis主配置文件中引入SQL映射文件,总共有三种引入形式。

第一种:,使用相对于类路径的资源,如:

(后面两种在动态代理开发方式中使用,接下来讲解)

第二种: ,使用mapper接口类路径,

第三种: ,注册指定包下的所有mapper接口如:
注意:此种方法要求mapper接口名称和mapper映射文件名称相同,且放在同一个目录中。


二.SQL映射文件进阶配置--动态SQL

1.If标签:可用来为多条件查询时做非空校验



2.SQL片段:可将重复的SQL抽取出来,使用时用include引用即可,以达到SQL重用的目的






	id, username, birthday, sex, address

3.foreach标签:向sql传递数组或者list,mybatis使用foreach解析,例如:传入的queryVo具有一个id的list集合




三.Mybatis使用方式进阶--mapper动态代理接口方式

1.开发规范说明:Mapper接口开发方法只需要程序员编写Mapper接口(相当于Dao接口),由Mybatis框架根据接口定义创建接口的动态代理对象,代理对象的方法体同上边Dao接口实现类方法。

Mapper接口开发需要遵循以下规范:
1、 Mapper.xml文件中的namespace与mapper接口的类路径相同。
2、 Mapper接口方法名和Mapper.xml中定义的每个statement的id相同 
3、 Mapper接口方法的输入参数类型和mapper.xml中定义的每个sql 的parameterType的类型相同
4、 Mapper接口方法的输出参数类型和mapper.xml中定义的每个sql的resultType的类型相同
步骤一:重定义SQL映射文件,UserMapper.xml






	
	
	
	
	
步骤二:定义一个与SQL映射文件相对应的UserMapper接口
public interface UserMapper {
	/**
	 * 根据id查询
	 */
	User queryUserById(int id);
}
步骤三:在主配置文件SqlMapConfig.xml文件中加载SQL映射文件

	
		
	
小结:使用动态接口开发具有很多的好处,mybatis官方推荐使用mapper代理方法开发mapper接口,程序员不用编写mapper接口实现类,使用mapper代理方法时,输入参数可以使用pojo包装对象或map对象,保证dao的通用性。开发者直接通过接口调用方法即可。

四.mybatis进阶--mybatis逆向工程

mybatis官方提供了Mapper自动生成工具,可以通过配置generator.xml文件,根据数据库表自动生成pojo类和mapper映射文件,接口文件。配置文件定义如下


  PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
  "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">









connectionURL="jdbc:mysql://localhost:3306/mybatis" userId="root" password="root">











targetPackage="com.cai.ssm.pojo"

targetProject=".\src">






targetPackage="com.cai.ssm.mapper"
targetProject=".\src">




targetPackage="cn.itcast.ssm.mapper" targetProject=".\src">






基本上,开发者只需要改动上述文件的四处标注红色部分,执行main主函数后既可以根据自己的数据库表自动生成pojo类和mapper映射文件和接口文件。但是需要特别注意一下两点:

1. 逆向工程生成的代码只能做单表查询
2. 不能在生成的代码上进行扩展,因为如果数据库变更,需要重新使用逆向工程生成代码,原来编写的代码就被覆盖了。









你可能感兴趣的:(后台框架)