mybatis-地区三表生成地区树
package com.dhht.manager.vo.area; import lombok.Data; import java.io.Serializable;
import java.util.List; /**
* @Author: sh
* @Description: ProvinceVO
* @Date: 19:33 2019/12/23
*/
@Data
public class ProvinceVO implements Serializable {
private static final long serialVersionUID = 8581900297888963919L;
private Long id;
private String name;
private String code;
private Long regionLevel;
private String regionName;
private Long parentId;
private List<CityVO> children;
}
package com.dhht.manager.vo.area; import lombok.Data; import java.io.Serializable;
import java.util.List; /**
* @Author: sh
* @Description: CityVO
* @Date: 19:33 2019/12/23
*/
@Data
public class CityVO implements Serializable {
private static final long serialVersionUID = -4506315529106267971L;
private Long id;
private String name;
private String code;
private Long regionLevel;
private String regionName;
private Long parentId;
private List<DistrictVO> children;
}
package com.dhht.manager.vo.area; import lombok.Data; import java.io.Serializable;
import java.util.List; /**
* @Author: sh
* @Description: DistrictVO
* @Date: 19:35 2019/12/23
*/
@Data
public class DistrictVO implements Serializable {
private static final long serialVersionUID = 6682075711606147829L; private Long id;
private String name;
private String code;
private Long regionLevel;
private String regionName;
private Long parentId;
private List<Object> children;
}
package com.dhht.dao; import com.dhht.manager.vo.area.DistrictVO;
import com.dhht.manager.vo.area.ProvinceVO;
import com.dhht.model.City;
import org.apache.ibatis.annotations.Param; import java.util.List; public interface CityMapper { List<ProvinceVO> treeProvinceQuery(@Param(value = "code")String code); List<City> treeCityQuery(@Param(value = "id")Long id); List<DistrictVO> treeDistrictQuery(@Param(value = "id")Long id);
}
<?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.dhht.dao.CityMapper">
<!--province-->
<resultMap id="provinceVoMap" type="com.dhht.manager.vo.area.ProvinceVO">
<id column="id" jdbcType="BIGINT" property="id" />
<result column="name" jdbcType="VARCHAR" property="name" />
<result column="code" jdbcType="VARCHAR" property="code" />
<result column="parentId" jdbcType="BIGINT" property="parentId" />
<collection property="children" column="id" select="com.dhht.dao.CityMapper.treeCityQuery"></collection>
</resultMap>
<!--end province--> <!--city-->
<resultMap id="cityVoMap" type="com.dhht.manager.vo.area.CityVO">
<id column="id" jdbcType="BIGINT" property="id" />
<result column="name" jdbcType="VARCHAR" property="name" />
<result column="code" jdbcType="VARCHAR" property="code" />
<result column="parentId" jdbcType="BIGINT" property="parentId" />
<collection property="children" column="id" select="com.dhht.dao.CityMapper.treeDistrictQuery"></collection>
</resultMap>
<!--end city--> <!--district-->
<resultMap id="districtVoMap" type="com.dhht.manager.vo.area.DistrictVO">
<id column="id" jdbcType="BIGINT" property="id" />
<result column="name" jdbcType="VARCHAR" property="name" />
<result column="code" jdbcType="VARCHAR" property="code" />
<result column="parentId" jdbcType="BIGINT" property="parentId" />
</resultMap>
<!--end district-->
<resultMap id="BaseResultMap" type="com.dhht.model.City">
<id column="id" jdbcType="BIGINT" property="id" />
<result column="name" jdbcType="VARCHAR" property="name" />
<result column="province_id" jdbcType="BIGINT" property="provinceId" />
<result column="code" jdbcType="VARCHAR" property="code" />
</resultMap> <select id="treeProvinceQuery" resultMap="provinceVoMap">
select id,name,code,NULL AS parentId
from lv_province
WHERE CODE=#{code}
</select> <select id="treeCityQuery" resultMap="cityVoMap">
select id,name,code,#{id} AS parentId
from lv_city
WHERE province_id=#{id}
</select> <select id="treeDistrictQuery" resultMap="districtVoMap">
select id,name,code,#{id} AS parentId
from lv_district
WHERE city_id=#{id}
</select>
</mapper>
mybatis-地区三表生成地区树的更多相关文章
- LinqToDB 源码分析——生成表达式树
当我们知道了Linq查询要用到的数据库信息之后.接下就是生成对应的表达式树.在前面的章节里面笔者就已经介绍过.生成表达式树是事实离不开IQueryable<T>接口.而处理表达式树离不开I ...
- MyBatis代码自动生成(利用命令)
这几天在学习springmvc,需要用到mybatis,所以研究了一下mybatis自动代码生成,当然也可以手动敲,但是那样效率非常的慢,并且出错率也是很高的,利用MyBatis生成器自动生成实体类. ...
- MyBatis代码自动生成
MyBatis的代码自动生成的功能,由于MyBatis属于一种半自动的ORM框架,所以主要的工作就是配置Mapping映射文件,但是由于手写映射文件很容易出错,所以可利用MyBatis生成器自动生成实 ...
- 使用Mybatis Generator自动生成Mybatis相关代码
本文将简要介绍怎样利用Mybatis Generator自动生成Mybatis的相关代码: 一.构建一个环境: 1. 首先创建一个表: CREATE TABLE pet (name VARCHAR(2 ...
- paip.tree 生成目录树到txt后的折叠查看
paip.tree 生成目录树到txt后的折叠查看 作者Attilax , EMAIL:1466519819@qq.com 来源:attilax的专栏 地址:http://blog.csdn.ne ...
- Mybatis自己主动生成代码
在mybatis自己主动生成代码有两种方式: 方式一:是通过使用eclipse作为开发工具.採用maven来构建项目生成的.以下的演示是通过第一种方式. 今天来记录下mybatis-generator ...
- 泛型方法动态生成表达式树 Expression
public string GetGridJSON(TraderInfo model) { IQueryable<TraderInfo> Temp = db.TraderInfo; if ...
- Springboot 系列(十一)使用 Mybatis(自动生成插件) 访问数据库
1. Springboot mybatis 介绍 MyBatis 是一款优秀的持久层框架,它支持定制化 SQL.存储过程以及高级映射.MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数获取 ...
- SpringBoot 添加mybatis generator 自动生成代码插件
自动生成数据层代码,提高开发效率 1.pom添加插件,并指定配置文件路径 <!-- mybatis generator 自动生成代码插件 --> <plugin> <gr ...
随机推荐
- php中常用的加密函数
1.MD5加密: string md5 ( string $str [, bool $raw_output = false ] ) (1)md5()默认情况下以 32 字符十六进制数字形式返回散列值, ...
- python手动实现深拷贝
深拷贝是将对象全拷贝,包括嵌套对象 def deepcopy(cls): if isinstance(cls, dict): dct = {} for k, v in cls.items(): dct ...
- Java For 循环
章节 Java 基础 Java 简介 Java 环境搭建 Java 基本语法 Java 注释 Java 变量 Java 数据类型 Java 字符串 Java 类型转换 Java 运算符 Java 字符 ...
- 01 DDL(DataDefinitionLanguage)
注: 语句用 ; 或 \g \G 表示结束 . 建库语句 : CREATE DATABASE db_name ; 查询有哪些库 : SHO ...
- WMware workstation 镜像文件
https://mirrors.aliyun.com/centos/7.4.1708/isos/x86_64/
- SQL注入汇总(手注,盲注,报错注入,宽字节,二次编码,http头部){10.22、23 第二十四 二十五天}
首先什么是SQL注入: 所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令. SQL注入有什么危害? 危害:数据泄露.脱库 ...
- springcloud--ruul(路由网关)
Zuul的主要功能就是路由转发和过滤器 实例: 1:添加依赖pom.xml: <dependencies> <dependency> <groupId>org.sp ...
- 官网英文版学习——RabbitMQ学习笔记(六)Routing
有选择的接收消息. 上一节我们使用的是fanout exchange来实现消息的发布/订阅模式,这并没有给我们带来多大的灵活性——它只能够让人盲目地进行广播.而本节我们采用direct类型的交换器来实 ...
- 19 03 13 关于 scrapy 框架的 对环球网的整体爬取(存储于 mongodb 数据库里)
关于 spinder 在这个框架里面 和不用数据库 相同 # -*- coding: utf-8 -*- import scrapy from yang_guan.items import ...
- Codeforces Round #616 (Div. 2) 题解
A. Even But Not Even 题意: 定义一个数所有位置的和为偶数它本身不为偶数的数为ebne,现在给你一个数字字符串,你可以删除任意位置上的数字使其变为ebne输出任意改变后的结果,如果 ...