1、自定义一个转换类型,获取数据库数据并输出数据时,把数据库的Varchar类型转为java的String[]类型
前提(1)
定义一个类VarcharToStringsHandler继承BaseTypeHandler<String[]>,且类上方加上
@MappedTypes({String[].class})和@MappedJdbcTypes({JdbcType.VARCHAR})
,且VarcharToStringsHandler类中getStringArray(String value)定义分割的字符,如”-“、","
![](https://img2018.cnblogs.com/blog/1703678/201907/1703678-20190724223643054-1520059416.png)
前提(2)
mybatis-config.xml中注册VarcharToStringsHandler类:
<typeHandlers>
<typeHandler handler="com.handler.VarcharToStringsHandler" />
</typeHandlers>
使用:
数据库中film表的title字段值为”aaa-bbb-ccc“之类的数据,取出后转为java的String[]数据
实体类Film如下:
![](https://img2018.cnblogs.com/blog/1703678/201907/1703678-20190724223740224-721198082.png)
FillmMapper.xml中:
![](https://img2018.cnblogs.com/blog/1703678/201907/1703678-20190724223938171-759800794.png)
<result column="title" jdbcType="VARCHAR" javaType="[Ljava.lang.String;" property="title" />
指定javaType="[Ljava.lang.String;"即String[]数组,则Mybatis就会到已经注册了的TypeHandler中寻找到能处理jdbcType对应javaType的类型转换的TypeHandler类(此处为VarcharToStringsHandler类)来进行处理