栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

一对多查询

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

一对多查询

一对多嵌套结果查询

目录

一、创建数据库

二、导入相关依

三、创建POJO实体

四、创建数据库连接信息配置文件

五、创建映射文件

六、创建MyBatis的核心配置文件

七、创建MyBatis的工具类

八、创建测试类

九、运行结果

一、创建数据库
  1. 连接数据库:在命令窗口输入mysql -u root -p回车然后输入密码回车
  2. 创建数据库:create database mybatis;
  3. 创建表和插入数据
use mybatis;

create table tb_user(
   id int(10) primary key auto_increment,
   username varchar(32) not null,
   address varchar(32) not null);

insert into tb_user values(1,'张三','广州'),(2,'李四','上海'),(3,'王五','广州');

create table tb_orders(
   id int(10) primary key auto_increment,
   number varchar(32) not null,
   user_id int(10) not null,
   foreign key(user_id) references tb_user(id));

insert into tb_orders values(1,'1000001',1),(2,'1000002',1),(3,'1000003',2);

 

二、导入相关依

pom.xml代码如下:



    4.0.0

    org.example
    Mybatis的关系映射
    1.0-SNAPSHOT
        
            
                org.mybatis
                mybatis
                3.5.2
            
            
                mysql
                mysql-connector-java
                8.0.11
            
            
                junit
                junit
                4.12
                compile
            
        
        
            
                
                    src/main/java
                    
                        ***.xml
                    
                    true
                
            
        

三、创建POJO实体

在src/main/java目录下创建一个com.itheima.pojo包,在包下分别创建Users.java、Orders.java实体类,代码如下:

Users.java

package com.itheima.pojo;

import java.util.List;

public class Users {
    private Integer id;                 // 用户编号
    private String username;           // 用户姓名
    private String address;            // 用户地址
    private List ordersList; //用户关联的订单

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public List getOrdersList() {
        return ordersList;
    }

    public void setOrdersList(List ordersList) {
        this.ordersList = ordersList;
    }

    @Override
    public String toString() {
        return "User [id=" + id + ", username=" + username + ", address="
                + address + ", ordersList=" + ordersList + "]";
    }
}

Orders.java

package com.itheima.pojo;

public class Orders {
    private Integer id;//订单id
    private String number;//订单编号

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getNumber() {
        return number;
    }

    public void setNumber(String number) {
        this.number = number;
    }

    @Override
    public String toString() {
        return "Orders{" +
                "id=" + id +
                ", number='" + number +
                '}';
    }
}

四、创建数据库连接信息配置文件

在项目的src/main/resources目录下创建数据库连接信息配置文件,其命名为:db.properties代码如下:

mysql.driver=com.mysql.cj.jdbc.Driver
mysql.url=jdbc:mysql://localhost:3306/mybatis?serverTimezone=UTC&
  characterEncoding=utf-8&useUnicode=true&useSSL=false
mysql.username=root
mysql.password=123456

五、创建映射文件

在项目的src/main/resources目录下创建一个mapper文件夹,分别在该文件夹下创建UserMapper.xml、OrdersMapper.xml,该文件主要用于配置SQL语句和Java对象之间的映射,使SQL语句查询出来的数据能够被封装成Java对象。

UserMapper.xml:





    

    select u.*,o.id as oid,o.number from tb_user u,tb_orders o where u.id=o.user_id and u.id=#{id}

    
        
        
        
        

            
            
        
    

六、创建MyBatis的核心配置文件

在项目的src/main/resources目录下创建Mybatis的核心配置文件,其命名为:mybatis-config.xml

代码如下:





    
    
    
    
        
    
    
    
    
    
        
            
            
                
                
                
                
                
                
                
                
            
        
    
    
    
        
    

七、创建MyBatis的工具类

在src/main/java目录下创建一个com.itheima.utils包,在包下创建一个MyBatisUtils.java工具类,代码如下:

package com.itheima.utils;

import java.io.Reader;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;



public class MyBatisUtils {
    private static SqlSessionFactory sqlSessionFactory = null;

    // 初始化SqlSessionFactory对象
    static {
        try {
            // 使用MyBatis提供的Resources类加载MyBatis的配置文件
            Reader reader =
                    Resources.getResourceAsReader("mybatis-config.xml");
            // 构建SqlSessionFactory工厂
            sqlSessionFactory =
                    new SqlSessionFactoryBuilder().build(reader);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    // 获取SqlSession对象的静态方法
    public static SqlSession getSession() {
        return sqlSessionFactory.openSession();
    }
}

八、创建测试类

在src/main/java目录下创建一个com.itheima.test包,在包下创建一个MybatisTest.java测试类,代码如下:

package com.itheima.test;

import com.itheima.pojo.Users;
import com.itheima.utils.MyBatisUtils;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;

public class mybatisTest {
    @Test
    public void findByIdTest1() {
        // 通过工具类生成SqlSession对象
        SqlSession session = MyBatisUtils.getSession();
        Users users =
                session.selectOne("mapper.UserMapper.findUserOrders", 1);
        System.out.print("一对多嵌套结果方式t");
        System.out.println(users);
        session.commit();
        // 关闭SqlSession
        session.close();

    }
}

九、运行结果

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1007566.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号