配置信息的优化,类型转换器

1.

优化:

可以将配置信息单独放入db.properties中,然后再动态引入

db.properties:k=v

<configuration>

    <properties resource="db.properties"/>

引入之后,使用${key}

2.

MyBatis全局参数

在<configuration>里面添加<settings>标签,里面写setting标签,key-value形式

3.别名

a. 设置单个别名

<!-- 设置别名 -->
<typeAliases>
<!-- 单个 -->
<typeAlias type="org.entity.user" alias="user">
</typeAliases>

b. 批量设置别名

<!-- 设置别名 -->
<typeAliases>
<!-- 批量,以下会自动为该包中所有类批量定义别名,别名就是类名 -->
<package name="org.entity"/>
</typeAliases>

除了自定义别名外,MyBatis还内置了一些常见类的别名

4.类型处理器(类型转换器)

1.MyBatis自带一些常见的类型处理器

int-number

2.自定义MyBatis类型处理器

Java--数据库(jdbc类型)

示例:

实体类Student:boolean stuSex   true:男  false:女

表student: number  stuSex   1:男   0:女

自定义类型转换器(boolean--number)步骤:

1.创建转换器:需要实现TypeHandle接口

通过阅读源码发现此接口有一个实现类BaseTypeHandler

因此要实现转换器有两种选择:

a. 实现接口TypeHandler接口   b.继承Base TypeHandler

2.配置 在conf.xml

需要注意的问题:设置Integer时需要写INTEGER,纯大写

<delete id="deleteUserByUsername" parameterType="String">
        delete from user where usename=#{usename}
    </delete>
    
    <!-- 如果类中属性和表中字段可以合理识别(eg:String-varchar2),则可以使用resultType,否则使用resultMap -->
    <!-- 如果类中属性名和表中字段名可以合理识别(eg:No->no),则可以使用resultType,否则使用resultMap -->
    <select id="queryUserByUsenameWithConventer" resultMap="userResult" parameterType="String">
        select * from user where usename = #{usename}
    </select>
    <resultMap type="user" id="userResult">
        <!-- 分为主键,非主键 -->
        <id property="usename" column="usename"/>
        <result property="password" column="password"/>
        <result property="type" column="type"/>
        <result property="gender" column="gender"/>
        <result property="phone" column="phone" javaType="boolean" jdbcType="INTEGER"/>
    </resultMap>

resultMap可以实现的功能:类型转换,属性--字段的映射关系

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值