首页 > 其他分享 >mybatis关联查询

mybatis关联查询

时间:2024-06-18 14:33:10浏览次数:21  
标签:xin 关联 private org mybatis import 查询 com public

package com.xin.pojo;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;

@Data
@AllArgsConstructor
@NoArgsConstructor
public class UserLogin {
    private  int  id;
    private String username;
    private String password;

}

UserCustomerMapper.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.xin.mapper.UserCustomerMapper">

    <resultMap id="BaseResultMap" type="com.xin.pojo.UserCustomer">
        <id column="id" jdbcType="BIGINT" property="id" />
        <result column="cid" jdbcType="BIGINT" property="cid" />
        <result column="uid" jdbcType="BIGINT" property="uid" />
    </resultMap>

    <resultMap type="com.xin.pojo.UserCustomer" id="ordersResultMap">
        <id column="id"  property="id" />
        <result column="cid"  property="cid" />
        <result column="uid"  property="uid" />

        <!--表示进行关联查询单条记录 property:表示关联查询的结果存储在Orders类中的user属性中,javaType:表示关联查询的结果类型 -->
        <association property="userLogin"  javaType="com.xin.pojo.UserLogin">
            <!--查询结果中的userid列对应关联的User对象的id属性 -->
            <id column="id" property="id" />
            <result column="user_name" property="username" />
            <result column="u_password" property="password" />
        </association>
    </resultMap>

    <!-- 关联查询  -->
  <select id="findCustomerUser"   resultMap="ordersResultMap" >
        select  *   from UserLogin as ul  LEFT JOIN  UserCustomer as  uc  on  ul.id=uc.id
    </select>


