一、POJO
public
class Customer {
private Long id;
private String name;
private String address;
private String postcode;
private String sex;
private List<Orders> orderlist =
new ArrayList<Orders>();
public String toString() {
return "Customer{" +
"id=" + id +
", name='" + name + '\'' +
", address='" + address + '\'' +
", postcode='" + postcode + '\'' +
", sex='" + sex + '\'' +
", orderlist=" + orderlist.size() +
'}';
}
public
class Orders {
private Long id;
private String code;
private Long customerId;
private Customer customer;
public String toString() {
return "Orders{" +
"id=" + id +
", code='" + code + '\'' +
", customerId=" + customerId +
'}';
}
二、SqlMap
Customer.xml
<?
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
="customer"
>
<
typeAlias
alias
="customer"
type
="com.lavasoft.ssi.domain.Customer"
/>
<
resultMap
id
="result_base"
class
="customer"
>
<
result
property
="id"
column
="id"
/>
<
result
property
="name"
column
="name"
/>
<
result
property
="address"
column
="address"
/>
<
result
property
="postcode"
column
="postcode"
/>
<
result
property
="sex"
column
="sex"
/>
</
resultMap
>
<
resultMap
id
="result"
class
="customer"
extends
="result_base"
>
<
result
property
="orderlist"
column
="id"
select
="orders.findByCustomerId"
/>
</
resultMap
>
<
insert
id
="insert"
parameterClass
="customer"
>
insert into customer(address,postcode,sex,name) values(#address#,#postcode#,#sex#,#name#)
<
selectKey
keyProperty
="id"
resultClass
="long"
>
select LAST_INSERT_ID()
</
selectKey
>
</
insert
>
<
select
id
="getById"
parameterClass
="long"
resultMap
="result_base"
>
select * from customer where id = #value#
</
select
>
<
select
id
="getWithCashById"
parameterClass
="long"
resultMap
="result"
>
select * from customer where id = #value#
</
select
>
<
select
id
="getWithCashByIdInnerjoin"
parameterClass
="long"
resultClass
="customer"
resultMap
="result"
>
select c.* from customer c inner join orders o on c.id=o.customerId
</
select
>
</
sqlMap
>
Orders.xml
<?
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
="orders"
>
<
typeAlias
alias
="orders"
type
="com.lavasoft.ssi.domain.Orders"
/>
<
resultMap
id
="result_base"
class
="orders"
>
<
result
property
="id"
column
="id"
/>
<
result
property
="code"
column
="code"
/>
<
result
property
="customerId"
column
="customerId"
/>
</
resultMap
>
<
resultMap
id
="result"
class
="orders"
extends
="result_base"
>
<
result
property
="customer"
column
="customerId"
select
="customer.getById"
/>
</
resultMap
>
<
insert
id
="insert"
parameterClass
="orders"
>
insert into orders(id,code,customerId) values(#id#,#code#,#customerId#)
<
selectKey
keyProperty
="id"
resultClass
="long"
>
select LAST_INSERT_ID()
</
selectKey
>
</
insert
>
<
select
id
="findByCustomerId"
resultMap
="result_base"
parameterClass
="long"
>
select * from orders where customerId = #value#
</
select
>
<
select
id
="getById"
parameterClass
="long"
resultMap
="result_base"
>
select * from orders where id = #value#
</
select
>
<
select
id
="getByIdWithCash"
resultMap
="result"
resultClass
="orders"
parameterClass
="long"
>
select * from orders where id = #value#
</
select
>
</
sqlMap
>
相关资源:ibatis的一个简单demo用户登录