第四节别名类型转换器

一、属性文件
1.新建properties 文件 db.properties
driver =oracle.jdbc.OracleDriver
url  =jdbc:oracle:thin:@localhost:1521:orcl
username =scott
password =tiger

2.conf.xml 应用  db.properties
<properties resource="db.properties"/>
修改数据配置
 <property name="driver" value="${driver}"/>
 <property name="url" value="${url}"/>
 <property name="username" value="${username}"/>
 <property name="password" value="${password}"/>
 二、全局参数
<configuration>

    <properties resource="db.properties"/>
    
    <settings>
        <setting name="cacheEnable" value="false"/>
        <setting name="lazyLoadingEnable" value="false"/>
    </settings>

 
 三、别名(主要针对映射文件parameterType、resultType)
  <typeAliases>
   <!-- 单个定义别名  忽略大小写-->
        <typeAlias type="org.lanqiao.entity.Student"  alias="student"/>
   <!-- 批量定义别名  就是不带包名得类名 忽略大小写-->
   <package name="org.lanqiao.entity"/>
   </typeAliases>
 
 四、类型转换器
 1.创建转换器
 package org.lanqiao.converter;

import java.math.BigDecimal;
import java.sql.CallableStatement;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

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

public class BoolAndintConvert  extends BaseTypeHandler<Boolean>{

    @Override
    public void setNonNullParameter(PreparedStatement ps, int i, Boolean parameter, JdbcType jdbcType)
            throws SQLException {
        // TODO java -->db  i参数位置 、 parameter java值、jdbcType数据类型
        if (parameter){
            ps.setBigDecimal(i,new BigDecimal(1));
        }else{
            ps.setBigDecimal(i,new BigDecimal(0));
        }
        
    }

    @Override
    public Boolean getNullableResult(ResultSet rs, String columnName) throws SQLException {
        
        
        BigDecimal values=rs.getBigDecimal(columnName);
        if( (values.compareTo(new BigDecimal(1)))==0  )  {
            return true;
        }else{
            return false;
        }

    }

    @Override
    public Boolean getNullableResult(ResultSet rs, int columnIndex) throws SQLException {
        BigDecimal values=rs.getBigDecimal(columnIndex);
        if( (values.compareTo(new BigDecimal(1)))==0  )  {
            return true;
        }else{
            return false;
        }
    }

    @Override
    public Boolean getNullableResult(CallableStatement cs, int columnIndex) throws SQLException {
        BigDecimal values=cs.getBigDecimal(columnIndex);
        if( (values.compareTo(new BigDecimal(1)))==0  )  {
            return true;
        }else{
            return false;
        }
    }

}
2.配置conf  引用接口转换器
 
   <typeHandlers>
           <typeHandler handler="org.lanqiao.converter.BoolAndintConvert"  javaType="boolean"  jdbcType="INTEGER"/>
   </typeHandlers>
   
   
3.配置映射文件
  <select id="selectStudentBystuNoConvert"  resultMap="StudentBystuNoConvert" parameterType="int">
        select * from student where stuNo = #{stuno}
    </select> 
    
    <resultMap type="student" id="StudentBystuNoConvert">
        <!-- 主键  非主键 -->
        <id property="stuNo" column="stuNo"/>
         <result property="stuName"  column="stuName"/>
         <result property="stuAge"  column="stuAge"/>
         <result property="stuName"  column="stuName"/>
         <result property="graName"  column="graName"/>
         <result property="stuSex"  column="stuSex" javaType="Boolean"  jdbcType="INTEGER"/>
      
        
    </resultMap>


    <insert id="addstudentconvert"  parameterType="student">
       insert into student (stuNo ,stuName ,stuAge,graName,stuSex) values(#{stuNo},#{stuName},#{stuAge},#{graName},#{stuSex, javaType=Boolean ,jdbcType=INTEGER   })
    </insert>
    
4.增加接口方法
  Student  selectStudentBystuNoConvert(int stuNo);
  int  addstudentconvert(Student student);

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值