<!--插入 UserCustomer-->
    <insert id="insertUserCustomerList" parameterType="java.util.List">
        INSERT INTO usercustomer
        ( cid, uid)
        VALUES
        <foreach collection ="usercList" item="user" separator =",">
            (#{user.cid}, #{user.uid})
        </foreach >
    </insert>
    <!--插入一条数据-->
    <insert id="insertUser" keyProperty="id" useGeneratedKeys="true"  parameterType="com.xin.pojo.UserCustomer">
        insert into usercustomer(cid,uid)
        values(#{cid},#{uid})
    </insert>



</mapper>
package com.xin.mapper;

import com.xin.pojo.Correlation;
import com.xin.pojo.UserCustomer;
import com.xin.pojo.UserLogin;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

@Mapper
@Repository
public interface UserCustomerMapper {


    int insertUser(UserCustomer userCustomer );

    int insertUserCustomerList(@Param("usercList")  List<UserCustomer> usercList);

      public List<UserCustomer> findCustomer();
      //关联查询
      public List<UserCustomer> findCustomerUser();



}
package com.xin.pojo;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@AllArgsConstructor
@NoArgsConstructor
public class UserCustomer {
    private  int  id;
    private int  cid;
    private int uid;
    //关联查询
    private  UserLogin  userLogin;

}
package com.xin.mybatis;

import com.xin.mapper.CystomerMapper;
import com.xin.mapper.UserCustomerMapper;
import com.xin.mapper.UserLoginMapper;
import com.xin.pojo.UserCustomer;
import org.junit.jupiter.api.Test;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

import javax.sql.DataSource;
import java.util.List;

/**
 * @ClassName
 * @Author hongxin
 * @Date 2024/6/14  10:07
 * @Version 1.0
 **/
@MapperScan("com.xin.mapper")
@SpringBootTest
public class CorrelationTest {

    @Autowired
    DataSource dataSource;
    @Autowired
    UserLoginMapper userLoginMapper;

    @Autowired
    UserCustomerMapper userCustomerMapper;
    @Autowired
    CystomerMapper cystomerMapper;

    // 关联查询   ok
    @Test
    public void findCustomerUser() {
        List<UserCustomer> corrList = userCustomerMapper.findCustomerUser();
        for (int i = 0; i < corrList.size(); i++) {
            UserCustomer userCustomer = corrList.get(i);
            System.out.println("=====userCustomer======="+userCustomer);
        }
    }


}

usercustomer.sql

标签:xin,关联,private,org,mybatis,import,查询,com,public
From: https://blog.csdn.net/m0_70355065/article/details/139747732

相关文章

  • mybatis增删改查
    packagecom.xin.mapper;importcom.xin.pojo.UserLogin;importorg.apache.ibatis.annotations.Mapper;importorg.apache.ibatis.annotations.Param;importorg.springframework.stereotype.Repository;importjava.math.BigInteger;importjava.util.List;@Mappe......
  • 【MySQL】复合查询和内外连接
    文章目录MySQL复合查询和内外连接1.复合查询1.1多表查询1.2自连接1.3子查询单行子查询多行子查询多列子查询from中使用子查询合并查询2.内外连接1.INNERJOIN2.LEFTJOIN3.RIGHTJOIN4.FULLJOIN5.CROSSJOINMySQL复合查询和内外连接1.复合查询1.1......
  • sql注入之联合查询的学习记录
    我本人也是一个小白有什么错误的地方希望大佬可以指出,有什么疑问也可以留言,希望可以互相交流学习一下。 sql注入经典之联合注入关于联合注入是sql注入中最经典的也是大部分初学ctf的师傅们最开始接触的注入方式测试注入点首先在注入的时候都需要先测试一下注入点?id=1'o......
  • MySQL入门学习.子查询.IN
        IN子查询是MySQL中一种常见的子查询类型,用于在查询中确定一个值是否在另一个查询的结果集中。IN子查询的特点是简洁明了,它可以在一个查询中方便地检查一个值是否在一组值中,非常适用于需要进行条件验证或关联查询的情况。   在MySQL中,有以下几种常见的......
  • MySQL入门学习-子查询.EXISTS
        子查询EXISTS是MySQL中的一种子查询类型,用于检查子查询结果集是否为空。如果子查询结果集不为空,则EXISTS子查询返回TRUE;否则,返回FALSE。    子查询EXISTS的特点是它只关心子查询结果集是否为空,而不关心结果集中的具体内容。这使得EXISTS子查......
  • OceanBase中OCP平台显示的TOPSQL模块是如何查询出来的
    说明:oba脚本通过变量的方式直接实现以下三个查询,如手工查询需要分别执行SQL获取对应的变量信息1.server_id检查方式selecta.idserver_id,a.svr_ip,a.zone,b.primary_zone,b.tenant_namefrom__all_servera,__all_tenantbwheretenant_id=1001orderby3;2.计算总cpu--这......
  • GORM 关联查询
    GORM关联查询jouyouyun · 2018-12-0511:34:43 ·4736次点击· 预计阅读时间2分钟 · 4分钟之前 开始浏览  这是一个创建于 2018-12-0511:34:43 的文章,其中的信息可能已经有所发展或是发生改变。第一次,站长亲自招Gopher了>>>定义了一个 User 和......
  • maven 加载不到 mybatis xml 配置文件
     <build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin>......
  • 浅析Mybatis拦截器
    一、背景最近针对项目中出现的慢sql,我们使用自定义Mybatis拦截器,结合DUCC动态配置慢sql阈值,来监控慢sql并报警,提前发现风险点。借着这个契机,浅析下Mybatis拦截器原理,个人理解,不足之处请指正。二、Mybatis拦截器Mybatis使用plugin来拦截方法调用,所以MyBatisplugin也称为:Mybatis......
  • 【Mybatis】Mybatis快速入门
    MyBatis是一款优秀的持久层框架,用于简化JDBC的开发。MyBatis本是Apache的一个开源项目iBatis,2010年这个项目由apache迁移到了googlecode,并且改名为MyBatis。2013年11月迁移到Github。官网:https://mybatis.org/mybatis-3/zh/index.htmlMybatis入门Mybatis会把数据库执......