当前位置: 首页 > news >正文

网站一年域名费用多少钱高清的广州网站建设

网站一年域名费用多少钱,高清的广州网站建设,建站网站系统,家装平台文章目录 前言一、一对一映射1.1 创建实体1.2 xml配置 二、一对多映射2.1 创建实体2.2 resultMap配置2.3 测试 三、 多对多映射3.1 创建实体3.2 resultMap配置3.3 测试 前言 MyBatis是一个Java持久化框架,它提供了一种将数据库表和Java对象之间进行关系映射的方式。…

文章目录

  • 前言
  • 一、一对一映射
    • 1.1 创建实体
    • 1.2 xml配置
  • 二、一对多映射
    • 2.1 创建实体
    • 2.2 resultMap配置
    • 2.3 测试
  • 三、 多对多映射
    • 3.1 创建实体
    • 3.2 resultMap配置
    • 3.3 测试

前言

MyBatis是一个Java持久化框架,它提供了一种将数据库表和Java对象之间进行关系映射的方式。这种关系映射可以通过XML配置文件或注解来定义。

在MyBatis中,关系映射是通过Mapper接口和SQL语句来实现的。Mapper接口定义了数据库操作的方法,而SQL语句则定义了具体的数据库操作。

在关系映射中,MyBatis提供了一些注解和XML配置来实现对象和数据库表之间的映射关系。例如,@Table注解可以用于指定Java对象对应的数据库表,@Column注解可以用于指定Java对象属性对应的数据库字段。

此外,MyBatis还支持一对一、一对多、多对一和多对多等复杂的关系映射。通过配置关联关系,可以在查询时自动加载相关联的对象。

一、一对一映射

一对一映射是指数据库中的两个表之间存在一对一的关系,即一个记录在一个表中只对应一个记录在另一个表中的情况。

1.1 创建实体

假设我们有两个表:student(学生表)和 id_card(身份证表)。每个学生只有一个身份证,而每个身份证只属于一个学生。

public class Student {private int id;private String name;private IdCard idCard;// 省略构造函数和getter/setter方法
}public class IdCard {private int id;private String number;private Student student;// 省略构造函数和getter/setter方法
}

1.2 xml配置

使用XML配置的方式,可以在Student类对应的中使用标签来定义关联关系:

<resultMap id="studentResultMap" type="com.xqx.model.Student"><!-- 省略其他映射配置 --><association property="idCard" javaType="com.xqx.model.IdCard"><id property="id" column="id_card_id"/><result property="number" column="id_card_number"/></association>
</resultMap>

通过以上配置,我们可以在查询学生信息时,自动加载关联的身份证信息。

二、一对多映射

一对多映射是指数据库中的两个表之间存在一对多的关系,即一个记录在一个表中对应多个记录在另一个表中的情况。例如,一个订单(Oeder)与一个订单详情(OrderItem)之间的关系。假设我们有以下表结构:
在这里插入图片描述

2.1 创建实体

建立一个OrderVo。OrderVo 类用于表示一个订单及其关联的订单项。

package com.xqx.vo;import com.xqx.model.Order;
import com.xqx.model.OrderItem;
import lombok.Data;import java.util.ArrayList;
import java.util.List;@Data
public class OrderVo extends Order {private List<OrderItem> orderItems = new ArrayList<>();
} 

2.2 resultMap配置

    <resultMap id="OrderVoMap" type="com.xqx.vo.OrderVo"><result column="order_id" property="orderId"></result><result column="order_no" property="orderNo"></result>//多关系使用collection<collection property="orderItems" ofType="com.xqx.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>

2.3 测试

OrderMapper

package com.xqx.mapper;import com.xqx.model.Order;
import com.xqx.vo.OrderVo;
import org.springframework.stereotype.Repository;@Repository
public interface OrderMapper {OrderVo selectbyOid(Integer boid);}

OrderBiz

package com.xqx.biz;import com.xqx.vo.OrderVo;public interface OrderBiz {OrderVo selectbyOid(Integer boid);
}

OrderBizImpl


package com.xqx.biz;import com.xqx.mapper.OrderMapper;
import com.xqx.vo.OrderVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;@Service
public class OrderBizImpl implements OrderBiz {@Autowiredprivate OrderMapper OrderMapper;@Overridepublic OrderVo selectbyOid(Integer boid) {return OrderMapper.selectbyOid(boid);}
}

Junit测试

package com.xqx.biz;import com.xqx.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;@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations={"classpath:Spring-context.xml"})
public class OrderBizImplTest {@Autowiredprivate OrderBiz OrderBiz;@Testpublic void selectbyOid() {OrderVo orderVO = OrderBiz.selectbyOid(7);System.out.println(orderVO);orderVO.getOrderItems().forEach(System.out::println);}
}

