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

原创
2017/02/17 19:43
阅读数 200

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

 

1、主配置参数

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

 

2、别名

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

 

3、枚举类型

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

 

4、javaType

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

别名 映射的类型
_byte byte
_long long
_short short
_int int
_integer int
_double double
_float float
_boolean boolean
string String
byte Byte
long Long
short Short
int Integer
integer Integer
double Double
float Float
boolean Boolean
date Date
decimal BigDecimal
bigdecimal BigDecimal
object Object
map Map
hashmap HashMap
list List
arraylist ArrayList
collection Collection
iterator Iterator

 

 

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的参数中使用,但是也可以都不指定,也没必要指定。

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部