`

实用,简单 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>
分享到:
评论

相关推荐

    ibatisDemo 入门源码

    IbatisDemo是一个典型的基于Ibatis框架的入门示例,它为我们展示了如何在Java项目中使用Ibatis进行数据库操作。Ibatis,一个优秀的持久层框架,它允许开发者将SQL语句直接写在配置文件中,避免了JDBC的繁琐代码,...

    ibatis demo,ibatis例子,ibatis示例

    Ibatis,全称为MyBatis,是一个优秀的Java持久层框架,它主要负责SQL映射,使得开发者能够将SQL语句与Java代码分离,...实践是检验真理的唯一标准,所以亲自动手尝试这个ibatis demo,会让你对Ibatis的理解更加深入。

    ibatis 一对多 多对多完整映射

    本文将深入探讨如何在iBATIS中实现一对多和多对多的关系映射,并提供相关的源码分析和工具使用技巧。 **一对多关系映射** 在数据库设计中,一对多关系是指一个父记录可以与多个子记录关联,例如,一个用户可以有多...

    ibatisDemo.zip

    在这个"ibatisDemo.zip"压缩包中,我们可能找到了一系列关于快速入门Ibatis的资源,包括实际的增删改查(CRUD)示例和配套的讲解视频。这对于我们理解和学习Ibatis非常有帮助。 首先,让我们深入了解一下Ibatis的...

    ibatis的一个简单demo用户登录

    【标题】"ibatis的一个简单demo用户登录"指的是使用iBATIS这个轻量级的Java持久层框架实现的一个用户登录功能的示例项目。iBATIS是SQL Maps的升级版,它提供了一种将SQL语句与Java代码分离的方式,使得数据库访问...

    IbatisDemo01

    【IbatisDemo01】是基于.NET平台的一个完整的IbatisNet框架的应用示例,它包含了对数据库进行增、删、改、查(CRUD)的基本操作。IbatisNet是一款轻量级的ORM(对象关系映射)框架,它允许开发者将SQL语句与.NET代码...

    IBatisDemo:Ibatis的一个简单Demo

    这个“IBatisDemo”项目是一个简化的示例,旨在展示如何在.NET环境中集成和使用IBatis。在这个Demo中,我们将深入探讨IBatis的核心概念、配置、以及如何与数据库进行交互。 **1. IBatis .NET 简介** IBatis .NET 是...

    ibatis小例子Demo

    5. **结果集映射**:通过`&lt;resultMap&gt;`标签,可以定义复杂的字段映射规则,包括一对一、一对多、多对多的关系映射,使得结果处理更便捷。 6. **事务管理**:Ibatis支持编程式和声明式的事务管理,可以根据项目需求...

    spring+ibatis demo搭建

    ### Spring+Ibatis Demo搭建详解 #### 一、项目背景与目标 在现代软件开发过程中,集成多种技术栈来构建高效稳定的应用系统是常见的做法。本文档将详细介绍如何使用Spring和Ibatis这两种流行的技术框架搭建一个...

    ibatis 一对多

    总的来说,`iBatis` 的一对多映射功能使得处理复杂的数据库关系变得简单,通过源码阅读,我们可以更深入理解其内部机制,从而更好地利用这一特性。同时,结合适当的工具,如`FilesManager`,可以方便地管理和维护...

    Ibatis 练习Demo和笔记

    而"IbatisStudy"可能是一个示例项目,包含了一个简单的Ibatis应用场景,如用户管理模块,包含实体类、Mapper接口、Mapper XML文件以及相关的测试代码。通过运行这个项目,你可以更直观地了解Ibatis的工作流程。 ...

    ibatis配置多表关联(一对一、一对多、多对多

    ibatis配置多表关联(一对一、一对多、多对多

    ibatisDemo.rar

    IbatisDemo是一个展示如何利用Ibatis框架实现数据库半自动化操作的实例,相较于Hibernate,Ibatis提供了更高的灵活性,这也是它在电信、淘宝等大型企业中被广泛采用的原因。本篇文章将深入探讨Ibatis的核心概念、...

    ibatis 一对多关系映射

    Ibatis,作为一个轻量级的Java ORM框架,提供了强大的功能来处理复杂的数据映射,其中包括一对多的关系映射。在这个场景下,我们将深入探讨Ibatis如何实现一对多的关系映射。 一对多关系在数据库设计中非常常见,它...

    IbatisDemo.rar

    IbatisDemo.rar是一个压缩包,其中包含了全面的关于Ibatis框架的学习资料,包括文档、示例项目以及必要的jar包。Ibatis是一个轻量级的Java持久层框架,它简化了数据库操作,允许开发者将SQL语句直接写在配置文件中,...

    IbatisDemo03

    在IT行业中,Ibatis是一个非常流行的持久层框架,它为Java开发者提供了强大的数据访问和数据库交互功能。IbatisNet是其.NET平台上的实现,同样致力于简化数据库操作,尤其是在处理复杂和动态的SQL语句时。本示例...

    ibatis的demo

    【描述】中的"利用ibatis框架写的一个demo,真的很好"意味着这个压缩包包含了一个基于Ibatis的演示项目,它可能包含了完整的业务逻辑、数据访问层以及用户界面。这个Demo可能展示了如何配置Ibatis的SqlMapConfig.xml...

    ibatis多对多关系(详细)

    iBatis多对多关系详解 iBatis是一种流行的持久层框架,用于简化Java应用程序和关系数据库之间的交互。在本文档中,我们将详细介绍iBatis在处理多对多关系时的配置和实现。 多对多关系 多对多关系是一种常见的关系...

    ibatis实战之一对多关联(源代码)

    在关系型数据库中,一对多关联是非常常见的一种数据关系,例如一个用户可以拥有多个订单,一个部门可以包含多个员工等。在iBatis中,我们可以通过配置XML映射文件来实现这种关联。 1. **一对多关联映射原理** 一对...

    struts+spring+ibatis的Demo

    通常,Spring作为核心容器管理所有组件,包括Struts 2的Action和iBatis的SqlSessionFactory。Struts 2的Action通过Spring的依赖注入获取Service对象,Service对象再通过iBatis的SqlSession执行数据库操作。整个流程...

Global site tag (gtag.js) - Google Analytics