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-地区三表生成地区树的更多相关文章

  1. LinqToDB 源码分析——生成表达式树

    当我们知道了Linq查询要用到的数据库信息之后.接下就是生成对应的表达式树.在前面的章节里面笔者就已经介绍过.生成表达式树是事实离不开IQueryable<T>接口.而处理表达式树离不开I ...

  2. MyBatis代码自动生成(利用命令)

    这几天在学习springmvc,需要用到mybatis,所以研究了一下mybatis自动代码生成,当然也可以手动敲,但是那样效率非常的慢,并且出错率也是很高的,利用MyBatis生成器自动生成实体类. ...

  3. MyBatis代码自动生成

    MyBatis的代码自动生成的功能,由于MyBatis属于一种半自动的ORM框架,所以主要的工作就是配置Mapping映射文件,但是由于手写映射文件很容易出错,所以可利用MyBatis生成器自动生成实 ...

  4. 使用Mybatis Generator自动生成Mybatis相关代码

    本文将简要介绍怎样利用Mybatis Generator自动生成Mybatis的相关代码: 一.构建一个环境: 1. 首先创建一个表: CREATE TABLE pet (name VARCHAR(2 ...

  5. paip.tree 生成目录树到txt后的折叠查看

    paip.tree 生成目录树到txt后的折叠查看 作者Attilax ,  EMAIL:1466519819@qq.com  来源:attilax的专栏 地址:http://blog.csdn.ne ...

  6. Mybatis自己主动生成代码

    在mybatis自己主动生成代码有两种方式: 方式一:是通过使用eclipse作为开发工具.採用maven来构建项目生成的.以下的演示是通过第一种方式. 今天来记录下mybatis-generator ...

  7. 泛型方法动态生成表达式树 Expression

    public string GetGridJSON(TraderInfo model) { IQueryable<TraderInfo> Temp = db.TraderInfo; if ...

  8. Springboot 系列(十一)使用 Mybatis(自动生成插件) 访问数据库

    1. Springboot mybatis 介绍 MyBatis 是一款优秀的持久层框架,它支持定制化 SQL.存储过程以及高级映射.MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数获取 ...

  9. SpringBoot 添加mybatis generator 自动生成代码插件

    自动生成数据层代码,提高开发效率 1.pom添加插件,并指定配置文件路径 <!-- mybatis generator 自动生成代码插件 --> <plugin> <gr ...

随机推荐

  1. 010-PHP输出数组中第某个元素

    <?php $monthName = array(1 => "January", "February", "March",//初 ...

  2. react 如何引入打印控件 CLodop

    下载插件,官网地址 http://www.lodop.net/download.html  ,选择综合版,解压下载的文件.直接点击 安装,很简单,就不一一说明了. 复制下面几个文件,到react项目中 ...

  3. 17 Resources AssetBundle资源打包

    Resources在Unity中可以使用www类加载远程文件或本地文件,或是在脚本中定义字段或数组从外部拖入. 在Unity中提供了Resources类读取资源要通过Resources类读取的文件必须 ...

  4. Golang的环境安装

    Golang的环境安装 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Go语言环境安装 1>.下载Golang的安装包 博主推荐阅读: https://studygola ...

  5. NASA航天技术演示实验集

    为了支持太空探索NASA开起了一系列先进太空技术演示实验. 具体的实验实验地址在:https://www.nasa.gov/mission_pages/tdm/main/overview.html 通 ...

  6. 2.15 使用web 编写一个简单记事本

    首先陈列问题  (等待解决): 1. 界面是使用 H5   iframe 标签合并而成的,当窗口化之后点击任务栏,显示的内容会在任务栏的下边 希望可以找其他方式替代 (其他方法不熟练,不能应用) 如图 ...

  7. jsp页面使用<% 语句%> SQL Server数据库报空指针异常(在控制台可以正常执行)

    一直反感用SQL Server数据库,很影响电脑性能!!数据库作业不得不用 前几天作业一直报空指针异常: 自己检查了所传参数,和数组不为空 数据库查询语句不为空 然后查看SQL服务是否启动  主要是S ...

  8. ELK 介绍

    章节 ELK 介绍 ELK 安装Elasticsearch ELK 安装Kibana ELK 安装Beat ELK 安装Logstash ELK是什么? ELK是3个开源产品的组合: Elastics ...

  9. 使用BP爆破有token值的密码(10.17 第二十三天)

    此次爆破使用的网站是DVWA来进行测试 工具:Burp suite 1.进去DVWA网站,选择高级安全等级,再进入到Brute Force(爆破)模块,假设此时已知账号是admin的情况下我们不知道密 ...

  10. 【5分钟+】计算机系统结构:CPU性能公式

    计算机系统结构:CPU性能公式 基础知识 CPU 时间:一个程序在 CPU 上运行的时间.(不包括I/O时间) 主频.时钟频率:CPU 内部主时钟的频率,表示1秒可以完成多少个周期. 例如,主频为 4 ...