zoukankan      html  css  js  c++  java
  • JavaSpring中级联查询

    一对一级联查询映射文件PersonMapper.xml代码:

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE mapper 
    PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" 
    "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
    <mapper namespace = "com.dao.PersonDao">
    
    <!--方法1:嵌套查询,执行两个SQL语句-->
    <resultMap type = "com.po.Person" id = "cardAndPerson1">
    <id property="id" column="id"/>
    <result property="name" column="name"/>
    <result property="age" column="age"/>
    <association property = "card" column="idcard_id" javaType="com.po.Idcard"
    select = "com.dao.IdCardDao.selectCodeById"/>
    </resultMap>
    <select id="selectPersonById1" parameterType="Integer" resultMap="cardAndPerson1">
     select * from person where id=#{id}
    </select>
    
    
    <!--方法2:嵌套查询,执行一个SQL语句-->
    <resultMap type = "com.po.Person" id="cardAndPerson2">
    <id property = "id" column="id"/>
    <result property="name" column="name"/>
    <result property="age" column="age"/>
    <association property="card" javaType="com.po.Idcard">
    <id property = "id" column="idcard_id"/>
    <result property = "code" column="code"/>
    </association>
    </resultMap>
    <select id = "selectPersonById2" parameterType="Integer" resultMap="cardAndPerson2">
    select p.*,ic.code
    from person p,idcard ic
    where p.idcard_id = ic.id and p.id=#{id}
    </select>
    
    <!--使用POJO存储结果-->
    <select id = "selectPersonById3" parameterType="Integer" resultType="com.pojo.SelectPersonById">
    select p.*,ic.code
    from person p,idcard ic
    where p.idcard_id = ic.id and p.id=#{id}
    </select>
    </mapper>

    IdCardMapper.xml代码:

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE mapper
    PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" 
    "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
    <mapper namespace="com.dao.IdCardDao">
    <select id="selectCodeById" parameterType="Integer" 
    resultType="com.po.Idcard">
    select * from idcard where id = #{id}
    </select>
    </mapper>

    一对多查询映射文件OrdersMapper.xml代码:

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE mapper
    PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" 
    "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
    <mapper namespace="com.dao.OrdersDao">
    <select id="selectOrdersById" parameterType="Integer" 
    resultType="com.po.Orders">
    select * from orders where user_id = #{id}
    </select>
    </mapper>

    UserMapper.XML代码:

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE mapper
    PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" 
    "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
    <!--命名空间应该是对应接口的包名+接口名 -->
    <mapper namespace="com.dao.UserDao">
    <!--id应该是接口中的方法,结果类型如没有配置别名则应该使用全名称 -->
    <resultMap type="com.po.MyUser" id="userAndOrders1">
    <id property="uid" column="uid"/>
    <result property="uname" column="uname"/>
    <result property="usex" column="usex"/>
    <!--一对多级联查询,ofType表示集合中的元素类型,将uid传递给selectOrdersById--> <collection property="ordersList" ofType="com.po.Orders" column="uid" select ="com.dao.OrdersDao.selectOrdersById"/> </resultMap> <select id="selectUserOrdersById1" parameterType="Integer" resultMap="userAndOrders1"> select * from user where uid = #{id} </select> <resultMap type="com.po.MyUser" id="userAndOrders2"> <id property="uid" column="uid"/> <result property="uname" column="uname"/> <result property="usex" column="usex"/> <collection property="ordersList" ofType="com.po.Orders"> <id property="id" column="id"/> <result property="ordersn" column="ordersn"/> </collection> </resultMap> <select id="selectUserOrdersById2" parameterType="Integer" resultMap="userAndOrders2"> select u.*,o.id,o.ordersn from user u,orders o where u.uid = o.user_id and u.uid=#{id} </select> <--!使用POJO存储结果--> <select id="selectUserOrdersById3" parameterType="Integer" resultType="com.pojo.SelectUserOrdersById"> select u.*,o.id,o.ordersn from user u,orders o where u.uid = o.user_id and u.uid=#{id} </select> </mapper>

    多对多查询,映射文件OrdersMapper.xml文件

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE mapper
    PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" 
    "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
    <!--命名空间应该是对应接口的包名+接口名 -->
    <mapper namespace="com.dao.UserDao">
    <!--id应该是接口中的方法,结果类型如没有配置别名则应该使用全名称 -->
    <resultMap type="com.po.MyUser" id="userAndOrders1">
    <id property="uid" column="uid"/>
    <result property="uname" column="uname"/>
    <result property="usex" column="usex"/>
    <collection property="ordersList" ofType="com.po.Orders" column="uid"
    select ="com.dao.OrdersDao.selectOrdersById"/>
    </resultMap>
    <select id="selectUserOrdersById1" parameterType="Integer" 
    resultMap="userAndOrders1">
    select * from user where uid = #{id}
    </select>
    
    <resultMap type="com.po.MyUser" id="userAndOrders2">
    <id property="uid" column="uid"/>
    <result property="uname" column="uname"/>
    <result property="usex" column="usex"/>
    <collection property="ordersList" ofType="com.po.Orders">
    <id property="id" column="id"/>
    <result property="ordersn" column="ordersn"/>
    </collection>
    </resultMap>
    <select id="selectUserOrdersById2" parameterType="Integer"
    resultMap="userAndOrders2">
    select u.*,o.id,o.ordersn
    from user u,orders o
    where u.uid = o.user_id and u.uid=#{id}
    </select>
    
    <select id="selectUserOrdersById3" parameterType="Integer"
    resultType="com.pojo.SelectUserOrdersById">
    select u.*,o.id,o.ordersn
    from user u,orders o
    where u.uid = o.user_id and u.uid=#{id}
    </select>
    </mapper>
  • 相关阅读:
    为aptget设置http代理[转]
    tty&pty
    Overfencing
    ubuntu修改runlevel
    ls l文件类型[转]
    ubuntu文字界面与图形界面切换
    ubuntu没有/etc/inittab文件
    linux一些缩写的意思
    redhat server 5.4安装中文
    关闭linux警报
  • 原文地址:https://www.cnblogs.com/linchenguang/p/11227641.html
Copyright © 2011-2022 走看看