• SSM--关联关系映射


    一、一对多关联关系

    需求:通过订单号查询本次订单的详情信息以及对应的所有订单

    1.1 逆向生成代码配置文件

    generatorConfig.xml

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
            "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd" >
    <generatorConfiguration>
        <!-- 引入配置文件 -->
        <properties resource="jdbc.properties"/>
    
        <!--指定数据库jdbc驱动jar包的位置-->
        <classPathEntry location="E:\\maven\\mavenjar\\mysql\\mysql-connector-java\\5.1.44\\mysql-connector-java-5.1.44.jar"/>
    
        <!-- 一个数据库一个context -->
        <context id="infoGuardian">
            <!-- 注释 -->
            <commentGenerator>
                <property name="suppressAllComments" value="true"/><!-- 是否取消注释 -->
                <property name="suppressDate" value="true"/> <!-- 是否生成注释代时间戳 -->
            </commentGenerator>
    
            <!-- jdbc连接 -->
            <jdbcConnection driverClass="${jdbc.driver}"
                            connectionURL="${jdbc.url}" userId="${jdbc.username}" password="${jdbc.password}"/>
    
            <!-- 类型转换 -->
            <javaTypeResolver>
                <!-- 是否使用bigDecimal, false可自动转化以下类型(Long, Integer, Short, etc.-->
                <property name="forceBigDecimals" value="false"/>
            </javaTypeResolver>
    
            <!-- 01 指定javaBean生成的位置 -->
            <!-- targetPackage:指定生成的model生成所在的包名 -->
            <!-- targetProject:指定在该项目下所在的路径  -->
            <javaModelGenerator targetPackage="com.xlb.ssm.model"
                                targetProject="src/main/java">
                <!-- 是否允许子包,即targetPackage.schemaName.tableName -->
                <property name="enableSubPackages" value="false"/>
                <!-- 是否对model添加构造函数 -->
                <property name="constructorBased" value="true"/>
                <!-- 是否针对string类型的字段在set的时候进行trim调用 -->
                <property name="trimStrings" value="false"/>
                <!-- 建立的Model对象是否 不可改变  即生成的Model对象不会有 setter方法,只有构造方法 -->
                <property name="immutable" value="false"/>
            </javaModelGenerator>
    
            <!-- 02 指定sql映射文件生成的位置 -->
            <sqlMapGenerator targetPackage="com.xlb.ssm.mapper"
                             targetProject="src/main/java">
                <!-- 是否允许子包,即targetPackage.schemaName.tableName -->
                <property name="enableSubPackages" value="false"/>
            </sqlMapGenerator>
    
            <!-- 03 生成XxxMapper接口 -->
            <!-- type="ANNOTATEDMAPPER",生成Java Model 和基于注解的Mapper对象 -->
            <!-- type="MIXEDMAPPER",生成基于注解的Java Model 和相应的Mapper对象 -->
            <!-- type="XMLMAPPER",生成SQLMap XML文件和独立的Mapper接口 -->
            <javaClientGenerator targetPackage="com.xlb.ssm.mapper"
                                 targetProject="src/main/java" type="XMLMAPPER">
                <!-- 是否在当前路径下新加一层schema,false路径com.oop.eksp.user.model, true:com.oop.eksp.user.model.[schemaName] -->
                <property name="enableSubPackages" value="false"/>
            </javaClientGenerator>
    
            <!-- 配置表信息 -->
            <!-- schema即为数据库名 -->
            <!-- tableName为对应的数据库表 -->
            <!-- domainObjectName是要生成的实体类 -->
            <!-- enable*ByExample是否生成 example类 -->
            <!--<table schema="" tableName="t_book" domainObjectName="Book"-->
            <!--enableCountByExample="false" enableDeleteByExample="false"-->
            <!--enableSelectByExample="false" enableUpdateByExample="false">-->
            <!--&lt;!&ndash; 忽略列,不生成bean 字段 &ndash;&gt;-->
            <!--&lt;!&ndash; <ignoreColumn column="FRED" /> &ndash;&gt;-->
            <!--&lt;!&ndash; 指定列的java数据类型 &ndash;&gt;-->
            <!--&lt;!&ndash; <columnOverride column="LONG_VARCHAR_FIELD" jdbcType="VARCHAR" /> &ndash;&gt;-->
            <!--</table>-->
    
           <table schema="" tableName="t_hibernate_order" domainObjectName="Order"
                   enableCountByExample="false" enableDeleteByExample="false"
                   enableSelectByExample="false" enableUpdateByExample="false">
            </table>
     
            <table schema="" tableName="t_hibernate_order_item" domainObjectName="OrderItem"
                   enableCountByExample="false" enableDeleteByExample="false"
                   enableSelectByExample="false" enableUpdateByExample="false">
            </table>
    
        </context>
    </generatorConfiguration>
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82
    • 83
    • 84
    • 85
    • 86
    • 87

    1.2 编写配置文件:OrderMapper.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.xlb.ssm.mapper.OrderMapper" >
      <resultMap id="BaseResultMap" type="com.xlb.ssm.model.Order" >
        <constructor >
          <idArg column="order_id" jdbcType="INTEGER" javaType="java.lang.Integer" />
          <arg column="order_no" jdbcType="VARCHAR" javaType="java.lang.String" />
        </constructor>
      </resultMap>
      <sql id="Base_Column_List" >
        order_id, order_no
      </sql>
     
      <resultMap id="OrderVoMap" type="com.xlb.ssm.model.vo.OrderVo" >
        <result column="order_id" property="orderId"></result>
        <result column="order_no" property="orderNo"></result>
        <collection property="orderItems" ofType="com.xlb.ssm.model.OrderItem">
          <result column="order_item_id" property="orderItemId"></result>
          <result column="product_id" property="productId"></result>
          <result column="quantity" property="quantity"></result>
          <result column="oid" property="oid"></result>
        </collection>
     
      </resultMap>
     
      <select id="queryOrderVoByOrderId" resultMap="OrderVoMap" parameterType="java.lang.Integer" >
        select * from t_hibernate_order o,t_hibernate_order_item oi
        where o.order_id = oi.oid and o.order_id = #{orderId}
      </select>
     
      <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Integer" >
        select 
        <include refid="Base_Column_List" />
        from t_hibernate_order
        where order_id = #{orderId,jdbcType=INTEGER}
      </select>
      <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer" >
        delete from t_hibernate_order
        where order_id = #{orderId,jdbcType=INTEGER}
      </delete>
      <insert id="insert" parameterType="com.xlb.ssm.model.Order" >
        insert into t_hibernate_order (order_id, order_no)
        values (#{orderId,jdbcType=INTEGER}, #{orderNo,jdbcType=VARCHAR})
      </insert>
      <insert id="insertSelective" parameterType="com.xlb.ssm.model.Order" >
        insert into t_hibernate_order
        <trim prefix="(" suffix=")" suffixOverrides="," >
          <if test="orderId != null" >
            order_id,
          </if>
          <if test="orderNo != null" >
            order_no,
          </if>
        </trim>
        <trim prefix="values (" suffix=")" suffixOverrides="," >
          <if test="orderId != null" >
            #{orderId,jdbcType=INTEGER},
          </if>
          <if test="orderNo != null" >
            #{orderNo,jdbcType=VARCHAR},
          </if>
        </trim>
      </insert>
      <update id="updateByPrimaryKeySelective" parameterType="com.xlb.ssm.model.Order" >
        update t_hibernate_order
        <set >
          <if test="orderNo != null" >
            order_no = #{orderNo,jdbcType=VARCHAR},
          </if>
        </set>
        where order_id = #{orderId,jdbcType=INTEGER}
      </update>
      <update id="updateByPrimaryKey" parameterType="com.xlb.ssm.model.Order" >
        update t_hibernate_order
        set order_no = #{orderNo,jdbcType=VARCHAR}
        where order_id = #{orderId,jdbcType=INTEGER}
      </update>
    </mapper>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78

    1.3 建立Vo类

    BookVo:

    package com.xlb.ssm.model.vo;
     
    import com.xlb.ssm.model.Order;
    import com.xlb.ssm.model.OrderItem;
     
    import java.util.List;
     
    /**
     * @author 波哥
     * @site 2212371722
     * @company 波哥集团
     * @create  2022-08-16 8:15
     *
     * Vo类不仅仅包含当前表的信息、还能包含相关联的表的信息
     *
     * 当前订单会有一个或者多个订单项,多个订单先必须要集合进行接受
     */
    public class OrderVo extends Order {
        //需求1:通过订单号查询本次订单的详情信息及对应的所有订单
        private List<OrderItem> orderItems;
     
        public List<OrderItem> getOrderItems() {
            return orderItems;
        }
     
        public void setOrderItems(List<OrderItem> orderItems) {
            this.orderItems = orderItems;
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29

    BookItemVo:

    package com.xlb.ssm.model.vo;
     
    import com.xlb.ssm.model.Order;
    import com.xlb.ssm.model.OrderItem;
    import lombok.Data;
     
    /**
     * @author 波哥
     * @site 2212371722
     * @company 波哥集团
     * @create  2022-08-16 8:35
     *
     * 某一个订单项一定属于某个订单的
     */
    @Data
    public class OrderItemVo extends OrderItem {
     
        private Order order;
     
        public Order getOrder() {
            return order;
        }
     
        public void setOrder(Order order) {
            this.order = order;
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27

    添加@Data注释:省略了get、set、toString、构造方法。

    在这里插入图片描述
    再然后分别在OrderMapper.java 和 OrderBiz 里面添加查询的方法

        OrderVo queryOrderVoByOrderId(@Param("orderId") Integer orderId);
    
    • 1

    创建实现类OrderBizImpl

    package com.xlb.ssm.biz.impl;
     
    import com.xlb.ssm.biz.OrderBiz;
    import com.xlb.ssm.mapper.OrderMapper;
    import com.xlb.ssm.model.Order;
    import com.xlb.ssm.model.vo.OrderVo;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Service;
     
    /**
     * @author 波哥
     * @site 2212371722
     * @company 波哥集团
     * @create  2022-08-16 9:52
     */
    @Service
    public class OrderBizImpl implements OrderBiz {
     
        @Autowired
        private OrderMapper orderMapper;
     
        @Override
        public int deleteByPrimaryKey(Integer orderId) {
            return 0;
        }
     
        @Override
        public int insert(Order record) {
            return 0;
        }
     
        @Override
        public int insertSelective(Order record) {
            return 0;
        }
     
        @Override
        public Order selectByPrimaryKey(Integer orderId) {
            return null;
        }
     
        @Override
        public OrderVo queryOrderVoByOrderId(Integer orderId) {
            return orderMapper.queryOrderVoByOrderId(orderId);
        }
     
        @Override
        public int updateByPrimaryKeySelective(Order record) {
            return 0;
        }
     
        @Override
        public int updateByPrimaryKey(Order record) {
            return 0;
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56

    测试类OrderBizImplTest

    package com.xlb.ssm.biz.impl;
     
    import com.xlb.ssm.biz.OrderBiz;
    import com.xlb.ssm.model.Order;
    import com.xlb.ssm.model.vo.OrderVo;
    import org.junit.Test;
    import org.junit.runner.RunWith;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.test.context.ContextConfiguration;
    import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
     
    import static org.junit.Assert.*;
     
    /**
     * @author 波哥
     * @site 2212371722
     * @company 波哥集团
     * @create  2022-08-16 9:54
     */
    @RunWith(SpringJUnit4ClassRunner.class)
    @ContextConfiguration(locations={"classpath:applicationContext-mybatis.xml"})
    public class OrderBizImplTest {
     
        @Autowired
        private OrderBiz orderBiz;
     
        //需求1:通过订单号查询本次订单的详情信息及对应的所有订单
        //select * from t_hibernate_order o,t_hibernate_order_item oi
        //where o.order_id = oi.oid and o.order_id = 9
        @Test
        public void queryOrderVoByOrderId() {
            OrderVo orderVo = orderBiz.queryOrderVoByOrderId(9);
            System.out.println(orderVo);
            //打印订单项
            System.out.println(orderVo.getOrderItems());
        }
     
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38

    结果
    在这里插入图片描述

    二、多对对

    需求:根据书籍id,查询书籍信息以及所属类别信息;

    2.1 逆向生成代码

    配置要生成的实体类:generatorConfig.xml

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
            "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd" >
    <generatorConfiguration>
        <!-- 引入配置文件 -->
        <properties resource="jdbc.properties"/>
    
        <!--指定数据库jdbc驱动jar包的位置-->
        <classPathEntry location="E:\\maven\\mavenjar\\mysql\\mysql-connector-java\\5.1.44\\mysql-connector-java-5.1.44.jar"/>
    
        <!-- 一个数据库一个context -->
        <context id="infoGuardian">
            <!-- 注释 -->
            <commentGenerator>
                <property name="suppressAllComments" value="true"/><!-- 是否取消注释 -->
                <property name="suppressDate" value="true"/> <!-- 是否生成注释代时间戳 -->
            </commentGenerator>
    
            <!-- jdbc连接 -->
            <jdbcConnection driverClass="${jdbc.driver}"
                            connectionURL="${jdbc.url}" userId="${jdbc.username}" password="${jdbc.password}"/>
    
            <!-- 类型转换 -->
            <javaTypeResolver>
                <!-- 是否使用bigDecimal, false可自动转化以下类型(Long, Integer, Short, etc.-->
                <property name="forceBigDecimals" value="false"/>
            </javaTypeResolver>
    
            <!-- 01 指定javaBean生成的位置 -->
            <!-- targetPackage:指定生成的model生成所在的包名 -->
            <!-- targetProject:指定在该项目下所在的路径  -->
            <javaModelGenerator targetPackage="com.xlb.ssm.model"
                                targetProject="src/main/java">
                <!-- 是否允许子包,即targetPackage.schemaName.tableName -->
                <property name="enableSubPackages" value="false"/>
                <!-- 是否对model添加构造函数 -->
                <property name="constructorBased" value="true"/>
                <!-- 是否针对string类型的字段在set的时候进行trim调用 -->
                <property name="trimStrings" value="false"/>
                <!-- 建立的Model对象是否 不可改变  即生成的Model对象不会有 setter方法,只有构造方法 -->
                <property name="immutable" value="false"/>
            </javaModelGenerator>
    
            <!-- 02 指定sql映射文件生成的位置 -->
            <sqlMapGenerator targetPackage="com.xlb.ssm.mapper"
                             targetProject="src/main/java">
                <!-- 是否允许子包,即targetPackage.schemaName.tableName -->
                <property name="enableSubPackages" value="false"/>
            </sqlMapGenerator>
    
            <!-- 03 生成XxxMapper接口 -->
            <!-- type="ANNOTATEDMAPPER",生成Java Model 和基于注解的Mapper对象 -->
            <!-- type="MIXEDMAPPER",生成基于注解的Java Model 和相应的Mapper对象 -->
            <!-- type="XMLMAPPER",生成SQLMap XML文件和独立的Mapper接口 -->
            <javaClientGenerator targetPackage="com.xlb.ssm.mapper"
                                 targetProject="src/main/java" type="XMLMAPPER">
                <!-- 是否在当前路径下新加一层schema,false路径com.oop.eksp.user.model, true:com.oop.eksp.user.model.[schemaName] -->
                <property name="enableSubPackages" value="false"/>
            </javaClientGenerator>
    
            <!-- 配置表信息 -->
            <!-- schema即为数据库名 -->
            <!-- tableName为对应的数据库表 -->
            <!-- domainObjectName是要生成的实体类 -->
            <!-- enable*ByExample是否生成 example类 -->
            <!--<table schema="" tableName="t_book" domainObjectName="Book"-->
            <!--enableCountByExample="false" enableDeleteByExample="false"-->
            <!--enableSelectByExample="false" enableUpdateByExample="false">-->
            <!--&lt;!&ndash; 忽略列,不生成bean 字段 &ndash;&gt;-->
            <!--&lt;!&ndash; <ignoreColumn column="FRED" /> &ndash;&gt;-->
            <!--&lt;!&ndash; 指定列的java数据类型 &ndash;&gt;-->
            <!--&lt;!&ndash; <columnOverride column="LONG_VARCHAR_FIELD" jdbcType="VARCHAR" /> &ndash;&gt;-->
            <!--</table>-->
    
          <table schema="" tableName="t_hibernate_book" domainObjectName="Hbook"
                   enableCountByExample="false" enableDeleteByExample="false"
                   enableSelectByExample="false" enableUpdateByExample="false">
            </table>
     
            <table schema="" tableName="t_hibernate_category" domainObjectName="Category"
                   enableCountByExample="false" enableDeleteByExample="false"
                   enableSelectByExample="false" enableUpdateByExample="false">
            </table>
     
            <table schema="" tableName="t_hibernate_book_category" domainObjectName="HbookCategory"
                   enableCountByExample="false" enableDeleteByExample="false"
                   enableSelectByExample="false" enableUpdateByExample="false">
            </table>
    
    ————————————————
    版权声明:本文为CSDN博主「_Leaf1217」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/qq_63492318/article/details/126352928
    
        </context>
    </generatorConfiguration>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82
    • 83
    • 84
    • 85
    • 86
    • 87
    • 88
    • 89
    • 90
    • 91
    • 92
    • 93
    • 94
    • 95

    2.2 创建Vo类

    CategoryVo

    package com.xlb.ssm.model.vo;
     
    import com.xlb.ssm.model.Category;
    import com.xlb.ssm.model.Hbook;
    import lombok.Data;
    import lombok.ToString;
     
    import java.util.List;
     
    /**
     * @author 波哥
     * @site 2212371722
     * @company 波哥集团
     * @create  2022-08-16 10:56
     */
    @Data
    public class CategoryVo extends Category {
        private List<Hbook> hbooks;
     
        public List<Hbook> getHbooks() {
            return hbooks;
        }
     
        public void setHbooks(List<Hbook> hbooks) {
            this.hbooks = hbooks;
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27

    HbookVo

    package com.xlb.ssm.model.vo;
     
    import com.xlb.ssm.model.Category;
    import com.xlb.ssm.model.Hbook;
    import lombok.Data;
     
    import java.util.List;
     
    /**
     * @author 波哥
     * @site 2212371722
     * @company 波哥集团
     * @create  2022-08-16 10:56
     */
    @Data
    public class HbookVo extends Hbook {
        private List<Category> categories;
     
        public List<Category> getCategories() {
            return categories;
        }
     
        public void setCategories(List<Category> categories) {
            this.categories = categories;
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26

    创建实现类:HbookCategoryBizImpl

    package com.xlb.ssm.biz.impl;
     
    import com.xlb.ssm.biz.HbookCategoryBiz;
    import com.xlb.ssm.mapper.HbookCategoryMapper;
    import com.xlb.ssm.model.HbookCategory;
    import com.xlb.ssm.model.vo.CategoryVo;
    import com.xlb.ssm.model.vo.HbookVo;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Service;
     
    /**
     * @author 波哥
     * @site 2212371722
     * @company 波哥集团
     * @create  2022-08-16 10:56
     */
    @Service
    public class HbookCategoryBizImpl implements HbookCategoryBiz {
     
        @Autowired
        private HbookCategoryMapper hbookCategoryMapper;
     
        @Override
        public int deleteByPrimaryKey(Integer bcid) {
            return 0;
        }
     
        @Override
        public int insert(HbookCategory record) {
            return 0;
        }
     
        @Override
        public int insertSelective(HbookCategory record) {
            return 0;
        }
     
        @Override
        public HbookCategory selectByPrimaryKey(Integer bcid) {
            return null;
        }
     
        @Override
        public int updateByPrimaryKeySelective(HbookCategory record) {
            return 0;
        }
     
        @Override
        public int updateByPrimaryKey(HbookCategory record) {
            return 0;
        }
     
        @Override
        public HbookVo queryByBookId(Integer bookId) {
            return hbookCategoryMapper.queryByBookId(bookId);
        }
     
        @Override
        public CategoryVo queryByCid(Integer cid) {
            return hbookCategoryMapper.queryByCid(cid);
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62

    然后再创建测试类进行测试:HbookCategoryBizImplTest

    package com.xlb.ssm.biz.impl;
     
    import com.xlb.ssm.biz.HbookCategoryBiz;
    import com.xlb.ssm.model.vo.CategoryVo;
    import com.xlb.ssm.model.vo.HbookVo;
    import org.junit.Test;
    import org.junit.runner.RunWith;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.test.context.ContextConfiguration;
    import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
     
    import static org.junit.Assert.*;
     
    /**
     * @author 波哥
     * @site 2212371722
     * @company 波哥集团
     * @create  2022-08-16 10:56
     */
    @RunWith(SpringJUnit4ClassRunner.class)
    @ContextConfiguration(locations={"classpath:applicationContext-mybatis.xml"})
    public class HbookCategoryBizImplTest {
     
        @Autowired
        private HbookCategoryBiz hbookCategoryBiz;
     
        @Test
        public void queryByBookId() {
            HbookVo hbookVo = hbookCategoryBiz.queryByBookId(8);
            System.out.println(hbookVo);
        }
     
        @Test
        public void queryByCid() {
            CategoryVo categoryVo = hbookCategoryBiz.queryByCid(8);
            System.out.println(categoryVo);
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38

    结果
    在这里插入图片描述

  • 相关阅读:
    自动化测试难题,验证码如何解决
    手写简单版SpringMVC
    SOLIDWORKS 2024新功能之Visualize篇
    这些不知道,别说你熟悉 Nacos,深度源码解析!
    k8s集群Job Pod 容器可能因为多种原因失效,想要更加稳定的使用Job负载,有哪些需要注意的地方?
    MVCC实现过程
    1-前端基本知识-HTML
    mac 环境docker占用空间清除
    C++学习之引用
    C++11新特性 auto
  • 原文地址:https://blog.csdn.net/qq_63531917/article/details/126364163