欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

mybatis入门学习(三)-属性文件、别名、类型转换、resultMap

程序员文章站 2022-05-23 23:22:02
...

配置属性文件

1、在 mybatis 原本的 config 配置文件内容如下:
mybatis入门学习(三)-属性文件、别名、类型转换、resultMap
2、将 config 文件的 property 标签中的 value 属性提取出来,新建一个 db.properties 文件,内容如下(key-value):
mybatis入门学习(三)-属性文件、别名、类型转换、resultMap
3、修改***config*** 文件,新增 properties 标签并引入 db.properties 文件;在 ***propert***y 标签的 value 属性输入 ${key}
mybatis入门学习(三)-属性文件、别名、类型转换、resultMap

配置别名

1、单个文件配置别名;如下图红框所示:为 com.mybatis.slq.entity.Person 定义一个别名为 persontypeAlias 可以有多个。
mybatis入门学习(三)-属性文件、别名、类型转换、resultMap
配置别名后,在使用到 com.mybatis.slq.entity.Person 的地方就可以用 ***person***替代
mybatis入门学习(三)-属性文件、别名、类型转换、resultMap
2、为包中的类批量配置别名
mybatis入门学习(三)-属性文件、别名、类型转换、resultMap
typeAliases 中添加 pakage 标签 name 值为包名完整路径。在这个包中的所有类的别名为该类的类名且不区分大小写

类型处理器

1、自定义类型处理器
Person 表新增一个 sex(bit) 字段 ,当查询该字段时将 bit 类型转换为 String 类型
定义一个继承 BaseTypeHandlerBitToStringTypeHandler

package com.mybatis.slq.convertor;

import org.apache.ibatis.type.BaseTypeHandler;
import org.apache.ibatis.type.JdbcType;

import java.sql.CallableStatement;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
/**
 *类型转换器:将数据库 bit 类型转换为 java String 类型
 */
public class BitToStringTypeHandler extends BaseTypeHandler<String> {
    /**
     * 寫入數據時 String 轉換為 bit
     * @param preparedStatement
     * @param i
     * @param s
     * @param jdbcType
     * @throws SQLException
     */
    @Override
    public void setNonNullParameter(PreparedStatement preparedStatement, int i, String s, JdbcType jdbcType) throws SQLException {
        if ("男".equals(s)){
            preparedStatement.setInt(i,1);
        }else{
            preparedStatement.setInt(i,0);
        }
    }

    /**
     * 讀取數據時 根據字段名讀取數據
     * @param resultSet
     * @param s
     * @return
     * @throws SQLException
     */
    @Override
    public String getNullableResult(ResultSet resultSet, String s) throws SQLException {
        int sex=resultSet.getInt(s);
        return 1==sex ? "男" : "女";
    }

    /**
     * 讀取數據時 根據字段索引讀取數據
     * @param resultSet
     * @param i
     * @return
     * @throws SQLException
     */
    @Override
    public String getNullableResult(ResultSet resultSet, int i) throws SQLException {
        int sex=resultSet.getInt(i);
        return 1==sex ? "男" : "女";
    }

    /**
     * 存儲過程返回值 根據字段索引讀取數據
     * @param callableStatement
     * @param i
     * @return
     * @throws SQLException
     */
    @Override
    public String getNullableResult(CallableStatement callableStatement, int i) throws SQLException {
        int sex=callableStatement.getInt(i);
        return 1==sex ? "男" : "女";
    }
}

1、当需转换字段为结果集时:

方式一:

mapper 为:
mybatis入门学习(三)-属性文件、别名、类型转换、resultMap
修改后为:
mybatis入门学习(三)-属性文件、别名、类型转换、resultMap
config文件配置:
mybatis入门学习(三)-属性文件、别名、类型转换、resultMap
方式二:

com.mybatis.slq.convertor.BitToStringTypeHandler 配置别名
mybatis入门学习(三)-属性文件、别名、类型转换、resultMap
mapper改为:
mybatis入门学习(三)-属性文件、别名、类型转换、resultMap
通过 typeHandler 直接指向 com.mybatis.slq.convertor.BitToStringTypeHandler

当需转换字段为参数时

方式一:
mapper

mybatis入门学习(三)-属性文件、别名、类型转换、resultMap
修改后为:
mybatis入门学习(三)-属性文件、别名、类型转换、resultMap
在需转换字段中添加 javaType=String ,jdbcType=BIT ;配置 config 文件
mybatis入门学习(三)-属性文件、别名、类型转换、resultMap
方式二:
mybatis入门学习(三)-属性文件、别名、类型转换、resultMap
直接在需转换字段中添加 typeHandler=BitToStringTypeHandler