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 ...
随机推荐
- SpringBoot-拦截器配置
SpringBoot-拦截器配置 SpringBoot-拦截器配置 在我们的SSM项目中,可以在web.xml中配置拦截器,但是在SpringBoot中只能使用java类来配置,配置方法如下. 创建拦 ...
- 吴裕雄--天生自然java开发常用类库学习笔记:List接口
import java.util.ArrayList ; import java.util.List ; import java.util.Collection ; public class Arra ...
- mybatis插入数据后将其ID返回
背景 mybatis没有关联保存的功能,所以主从表需要分开保存,这就涉及到主表保存后要再次获取主表ID的环节,以下介绍mybatis插入数据后返回其自增ID的两种方式 方案 1.sql获取 <i ...
- 降维之奇异值分解(SVD)
看了几篇关于奇异值分解(Singular Value Decomposition,SVD)的博客,大部分都是从坐标变换(线性变换)的角度来阐述,讲了一堆坐标变换的东西,整了一大堆图,试图“通俗易懂”地 ...
- 云时代架构阅读笔记七——Java多线程中如何使用synchronized关键字
关于线程的同步,可以使用synchronized关键字,或者是使用JDK 5中提供的java.util.concurrent.lock包中的Lock对象.本文探讨synchronized关键字. sy ...
- 2.15 使用web 编写一个简单记事本
首先陈列问题 (等待解决): 1. 界面是使用 H5 iframe 标签合并而成的,当窗口化之后点击任务栏,显示的内容会在任务栏的下边 希望可以找其他方式替代 (其他方法不熟练,不能应用) 如图 ...
- oracle基础知识小结
一.查看oracle用户.角色信息1.查看所有用户 select * from all_users; select * from user_users; 2.查看用户或角色系统权限 select * ...
- SQL中行转列(PIVOT)与列转行(UNPIVOT)
一.行转列 1.测试数据准备 CREATE TABLE [StudentScores] ( ), --学生姓名 ), --科目 [Score] FLOAT, --成绩 ) 执行结果: 2.行转列sql ...
- spring boot配置druid连接池连接mysql
Spring Boot 集成教程 Spring Boot 介绍 Spring Boot 开发环境搭建(Eclipse) Spring Boot Hello World (restful接口)例子 sp ...
- java基础源码 (2)--StringBuilder类
Serializable(接口): 是一个IO的序列化接口,实现了这个接口,就代表这个类可以序列化或者反序列化,该接口没有方法或者字段,仅用于标识可串行话的语义. Appendable(接口): /* ...