一、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>();
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() +
'}';
}
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;
private Long id;
private String code;
private Long customerId;
private Customer customer;
public String toString() {
return "Orders{" +
"id=" + id +
", code='" + code + '\'' +
", customerId=" + customerId +
'}';
}
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 >
<!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 >
<!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 >