object
下面给出一个完全正确的合理的映射:
<?
xml
version
="1.0"
encoding
="UTF-8"
?>
<!DOCTYPE sqlMap
PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN"
"http://ibatis.apache.org/dtd/sql-map-2.dtd">
< sqlMap namespace ="Account" >
< typeAlias alias ="Account" type ="com.lavasoft.ibatissut.simple.domain.entity.Account" />
< resultMap id ="AccountResult" class ="Account" >
< result property ="id" column ="ACC_ID" />
< result property ="firstName" column ="ACC_FIRST_NAME" />
< result property ="lastName" column ="ACC_LAST_NAME" />
< result property ="emailAddress" column ="ACC_EMAIL" />
</ resultMap >
< select id ="selectAllAccounts" resultMap ="AccountResult" >
select * from ACCOUNT
</ select >
< select id ="selectAccountById" parameterClass ="int" resultClass ="Account" >
select
ACC_ID as id,
ACC_FIRST_NAME as firstName,
ACC_LAST_NAME as lastName,
ACC_EMAIL as emailAddress
from ACCOUNT
where ACC_ID = #id#
</ select >
</ sqlMap >
<!DOCTYPE sqlMap
PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN"
"http://ibatis.apache.org/dtd/sql-map-2.dtd">
< sqlMap namespace ="Account" >
< typeAlias alias ="Account" type ="com.lavasoft.ibatissut.simple.domain.entity.Account" />
< resultMap id ="AccountResult" class ="Account" >
< result property ="id" column ="ACC_ID" />
< result property ="firstName" column ="ACC_FIRST_NAME" />
< result property ="lastName" column ="ACC_LAST_NAME" />
< result property ="emailAddress" column ="ACC_EMAIL" />
</ resultMap >
< select id ="selectAllAccounts" resultMap ="AccountResult" >
select * from ACCOUNT
</ select >
< select id ="selectAccountById" parameterClass ="int" resultClass ="Account" >
select
ACC_ID as id,
ACC_FIRST_NAME as firstName,
ACC_LAST_NAME as lastName,
ACC_EMAIL as emailAddress
from ACCOUNT
where ACC_ID = #id#
</ select >
</ sqlMap >
别名映射->实体类:resultClass
|
<
select
id
=
" selectAll"
resultClass
=
"AppLog"
>
select
ID as id,
TYPE as type,
DESCR as descr
from APP_LOG
where ID = #id#
</
select
>
|
List
list =
sqlMapper
.queryForList(
"selectAll"
);
for
(
int
i = 0; i < list.size(); i ) {
AppLog log = (AppLog) list.get(i);
//add your code here;
}
|
别名映射->Map类:resultClass
|
<
select
id
=
" selectAll"
resultClass
=
"java.util.HashMap"
>
select
ID as id,
TYPE as type,
DESCR as descr
from APP_LOG
where ID = #id#
</
select
>
|
List
list =
sqlMapper
.queryForList(
"selectAll"
);
for
(
int
i = 0; i < list.size(); i ) {
Map map = (Map) list.get(i);
String id = (String) map.get(
"id"
);
String type = (String) map.get(
"type"
);
String descr = (String) map.get(
"descr"
);
//add your code here;
}
|
显式映射->实体类:resultMap
|
<
resultMap
id
=
"AppLogResult"
class
=
"AppLog"
>
<
result
property
=
"id"
column
=
"ID"
/>
<
result
property
=
"type"
column
=
"Type"
/>
<
result
property
=
"descr"
column
=
"DESCR"
/>
</
resultMap
>
<
select
id
=
"selectAll"
resultMap
=
"AppLogResult"
>
select * from APP_LOG
</
select
>
|
List
list =
sqlMapper
.queryForList(
"selectAll"
);
for
(
int
i = 0; i < list.size(); i ) {
AppLog log = (AppLog) list.get(i);
//add your code here;
}
|
显式映射->Map类:resultMap
|
<
resultMap
id
=
"map-result"
class
=
"java.util.HashMap"
>
<
result
property
=
"id"
column
=
"ID"
/>
<
result
property
=
"type"
column
=
"Type"
/>
<
result
property
=
"descr"
column
=
"DESCR"
/>
</
resultMap
>
<
select
id
=
"selectAll2"
resultMap
=
"map-result"
>
select * from APP_LOG
</
select
>
|
List list = sqlMapper.queryForList("selectAll2");
for (int i = 0; i < list.size(); i ) {
Map map = (Map) list.get(i);
String id = (String) map.get("id");
String type = (String) map.get("type");
String descr = (String) map.get("descr");
}
|
无映射
|
<
select
id
=
"selectAll3"
resultClass
=
"java.util.HashMap"
>
select * from APP_LOG
</
select
>
|
List list = sqlMapper.queryForList("selectAll3");
for (int i = 0; i < list.size(); i ) {
Map map = (Map) list.get(i);
String id = (String) map.get("ID");
String type = (String) map.get("TYPE");
String descr = (String) map.get("DESCR");
}
|
xml
xml
|
<
select
id
=
"selectxml"
parameterClass
=
"java.lang.String"
resultClass
=
"xml"
xmlResultName
=
"log"
>
select
ID as id,
TYPE as type,
DESCR as descr
from APP_LOG
where ID = #id#
</
select
>
|
String o=(String)
sqlMapper
.queryForObject(
"selectxml"
, id);
System.
out
.println(o);
|
Lambert 2010年10月20日21:48:23
--------------------------------------------------------------------------------
1 对于返回的对象,如果是普通类如HashMap,java.lang.Integer等的,返回直接
写 resultClass,如果是返回一个对象(pojo bean)的则要成resultMap
2 对于Map类型的返回,返回要写成java.util.HashMap
3 对于xml返回的情况不熟悉,估计用的情况也不多吧