一、历史回顾
(一)、历史回顾
二、属性文件和全局参数以及类型转换器等
(一)、属性文件和全局参数
1、conf.xml中数据源的配置:将数据源信息特地建立一个文件(db.properties),然后动态引入。
新增db.propertis:
修改conf.xml配置:
2、Mybatis全局参数的设置(注意:这个一般是不要动的)
如何配置呢?通过配置conf.xml的方式:
3、别名:比如在xxxMapper.xml中的parameterType的中会出现“com.test.entity.Person”,这样长的字符串,可以采取起别名的方式进行简化。在conf.xml中设置。
(1)、设置当个别名:
conf.xml配置的别名的设置:
xxxMapper.xml配置的别名的修改:(这里不区分大小写,字母对应别名的字母即可)
(2)、批量设置别名:(设置单个别名得一个一个类的设置比较多,可以批量设置)
conf.xml配置的别名的设置:(设置的包里面的所有类定义别名,将包中的所有类批量定义别名:别名就是不带包名的类名,并且忽略大小写)
(3)、Mybatis自带的别名,如下表所示:
(二)、类型转换器
1、Mybatis自带一些常见的类型处理器。
例:int ---> number
Mybatis内置的类型处理器如表所示:
2、自定义Mybatis类型处理器
java ---> 数据库(jdbc类型)
例:让下面的boolean和number转换
实体类:Student :boolean stuSex;(true:男 false:女)
表 :student :number stuSex; (1:男 0:女)
(1)、步骤:将上例转换
a、创建转换器:需要实现TypeHandler接口。通过阅读源码发现,此接口有一个实现类BaseTypeHandler(接口实现起来比较麻烦,所以这里采取简单的继承类方式,不过那个都是可以的)。
b、conf.xml配置:
c、xxxMapper.xml配置:
对应修改配置的情况,有下面两种:
如果类中的属性和表中的字段类型能够合理识别(String --- varchar),则可以使用resultType,否则使用resultMap(boolean --- int)。
如果类中的属性名和表中的字段名能够合理识别(stuNo --- stuNo),则可以使用resultType,否则使用resultMap(id --- stuNo)。
具体配置如下:
当实体对象与数据库对象不一致的时候,也是在resultMap中配置,实体类中的id也修改成personId,例子中对应的位置都需要修改。如下图所示:
例:
conf.xml配置:类型转换配置
xxxMapper.xml配置:关于类型转换和字段不一致的配置。
实体类:
xxxMapper接口:
测试类: