资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

使用mybatis递归怎么实现一对多

这篇文章给大家介绍使用mybatis递归怎么实现一对多,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

创新互联公司专注于庆安网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供庆安营销型网站建设,庆安网站制作、庆安网页设计、庆安网站官网定制、微信小程序定制开发服务,打造庆安网络公司原创品牌,更为您提供庆安网站排名全网营销落地服务。

CREATE TABLE `goods_category` (
 `goodscateid` int(11) NOT NULL AUTO_INCREMENT,
 `name` varchar(255) DEFAULT NULL,
 `parentid` int(11) DEFAULT NULL,
 `description` varchar(255) DEFAULT NULL,
 `displayorder` int(11) DEFAULT NULL,
 `commissionrate` double DEFAULT NULL,
 `enabled` int(11) DEFAULT NULL,
 PRIMARY KEY (`goodscateid`)
) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8;

/*Data for the table `goods_category` */
insert into `goods_category`(`goodscateid`,`name`,`parentid`,`description`,`displayorder`,`commissionrate`,`enabled`) values (1,'java',0,'111',NULL,NULL,NULL),(2,'spring',1,'222',NULL,NULL,NULL),(3,'springmvc',1,'333',NULL,NULL,NULL),(4,'struts',1,'444',NULL,NULL,NULL),(5,'jdbc',0,'555',NULL,NULL,NULL),(6,'hibernate',5,'666',NULL,NULL,NULL),(7,'mybatis',5,'777',NULL,NULL,NULL),(8,'jdbctemplate',5,'888',NULL,NULL,NULL),(9,'beanfactory',3,'999',NULL,NULL,NULL),(10,'factorybean',3,'000',NULL,NULL,NULL);

实体类

@JsonIgnoreProperties({"displayorder","commissionrate","enabled"})
public class GoodsCategoryVo {
 private Integer goodscateid;
 private String name;
 private Integer parentid;
 private String description;
 private Integer displayorder;
 private Double commissionrate;
 private Integer enabled;
 private List catelist;
get 。。。 set。。。 tostring。。。

dao层

public interface GoodsMapper {
 List getCategory(Integer pid);
}

mapper.xml


  
  
  
  
 

 
  select * from goods_category where parentid=#{pid}
  ORDER BY displayorder,goodscateid
 

之后直接访问对应的方法,即可查询出来

@RequestMapping("/getGoodsList")
 @ResponseBody
 public List getGoodsList(){
  // pid指定为0
  List list = goodsMapper.getCategory(0);
  return list;
 }

结果,可以使用json在线工具 ,也可以使用这个工具

[
 {
  "goodscateid": 1,
  "name": "java",
  "parentid": 0,
  "description": "111",
  "catelist": [
   {
    "goodscateid": 2,
    "name": "spring",
    "parentid": 1,
    "description": "222",
    "catelist": []
   },
   {
    "goodscateid": 3,
    "name": "springmvc",
    "parentid": 1,
    "description": "333",
    "catelist": [
     {
      "goodscateid": 9,
      "name": "beanfactory",
      "parentid": 3,
      "description": "999",
      "catelist": []
     },
     {
      "goodscateid": 10,
      "name": "factorybean",
      "parentid": 3,
      "description": "000",
      "catelist": []
     }
    ]
   },
   {
    "goodscateid": 4,
    "name": "struts",
    "parentid": 1,
    "description": "444",
    "catelist": []
   }
  ]
 },
 {
  "goodscateid": 5,
  "name": "jdbc",
  "parentid": 0,
  "description": "555",
  "catelist": [
   {
    "goodscateid": 6,
    "name": "hibernate",
    "parentid": 5,
    "description": "666",
    "catelist": []
   },
   {
    "goodscateid": 7,
    "name": "mybatis",
    "parentid": 5,
    "description": "777",
    "catelist": []
   },
   {
    "goodscateid": 8,
    "name": "jdbctemplate",
    "parentid": 5,
    "description": "888",
    "catelist": []
   }
  ]
 }
]

mybatis递归就是这么的简单。

说下mybatis一对多实现

对应的bean

public class Dept {
 private Integer id;
 private String deptName;
 private String locAdd;
 private List emps
@JsonIgnoreProperties("dept")
public class Emp {
 private Integer id;
 private String name;
 private Dept dept;

dao层

public interface DeptMapper {
 public Dept getDeptById(Integer id);
}
public interface EmpMapper {
 public Emp getEmpByDeptId(Integer deptId); 
}

mapper.xml文件


 
 
 
 
  
 
 
 
  select * from tbl_dept where id=#{id}
 

 
 
 
 
 
 select * from tbl_emp where deptId=#{deptId}
 

对应的controller方法

@RequestMapping("/getDeptById")
 @ResponseBody
 public Dept getDeptById() {
  Dept deptById = deptMapper.getDeptById(1);
  return deptById;
 }

无非就是比简单查询复杂一些罢了。

代码目录

使用mybatis递归怎么实现一对多

关于使用mybatis递归怎么实现一对多就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。


网站标题:使用mybatis递归怎么实现一对多
网站网址:http://cdkjz.cn/article/pechgs.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

业务热线:400-028-6601 / 大客户专线   成都:13518219792   座机:028-86922220