mybatis 一对一嵌套查询,并没有执行两次sql

需求:假设有一个User类,一个Car类,一个User对应这一辆Car,查询User信息的同时查询出他的Car的信息.
结果:
图片说明

car.java

package com.wantao.bean;
import lombok.Data;

@Data
public class Car {
    private Integer carId;
    private String  carName;

}

user.java

package com.wantao.bean;
import lombok.Data;

@Data
public class User {
    private Integer userId;
    private String userName;
    private Integer cId;
    private Car car;
}

CarMapper.xml

<?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.wantao.dao.CarDao">
    <select id="findCarById" resultType="com.wantao.bean.Car">
        select car_id,car_name
        from
        tb_car
        where car_id=#{id}
    </select>
</mapper>

UserMapper.xml

<?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.wantao.dao.UserDao">
    <resultMap type="com.wantao.bean.User" id="map1">
        <id column="user_id" property="userId"></id>
        <result column="user_name" property="userName" />
        <result column="c_id" property="cId" />
        <association select="com.wantao.dao.CarDao.findCarById"
            property="car" column="car_id">
        </association>
    </resultMap>
    <select id="findUserById" resultMap="map1">
        select
        *
        from tb_user u
        where u.user_id=#{id}
    </select>
</mapper>

只希望使用association的select进行嵌套查询,我发现com.wantao.dao.CarDao.findCarById根本没有执行,不知道为什么


项目目录
图片说明

2个回答

