实用,简单 ibatis demo (包含多对一;一对多)

一、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 >
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值