测试结果
在这里插入图片描述

三、 多对多映射

多对多映射是指多个对象与多个对象具有多对多的关系。以根据书籍id查找关联属性类别为例
在这里插入图片描述

3.1 创建实体

vo对象

package com.xqx.vo;import com.xqx.model.BookCategory;
import com.xqx.model.Book;
import lombok.Data;
import java.util.List;@Data
public class BookVo extends Book {private List<BookCategory> bookc = new ArrayList<>();
}

3.2 resultMap配置

  <resultMap id="BookVoMap" type="com.xqx.vo.BookVo" ><result column="book_id" property="bookId"></result><result column="book_name" property="bookName"></result><result column="price" property="price"></result><collection property="bookc" ofType="com.xqx.model.Category"><result column="category_id" property="categoryId"></result><result column="category_name" property="categoryName"></result></collection></resultMap><!--根据书籍的id查询书籍的信息及所属属性--><select id="selectByBookId" resultMap="BookVoMap" parameterType="java.lang.Integer">SELECT*FROMt_hibernate_book b,t_hibernate_category c,t_hibernate_book_category bcWHEREb.book_id = bc.bidAND c.category_id = bc.bcidAND b.book_id = #{bid}</select>

3.3 测试

BookMapper

package com.xqx.mapper;import com.xqx.model.Book;
import com.xqx.vo.BookVo;
import org.springframework.stereotype.Repository;@Repository
public interface BookMapper {HbookVo selectByBid(Integer bid);}

BookBiz

package com.xqx.biz;import com.xqx.vo.BookVo;public interface BookBiz {HbookVo selectByBid(Integer bid);
}

BookBizImpl

package com.xqx.biz;import com.xqx.mapper.BookMapper;
import com.xqx.vo.BookVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;@Service
public class BookBizImpl implements BookBiz {@Autowiredprivate BookMapper BookMapper;@Overridepublic BookVo selectByBid(Integer bid) {return BookMapper.selectByBid(bid);}
}

junit测试

package com.xqx.biz;import com.xqx.vo.BookVo;
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;@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations={"classpath:Spring-context.xml"})
public class BookBizImplTest {@Autowiredprivate BookBiz BookBiz;@Testpublic void selectByBid() {BookVo bookVo = BookBiz.selectByBid(8);System.out.println(bookVo);BookVo.getHcategory().forEach(System.out::println);}
}

在这里插入图片描述

http://www.yayakq.cn/news/556635/

相关文章:

  • 交互网站是什么东莞网站制作及推广价格
  • 如何做网站模版海贼王网页设计素材
  • 做一个付费网站多少钱企业建设网站的一般过程
  • 室内设计可以做网站吗wordpress dux5.3
  • 台州网站推广技巧付费洛阳青峰网络科技有限公司
  • 做网站最好用的软件可以做试卷的网站英语怎么说
  • 苏州建筑类网站建设wordpress获取当前子分类
  • 网站设计是怎么设计的php主做哪种类型网站
  • 第一次开票网站建设怎么开做网站的生产方式
  • 神奇的工作室最新网站wordpress 导入的模板
  • 深圳网站建设lxhd企业展厅设计图片欣赏
  • 怎么做网站受众分析wordpress会员注册为
  • 企业网站设计需要了解网站推广计划包括哪些
  • 做设计的素材网站有哪些成都网站建设有名的
  • 一般做企业网站需要什么网站开发后期要解决的问题
  • 创业公司做网站网站专题制作
  • 青岛网站建设方案公司太原学网站开发的学校
  • 沈阳网站建设开发秦皇岛有能做网页的地方吗
  • 绵阳低价网站建设上海seo公司排名
  • 站长之家网站查询做一家新闻媒体网站多少钱
  • 免费网站空间申请百度seo可能消失
  • 做简历的网站有哪些小程序开发平台免费
  • 怎么去做网站wordpress目录 读写权限设置
  • 成都网站建设网站制作公司京东电子商务网站建设目的
  • 天津网站设计服务公司深圳企业建站高性价比的选择
  • 淮北做网站顺德网站建设合理使用颜色搭配_方能达到最佳视觉效果
  • 提供信息门户网站定制省级网站 开发建设 资质
  • 哪些网站做任务可以赚钱的网站的建设意见
  • 网站服务对生活的影响自己做的网站怎么赚钱吗
  • 国家高新技术企业查询网站蓝色旅游资讯网站模板