Mybatis + mysql 实现两级级联的查询

一、需求:根据Mybatis实现2级级联的查询。

根据省的id查询它下面所有的市信息。

二、实现步骤

方法一:

思想: 此种情况是“一对多”,我们在的mapper.xml中,用collection定义多的一个集合即可。

property   ---> 对应实体类中,多的那个子类,list
ofType     ---> 对应子类的试题类型
column    ----> 父类传递给子类查询的外键
select      ----> 子类查询的方法

1.定义父类+子类的实体类

package com.imocc.mall.pojo;

import lombok.Data;

import java.util.List;

/**
 * @author wy
 */
@Data
public class Province {
    private Integer id;

    private String provinceid;

    private String province;

    private List<City> list;

    @Override
    public String toString() {
        return "Province{" +
                "id=" + id +
                ", provinceid=‘" + provinceid + ‘\‘‘ +
                ", province=‘" + province + ‘\‘‘ +
                ", list=" + list +
                ‘}‘;
    }
}
package com.imocc.mall.pojo;

import lombok.Data;

@Data
public class City {
    private Integer id;

    private String cityid;

    private String city;

    private String father;

}

2.mapper类

2. mapperxml文件

3. 测试

JDBC Connection [[email protected] wrapping [email protected]] will not be managed by Spring
==>  Preparing: select * from hat_province where provinceID =?
==> Parameters: 110000(String)
<==    Columns: id, provinceID, province
<==        Row: 1, 110000, 北京市
====>  Preparing: select id, cityID, city, father from hat_city where father = ?
====> Parameters: 110000(String)
<====    Columns: id, cityID, city, father
<====        Row: 1, 110100, 市辖区, 110000
<====        Row: 2, 110200, 县, 110000
<====      Total: 2
<==      Total: 1
Closing non transactional SqlSession [[email protected]]
Province{id=1, provinceid=‘110000‘, province=‘北京市‘, list=[City(id=1, cityid=110100, city=市辖区, father=110000), City(id=2, cityid=110200, city=县, father=110000)]}

原文地址:https://www.cnblogs.com/Edward-Wang/p/12080365.html

时间: 2024-11-01 21:49:21

Mybatis + mysql 实现两级级联的查询的相关文章

[伪] 级联菜单,两级菜单

[伪] 级联菜单,两级菜单 这段时间需要做一个类似效果的一个菜单样式,所以就查了各种文档,各种百度各种搜索,的确也是搜到了不少的第三方组件,比如(CascadingMenuViewLib)就是其中一个,但是,我脑子笨,研究了3天左右的时间,改不成我需要得样子,So...我用我自己的方式,实现了这个效果(对了,还没有完全实现,因为TextView被点中的样式我还没有设置,不过这都是小事情了..) 在这里,我提供一个思路,代码很简单,当然,我也会附一些上来,好的,我首先说一下思路 首先,我们的xml

Spring MVC +MyBatis +MySQL 简单的登录查询 Demo 解决了mybatis异常

忙活了大半天,饭也没顾得上吃,哎许久不动手,一动手就出事,下面请看今天的重头戏,额吃个饭回来再发了! 1.整体结构 2.准备工作 数据库: --Mysql 5.6 创建数据库 wolf CREATE DATABASE wolf; 创建用户表 user create table user( id int  AUTO_INCREMENT  primary key, name varchar(25) not null, pwd varchar(20) not null, create_time dat

故障管理系统--select两级联动查询

写故障管理系统时,根据主类-平台进行故障搜索,需要用到select两级联动查询 我前端技术纯菜鸟,请教了个水平高的同事才搞定,所以记录下来,以免以后再忘了 前端html <form id="tab" class="form-inline" role="form" action='/search/' method='GET' style="float:right;margin-top:-48px;margin-right:0px;&

转载:30多条mysql数据库优化方法,千万级数据库记录查询轻松解决

1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描, Sql 代码 : select id from t where num is null; 可以在 num 上设置默认值 0,确保表中 num 列没有 null 值,然后这样查询: Sql 代码 : select id from t where num=0; 3.应尽量避免在 wh

解决springmvc+mybatis+mysql中文乱码问题【转】

这篇文章主要介绍了解决java中springmvc+mybatis+mysql中文乱码问题的相关资料,需要的朋友可以参考下 近日使用ajax请求springmvc后台查询mysql数据库,页面显示中文出现乱码 最初在mybatis配置如下 <select id="queryContentById" resultType = "java.lang.String" parameterType="String" >     select t

日常开发系列——Maven+Spring+Spring MVC+MyBatis+MySQL整合SSM框架

进入公司开发已经3个多月了,项目用的是Maven+Spring+Spring MVC+MyBatis+MySQL,趁这个周末有空,仔细研读一下公司项目的基本框架,学习一下这个环境是怎么搭建起来的,经过自己的研究终于是成功地试验出来.自己亲手做的才算是自己学到的,决定将其记录下来,以便日后查询,源码同时也欢迎大家拍砖. 一.数据库的准备 这次整合试验想着做个简单的,就决定做一个普通的用户登陆,就一张表吧 我新建的数据库名字是test,然后新建了一张表 DROP TABLE IF EXISTS `u

Ajax+SpringMVC+Spring+Mybatis+MySql+js用户注册实例

林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 摘要:这几天研究了下Ajax注册的方法,通过在注册时输入用户名或邮箱等,就可以判断这个用户是否存在,以免用户来注册,然后提交了,系统才提示该用户名或邮箱不可用.使用Ajax便可实现这一功能,看了网上的都是php的,想想索性来写一个SpringMVC+Spring+Mybatis的.文章内容用到了很多技术,包括javascript.jquery.json.e表达式等. 先来看看最终效果: 注册

mysql的两阶段协议(封锁定理,虫洞事务)

我们都知道数据库的事务具有ACID的四个属性:原子性,一致性,隔离性和持久性.然后在多线程操作的情况下,如果不能保证事务的隔离性,就会造成数据的修改丢失(事务2覆盖了事务1的修改结果).读到脏数据(事务2读到了事务1未回滚的数据).不可重读(事务2读到了事务1未提交的修改)和幻读(事务2读到了事务1未提交的增删)等.保证事务隔离性可以防止事务出现以上问题,那么数据库又是怎么来保证事务的隔离性的呢? mysql使用两阶段协议来保证事务执行的串行化从而保证事务的隔离性的. 首先,为了保证数据访问的串

MyBatis学习总结(五)——实现关联表查询(转载)

孤傲苍狼 只为成功找方法,不为失败找借口! MyBatis学习总结(五)--实现关联表查询 一.一对一关联 1.1.提出需求 根据班级id查询班级信息(带老师的信息) 1.2.创建表和数据 创建一张教师表和班级表,这里我们假设一个老师只负责教一个班,那么老师和班级之间的关系就是一种一对一的关系. 1 CREATE TABLE teacher( 2 t_id INT PRIMARY KEY AUTO_INCREMENT, 3 t_name VARCHAR(20) 4 ); 5 CREATE TAB