一、属性文件
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);