2024年4月1日发(作者:)

1) 在parameterMap 和resultMap 中,字段数据类型是java .

类定义的常量名称。常用的数据类型包括BLOB ,CHAR,CLOB,DATE,

LONGVARBINARY , INTEGER ,NULL ,NUMERIC ,TIME ,

TIMESTAMP 和VARCHAR 等。

2) 对于数据表中NULLBALE 的字段,必须在parameterMap 和

resultMap 中指定字段的数据类型。

3) 对于数据类型是DATE,CLOB 或BLOB 的字段,最好在parameterMap

和resultMap中指定数据类型。

4) 对于二进制类型的数据,可以将LONGVARBINARY 映射成byte[] 。

5) 对于文本类型较大的数据,可以将CLOB 映射成String。

6) Java Bean 必须拥有缺省的构造器(即无参数的构造器)。

7) Java Bean 最好实现Serializable 接口,以备应用的进一步扩展。

dataSource从属于transactionManager节点,用于设定ibatis运行期使用的

DataSource属性

type属性: dataSource节点的type属性指定了dataSource的

实现类型

1. SIMPLE:

SIMPLE是ibatis内置的dataSource实现,其中实现了一个简单

的数据库连接池机制, 对应ibatis 实现类为

DataSourceFactory。

resultClass

resultClass 属性的值是 Java 类的全限定名(即包括类的包名)。

resultClass 属性可以让您指定一个Java 类,根据ResultSetMetaData 将

其自动映射到JDBC 的ResultSet。只要是Java Bean的属性名称和

ResultSet的列名匹配,属性自动赋值给列值。这使得查询 mappedstatement

变得很短。例如:

resultClass="">

SELECT PER_ID as id,

PER_FIRST_NAME as firstName,

PER_LAST_NAME as lastName,

PER_BIRTH_DATE as birthDate,

PER_WEIGHT_KG as weightInKilograms,

PER_HEIGHT_M as heightInMeters

FROM PERSON

WHERE PER_ID = #value#

在上面的例子中,Person类拥有属性包括 id ,firstName ,lastName ,

birthDate ,weightInKilograms 和heightInMeters 。每一个属性对应

SQL 查询语句一个列的别名(使用“as ”关键字-标准的SQL 语法)。一般

情况下,列名和属性名称不匹配,就需要使用 “as ”关键字。当执行mapped

statement 时,Person 类将被初始化,从结果集中得到的列值将根据属性名

和列名映射成Person 对象的属性值。正如以前所说,使用resultClass 的自

动映射存在一些限制,无法指定输出字段的数据类型(如果需要的话),无法自

动装入相关的数据(复杂属性),并且因为需要ResultSetMetaData的信息,

会对性能有轻微的不利影响。但使用resultMap ,这些限制都可以很容易解决。