问题已解决,column=c_id"'



Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
MyBatis第五课 一对一 多对一 嵌套查询
MyBtis后台打印sql语句sqlMapConfig.xml中加&amp;lt;settings&amp;gt; &amp;lt;!-- 打印查询语句 --&amp;gt; &amp;lt;setting name=&quot;logImpl&quot; value=&quot;STDOUT_LOGGING&quot; /&amp;gt; &amp;lt;/settings&amp;gt;Coursepublic class Course { private String ...
mybatis嵌套查询
需求: list中有个字段为list的情况; 解决办法: 使用mybatis的嵌套查询功能; 实例: &amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&amp;gt; &amp;lt;!DOCTYPE mapper PUBLIC &quot;-//mybatis.org//DTD Mapper 3.0//EN&quot; &quot;http://mybatis.org/dtd/mybatis-3-m...
mybatis一对一
Student类中有引用Address 在查询学生的信息时,把address的信息也查询 1.级联查询(少用,重复利用效率低) 在mapper配置如下: 2.重新定义Address类型,在Student中引入Address (少用,原因同一) 3.另外配置AddressMapper在查询S
MyBatis 一对一
一个人对应一个身份证。一对一关系可以使用唯一主外键关联,即2张表使用外键关联。 由于一对一关联,所以还要个外键添加unique约束。Person类:public class Person implements Serializable { private Integer id; private String name; private String sex; priv
mybatis之一对一
mybatis之一对一
Mybatis 一对一
Mybatis OneToOne  以人和身份证为例子,一人只能对应一张身份证,一张身份证一人使用,这就是一对一的关系. 首先,在数据库中创建两个表,写入测试数据: tb_card: tb_person:(card_id foreign key) 创建对应的bean:(get and set) public class Card i
MyBatis一对一
源码结构如下 Card.java package com.mybatisTest.model; public class Card { private int id; private int cardid; private Person person; public int getId() { return id; } public void setId
mybatis 一对一
一对一配置 &amp;lt;resultMap id=&quot;BaseResultMap&quot; type=&quot;com.sgai.cps.cm.entity.CmSurveyR2Topic&quot; &amp;gt;        &amp;lt;!-- SEQUENCE --&amp;gt;        &amp;lt;id column=&quot;SID&quot; property=&quot;sid&quot; jdbcType=&quot;DECIMAL&quot; /&am
使用MyBatis(八)一对一关联(嵌套查询,嵌套结果)
1.创建2张表,建立主外键关系 2.建立实体类 package com.yw.test06; public class Class { private int id; private String name; public int getId() { return id; } public void setId(int id) { this.id
mybatis 实体嵌套查询
本例子只是一个实体类嵌套另外一个或者多个实体类。在实体类嵌套一个实体列表的我还没研究出来。 首先上实体类: public class AppPost { private String postId; private String postTitle; private int upTime; private int postType; private
MyBatis嵌套查询解析
Mybatis表现关联关系比hibernate简单,没有分那么细致one-to-many、many-to-one、one-to-one。而是只有两种association(一)、collection(多),表现很简洁
mybatis 一对多,嵌套查询
商品表product 图片表productImage 一个商品包含多张图片 productMapper: SELECT * from product a,producttype t where a.productTypeId = t.productTypeId and a.producttypeid=#{producttypeid} limit #{pageIndex},#{pa
MyBatis 集合、集合嵌套查询
集合 &amp;lt;collection property=&quot;posts&quot; ofType=&quot;domain.blog.Post&quot;&amp;gt; &amp;lt;id property=&quot;id&quot; column=&quot;post_id&quot;/&amp;gt; &amp;lt;result property=&quot;subject&quot; column=&quot;post_subject&quot;/&amp;gt;
mybatis嵌套查询的使用
当我们遇到表与表之之间存在关联的时候,就可以使用mybatis的嵌套查询 比如说 当一个对象包含了另一个对象 /** * 公交实体类中包含了司机信息和路线信息 */ public class Bus implements Serializable { private Integer id; private String card; private Integer d...
Java之Mybatis多层嵌套查询
三张表:user article blog 表的存储sql文件: /* Navicat MySQL Data Transfer Source Server : localhost Source Server Version : 50620 Source Host : localhost:3306 Source Database : mybat...
MyBatis集合嵌套查询
1.定义实体类成员属性包含集合 public class ReportOrders { private String orderId;//订单号 private String sellerOrderId;//商户订单号 private String totalAmount;//商品金额 private String finalAmount;//订单金额 ...
MyBatis Map参数嵌套查询
分为如下两步: 1.在DAO文件中参数前面加上@Param,如下: 注意:不加@Param,会出现找不到参数定义的异常。@Param引用包为MyBatis的包。 2.在Mapper配置文件中写结合嵌套查询,如下:  注意:红色的部分不能写成#{key},否则会出现参数找不到的异常(异常信息忘记记录了)。...
Mybatis接口映射,嵌套查询
接口映射: 就在java的包中新建一个接口(inteface),然后映射一个已有的mapper.xml(在上一篇文章中说到了) 在mapper的命名空间(namespace)配置接口的全限定名 然后在接口中配置:public interface CourseMapper01 { /** * 方法名与映射文件中的id一致 * 参数的
mybatis 嵌套查询 学习记录
在学习mybatis时用到了一个嵌套循环查询,其实还是挺简单的(不过我不会)       查询省市区,      要求查出所有省里面有对应的市,市里面有对应的区      数据格式要求类似这样的           [              {"citys":  [    {"areas":[ {"acode":"110101","aid":1,"aname":"东城区"} ]
mybatis 嵌套查询,一对多
最近在做项目时,需要用到mybaits 嵌套查询,什么意思呢,比如个人信息,中包含复杂对象地址,并且是一对多,我想一次查询出来, 这个之前写过,但语法老师忘记,今天写个博客,记录下,好记性不如烂笔头,先简单写一版本,晚上继续润色下。 一下是sqlmap 内容,这里做下解释: property="subChapter" column="{id=id,COURSE_ID=COURSE_ID}"
Mybatis - 一对一(association)和一对多(collection)
2019独角兽企业重金招聘Python工程师标准&gt;&gt;&gt; ...
Mybatis嵌套查询学习记录
记录: 开始先调用这个 &amp;lt;select id=&quot;selectTest&quot; parameterType=&quot;com.Estate.vo.FinancialNoticeVo&quot; resultMap=&quot;resultMap&quot;&amp;gt; SELECT DISTINCT c.CONTRACTINFOID,s.SATGEBEGINTIME FRO...
MyBatis(六) sql片段定义、级联查询、嵌套查询
SQL片段的定义将公用的SQL片段提取出来减少工作量 &amp;lt;sql id=&quot;studentColumns&quot;&amp;gt; stu_id,stu_Age,stu_Sex,stu_Name &amp;lt;/sql&amp;gt; &amp;lt;select id=&quot;queryStudentInfo&quot; resultType=&quot;student&quot; parameterType=&quot;map&quot;&amp;gt;
Sql的嵌套查询
之前就遇到过嵌套查询的问题,一直也没注意这个问题,知道最近被弄到痛不欲生才觉得为啥会有这么傻叉的写法。
SQL嵌套查询
SELECT `a`.`id`, GROUP_CONCAT(`p`.`title`) FROM `table1` `a` LEFT JOIN `table2` `p` ON `p`.`code`=`a`.`code` GROUP BY `a`.`id`
sql嵌套查询
有表TABE1如下: id DATE1 RESULT ----------- ---------- ------ 1 2009-1-9 有 2 2009-1-9 无 3 2009-1-9 有 4 2009-1-9 无 5 2009-1-9 有 6 2009-1-10 有 7 2009-1-10 无 8 2009-1-10 有 要求写出SQL语句,输出: 日期 有 无 ---------- ----------- ----------- 2009-1-10 2 1 2009-1-9 3 2
SQL之[嵌套查询]
嵌套查询概述 一个 SELECT-FROM-WHERE 语句称为一个查询块 将一个查询块嵌套在另一个查询块的WHERE 语子句或HAVING 语短语的条件中的查询称为嵌套查询 SELECT Sname /外层查询/父查询/ FROM Student WHERE Sno IN (SELECT Sno /内层查询/子查询/
SQL 嵌套查询
问题描述:rn为管理岗位业务培训信息,建立3个表:rnS (S#,SN,SD,SA) S#,SN,SD,SA 分别代表学号、学员姓名、所属单位、学员年龄rnC (C#,CN ) C#,CN 分别代表课程编号、课程名称rnSC ( S#,C#,G ) S#,C#,G 分别代表学号、所选修的课程编号、学习成绩rn要求:rn使用标准SQL嵌套语句查询选修全部课程的学员姓名和所属单位rnrn我的做法:rnrncreate table srn(rn s# int,rn sn varchar(50),rn sd varchar(50),rn sa intrn)rngorncreate table crn(rn c# int,rn cn varchar(50)rn)rngorncreate table scrn(rn s# int,rn c# int,rn g intrn)rnrnrninsert into s values(1,'小王','后勤',25)rnrnrninsert into s values(2,'小李','办公室',22)rnrnrninsert into s values(3,'小罗','前台',29)rnrnrninsert into s values(4,'小曹','IT',37)rnrnrnrnrnrnrninsert into c values(1,'销售')rninsert into c values(2,'技术支持')rninsert into c values(3,'文员')rnrninsert into sc values(1,1,30)rninsert into sc values(1,2,60)rninsert into sc values(1,3,80)rninsert into sc values(2,1,30)rninsert into sc values(2,1,40)rninsert into sc values(3,2,80)rnrnrnrnselect s#,sn from s where s# in (select s# from c left join sc on c.c#=sc.c# group by s# having count(*)=count(s#))rnrn结果:rn rn小王 1rn小李 2rn小罗 3rn小曹 4rn这显示不对,结果应该只有小王符合条件rn请高人指点这查询应该怎么写
mybatis执行sql脚本
import org.apache.ibatis.jdbc.ScriptRunner; public static void run(String driver, String url, String user, String password, String sqlfile) throws ClassNotFoundException, SQLException, IOException {
MyBatis执行sql原理
我们知道Mybatis是通过在配置文件中配置sql文,然后对应创建一个接口,通过调用接口的形式来执行sql的。但是接口并没有被实例化怎么就能被调用呢,知道动态代理的朋友肯定会想到是动态代理在背后操控这一切。动态代理先上一段简单的动态代理代码interface ArithmeticCalculator { int add(int i, int j); int sub(int i, int
mybatis执行sql语句
因为某些特殊需求,我们需要对mysql进行表查询,字段查询,字段增删改等操作,于是我们自己定义了一个新的mapper接口,满足mybatis对数据库操作不足的缺陷。 下面我们首先新建一个SysDbMapper.xml文件 &amp;lt;mapper namespace=&quot;com.ligz.cs.dao.system.SysDbMapper&quot;&amp;gt; &amp;lt;select id=&quot;mannage&quot;...
显示mybatis的执行sql
让mybatis也像hibernate.show_sql一样显示执行sql 在log4j.properties 添加 log4j.rootLogger=DEBUG, Console #Console log4j.appender.Console=org.apache.log4j.ConsoleAppender log4j.appender.Console.layout=org.apac...
MyBatis 执行动态 SQL
应老婆要求写的这篇博客。大家基本上都知道如何使用 MyBatis 执行任意 SQL,使用方法很简单,例如在一个 XXMapper.xml 中:<select id="executeSql" resultType="map"> ${_parameter} </select>你可以如下调用:sqlSession.selectList("executeSql", "select * from sy
mybatis执行自定义SQL
需求总是千千万,苦海无涯,总结为上。用generatorSqlmap-increase生成的XML(mapper),DAO,POJO已经能完成基本的数据库操作。※ generatorSqlmap-increase 自动生成XML(mapper),dao,pojo工具但是,一些特殊需求我们就不得不通过完善XML(mapper),DAO来实现了。下面就列举一个通过mybatis执行自定义SQL1,XM...
Mybatis 直接执行SQL
Mybatis 直接执行SQL好久不更新博客了,今天开发遇到一个问题就是如何在mybatis中直接执行sql,直接上代码:<select id="selectBysql" parameterType="java.lang.String" resultType="java.lang.Integer"> ${sql}//#{sql} </select>上网查了下,网上的解释是: 使用${}代
sql 嵌套查询
表格atest的内容如下:[img=https://img-bbs.csdn.net/upload/201308/30/1377834446_974709.jpg][/img]rnrn希望能够执行表格atest里边的select语句,写了:[code=sql]exec('exec(''select * from atest'')')[/code],但是仅仅是执行select * from atest ,没法执行select * from ipdata。rnrn问题1、怎么能够一次执行查找出来的select语句;rn问题2、假设select * from atest出来的语句是超过8000个字符,又该怎么执行[img=https://forum.csdn.net/PointForum/ui/scripts/csdn/Plugin/003/onion/3.gif][/img][img=https://forum.csdn.net/PointForum/ui/scripts/csdn/Plugin/003/onion/3.gif][/img]
mybatis联合查询 一对一一对多
分析商品订单数据模型 通过订单表和用户表分析商品订单数据模型 准备工作 用户表 – auto-generated definition create table user ( id int auto_increment primary key, username varchar(32) not null comment ‘用户名称’, birthday date n...
相关热词 c# 标准差 计算 c#siki第五季 c#入门推荐书 c# 解码海康数据流 c# xml的遍历循环 c# 取 查看源码没有的 c#解决高并发 委托 c#日期转化为字符串 c# 显示问号 c# 字典对象池