mybatis中的高级映射一对一、一对多、多对多

2019-04-15 14:58发布

学习hibernate的时候,小编已经接触多各种映射,mybatis中映射有到底是如何运转的,今天这篇博文,小编主要来简单的介绍一下mybatis中的高级映射,包括一对一、一对多、多对多,希望多有需要的小伙伴有帮助,小编主要从四个方面进行介绍,订单商品数据模型、一对一查询、一对多查询、多对多查询。 一、订单商品数据模型 1、数据库执行脚本,如下所示: [sql] view plain copy  print?在CODE上查看代码片派生到我的代码片
  1. "font-family:Comic Sans MS;font-size:18px;">CREATE TABLE items (  
  2.   id INT NOT NULL  AUTO_INCREMENT,  
  3.   itemsname VARCHAR(32) NOT NULL COMMENT '商品名称',  
  4.   price FLOAT(10,1) NOT NULL COMMENT '商品定价',  
  5.   detail TEXT COMMENT '商品描述',  
  6.   pic VARCHAR(64) DEFAULT NULL COMMENT '商品图片',  
  7.   createtime DATETIME NOT NULL COMMENT '生产日期',  
  8.   PRIMARY KEY (id)  
  9. )  DEFAULT CHARSET=utf8;  
  10.   
  11. /*Table structure for table `orderdetail` */  
  12.   
  13. CREATE TABLE orderdetail (  
  14.   id INT NOT NULL AUTO_INCREMENT,  
  15.  orders_id INT NOT NULL COMMENT '订单id',  
  16.   items_id INT NOT NULL COMMENT '商品id',  
  17.   items_num INT  DEFAULT NULL COMMENT '商品购买数量',  
  18.   PRIMARY KEY (id),  
  19.   KEY `FK_orderdetail_1` (`orders_id`),  
  20.   KEY `FK_orderdetail_2` (`items_id`),  
  21.   CONSTRAINT `FK_orderdetail_1` FOREIGN KEY (`orders_id`) REFERENCES `orders` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION,  
  22.   CONSTRAINT `FK_orderdetail_2` FOREIGN KEY (`items_id`) REFERENCES `items` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION  
  23. )  DEFAULT CHARSET=utf8;  
  24.   
  25. /*Table structure for table `orders` */  
  26.   
  27. CREATE TABLE orders (  
  28.   id INT NOT NULL AUTO_INCREMENT,  
  29.   user_id INT NOT NULL COMMENT '下单用户id',  
  30.   number VARCHAR(30) NOT NULL COMMENT '订单号',  
  31.   createtime DATETIME NOT NULL COMMENT '创建订单时间',  
  32.   note VARCHAR(100) DEFAULT NULL COMMENT '备注',  
  33.   PRIMARY KEY (`id`),  
  34.   KEY `FK_orders_1` (`user_id`),  
  35.   CONSTRAINT `FK_orders_id` FOREIGN KEY (`user_id`) REFERENCES `t_user` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION  
  36. )  DEFAULT CHARSET=utf8;  
  37.   
  38. /*Table structure for table `t_user` */  
  39.   
  40. CREATE TABLE t_user (  
  41.   id INT NOT NULL AUTO_INCREMENT,  
  42.   username VARCHAR(32) NOT NULL COMMENT '用户名称',  
  43.   birthday DATE DEFAULT NULL COMMENT '生日',  
  44.   sex CHAR(1) DEFAULT NULL COMMENT '性别',  
  45.   address  VARCHAR(256) DEFAULT NULL COMMENT '地址',  
  46.   PRIMARY KEY (`id`)  
  47. DEFAULT CHARSET=utf8;  
  48.   
测试数据代码 [sql] view plain copy  print?在CODE上查看代码片派生到我的代码片
  1. "font-family:Comic Sans MS;font-size:18px;">/*Data for the table `items` */  
  2.   
  3. INSERT  INTO items(itemsname,price,detail,pic,createtime) VALUES   
  4. ('台式机',3000.0,'该电脑质量非常好!',NULL,'2015-07-07 13:28:53'),  
  5. ('笔记本',6000.0,'笔记本性能好,质量好!',NULL,'2015-07-08 13:22:57'),  
  6. ('背包',200.0,'名牌背包,容量大质量好!',NULL,'2015-07-010 13:25:02');  
  7.   
  8. /*Data for the