zoukankan      html  css  js  c++  java
  • MyBatis一对多映射简单查询案例(嵌套结果)

    一、案例描述

    书本类别表和书本信息表,查询书本类别表中的某一记录,连带查询出所有该类别书本的信息。

    二、数据库表格

    书本类别表(booktypeid,booktypename)

    书本信息表(bookid,booktypeid,bookname...)

    三、java代码

    1.书本类别

    BookType.java

    package com.yh.entity;
    
    import java.util.List;
    
    public class BookType {
        private int bookTypeId;
        private String bookTypeName;
        private List<Book> books;
    
        public int getBookTypeId() {
            return bookTypeId;
        }
    
        public void setBookTypeId(int bookTypeId) {
            this.bookTypeId = bookTypeId;
        }
    
        public String getBookTypeName() {
            return bookTypeName;
        }
    
        public void setBookTypeName(String bookTypeName) {
            this.bookTypeName = bookTypeName;
        }
    
        public List<Book> getBooks() {
            return books;
        }
    
        public void setBooks(List<Book> books) {
            this.books = books;
        }
    
    }

    BookTypeMapper.xml

    <!DOCTYPE mapper
    PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
    "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
    <mapper namespace="com.yh.mybatis.mapper.BookTypeMapper">
    
        <select id="findTypeById" parameterType="int" resultMap="bookTypeMap">
            select booktype.*,book.* from booktype,book where booktype.booktypeid = book.booktypeid booktypeid = #{id}
        </select>
    
        <resultMap type="BookType" id="bookTypeMap">
            <id property="bookTypeId" column="booktypeid"></id>
            <result property="bookTypeName" column="booktypename"></result>
            <collection property="books" ofType="Book">
                <id property="bookName" column="bookName"></id>
                <result property="imgUrl" column="imgurl"></result>
                <result property="introduction" column="introduction"></result>
                <result property="packStyle" column="packstyle"></result>
            </collection>
        </resultMap>
    </mapper>    

    TypeMapper.java

    package com.yh.mybatis.mapper;
    
    import com.yh.entity.BookType;
    
    public interface BookTypeMapper {
        BookType findTypeById(int id);
    }

    2.书本信息

    Book.java(省略getter()、setter()方法)

    package com.yh.entity;
    
    import java.sql.Timestamp;
    import java.sql.Date;
    
    import com.yh.dao.DBAddRecord;
    
    public class Book {
    
        // 自动赋值
        private int bookId;
        private int bookTypeId;
    
        private int sellerId;
        private String bookName;
        private String press;
        private Date publishDate;
        private short bookSize;
        private short bookVersion;
        private String author;
        private String translator;
        private String isbn;
        private float price;
        private int pageNumber;
        private String introduction;
        private float marketPrice;
        private float memberPrice;
    }

    3.测试代码

    @ResponseBody
    @RequestMapping(value="/byType",produces = "application/json; charset=utf-8")
    public String byType(
            @RequestParam(value="type") String type){
        this.init();
        BookTypeMapper btm = sqlSession.getMapper(BookTypeMapper.class);
        BookType books = btm.findTypeById(Integer.valueOf(type));
        this.destroy();
        return JSON.toJSONString(books);
    }
  • 相关阅读:
    2013年第四届蓝桥杯C/C++B组省赛题目解析
    C++编程基础练习
    网络中TCP、IP、MAC、UDP的头部格式信息
    对C语言中指针的入门理解
    Linux命令_搜索文件
    【总结】牛客职播第九期:您的美团点评offer已送到门口,快来与我们一起影响世界!
    蓝桥杯题库基础练习:进制转换
    SQL存在一个表而不在另一个表中的数据, 更新字段为随机时间
    使用资源文件(内存)中的字体 或 使用文件中的字体
    C# 给某个方法设定执行超时时间 C#如何控制方法的执行时间,超时则强制退出方法执行 C#函数运行超时则终止执行(任意参数类型及参数个数通用版)
  • 原文地址:https://www.cnblogs.com/YeHuan/p/11699366.html
Copyright © 2011-2022 走看看