Mybatis技术原理与实践——读书笔记(三)

本文是读 杨开振老师的《深入浅出 Mybatis技术原理与实践》第三章所记录的笔记,本文绝对没有推荐书的意思,只是看着记录学习,同时分享自己的观点而已。

 

1、主配置参数

主要讲解Mybatis主配置文件的参数,一般使用默认参数就足够了,对于特殊参数,特殊配置,需要时再学习。

 

2、别名

注意,别名是不分大小写的哦。

 

3、枚举类型

对于数据库字段,如果是枚举类型,最好定义枚举,为什么呢?在《Effective Mysql》中提到枚举可以节省存储空间从而提高检索速度;从数据可读性来讲,的确枚举要比纯数字来得简单,但是如果使用枚举的话,必须自定义 Mybatis 的类型映射器,这个是无法接受的,没定义一个这样的枚举类就要定义一个这样的解析器,我觉得这种工作确实不好做啊。

 

4、javaType

和 ResultType 一样使用系统注册的别名即可。

别名映射的类型
_bytebyte
_longlong
_shortshort
_intint
_integerint
_doubledouble
_floatfloat
_booleanboolean
stringString
byteByte
longLong
shortShort
intInteger
integerInteger
doubleDouble
floatFloat
booleanBoolean
dateDate
decimalBigDecimal
bigdecimalBigDecimal
objectObject
mapMap
hashmapHashMap
listList
arraylistArrayList
collectionCollection
iteratorIterator

 

 

5、jdbcType

他的值可以在 org.apache.ibatis.type.JdbcType 类去查找,因为是枚举类型,所以都是使用大写的。

从代码上可以看出,JdbcType 是

JdbcType(int code) {

this.TYPE_CODE = code;

}

BIT(Types.BIT),

INTEGER(Types.INTEGER),

BIGINT(Types.BIGINT),

FLOAT(Types.FLOAT),

REAL(Types.REAL),

DOUBLE(Types.DOUBLE),

NUMERIC(Types.NUMERIC),

DECIMAL(Types.DECIMAL),

CHAR(Types.CHAR),

VARCHAR(Types.VARCHAR),

DATE(Types.DATE),

TIME(Types.TIME),

TIMESTAMP(Types.TIMESTAMP),

其中 code 是指 java.sql.Types 的值,部分如下:

public final static int BIT = -7;

public final static int TINYINT = -6;

public final static int SMALLINT = 5;

public final static int INTEGER = 4;

public final static int BIGINT = -5;

public final static int FLOAT = 6;

public final static int REAL = 7;

public final static int DOUBLE = 8;

public final static int NUMERIC = 2;

public final static int DECIMAL = 3;

public final static int CHAR = 1;

public final static int VARCHAR = 12;

public final static int DATE = 91;

public final static int TIME = 92;

public final static int TIMESTAMP = 93;

public final static int NULL = 0;

public final static int OTHER = 1111;

public final static int ARRAY = 2003;

public final static int BOOLEAN = 16;

public static final int NCHAR = -15;

public static final int NVARCHAR = -9;

 

6、javaType 和 jdbcType 作用与区别

1)javaType 可以在 ResultMap 那里使用,指定Java的数据类型,这个非常重要。

2)jdbcType 和 javaType 都可以在动态SQL的参数中使用,但是也可以都不指定,也没必要指定。

转载于:https://my.oschina.net/heweipo/blog/841121

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值