mybatis 一对多

news/2024/7/4 19:25:51

学科

package cn.itcast.javaee.mybatis.one2many;

import java.util.ArrayList;
import java.util.List;

/**
 * 学科(单方)
 * @author AdminTC
 */
public class Grade {
    private Integer id;
    private String name;
    private List<Student> studentList = new ArrayList<Student>();//关联属性
    public Grade(){}
    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public List<Student> getStudentList() {
        return studentList;
    }
    public void setStudentList(List<Student> studentList) {
        this.studentList = studentList;
    }
}

学生

package cn.itcast.javaee.mybatis.one2many;

/**
 * 学生(多方)
 * @author AdminTC
 */
public class Student {
    private Integer id;
    private String name;
    private Grade grade;//关联属性
    public Student(){}
    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public Grade getGrade() {
        return grade;
    }
    public void setGrade(Grade grade) {
        this.grade = grade;
    }
}

GradeMapper.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="gradeNamespace">

<resultMap type="cn.itcast.javaee.mybatis.one2many.Grade" id="gradeMap">
  <id property="id" column="gid"/>
  <result property="name" column="gname"/>
  <collection property="studentList" resultMap="studentNamespace.studentMap"/>
</resultMap>



<!-- 查询哈哈是哪个学科的 -->
<select id="findGradeByName" parameterType="string" resultMap="gradeMap">
  select g.gid,g.gname,s.sid,s.sname
  from grades g,students s
  where g.gid = s.sgid
  and s.sname = #{name}
</select>

    
    
</mapper>

StudentMapper.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="studentNamespace">

<resultMap type="cn.itcast.javaee.mybatis.one2many.Student" id="studentMap">
  <id property="id" column="sid" />
  <result property="name" column="sname"/>
  <association property="grade" resultMap="gradeNamespace.gradeMap"/>

</resultMap>


<!-- 查询java学科有哪些学生信息 -->
<select id="findAllByName" parameterType="string" resultMap="studentMap">
  select s.sid,s.sname,g.gid,g.gname
  from grades g,students s
  where g.gid = s.sgid
  and g.gname = #{name}
</select>

    
</mapper>

GradeStudentDao

package cn.itcast.javaee.mybatis.one2many;

import java.util.List;

import org.apache.ibatis.session.SqlSession;

import cn.itcast.javaee.mybatis.util.MybatisUtil;

/**
 * 持久层
 * @author AdminTC
 */
public class GradeStudentDao {
    /**
     * 查询java学科有哪些学生信息
     * @param name 表示学科名
     */
    public List<Student> findAllByName(String name) throws Exception{
        SqlSession sqlSession = null;
        try{
            sqlSession = MybatisUtil.getSqlSession();
            return sqlSession.selectList("studentNamespace.findAllByName",name);
        }catch(Exception e){
            e.printStackTrace();
            throw e;
        }finally{
            MybatisUtil.closeSqlSession();
        }
    }
    
    /**
     * 查询哈哈是哪个学科的
     * @param name 表示学生姓名
     */
    public Grade findByName(String name) throws Exception{
        SqlSession sqlSession = null;
        try{
            sqlSession = MybatisUtil.getSqlSession();
            return sqlSession.selectOne("gradeNamespace.findByName",name);
        }catch(Exception e){
            e.printStackTrace();
            throw e;
        }finally{
            MybatisUtil.closeSqlSession();
        }
    }
    
    
    
    
    
    public static void main(String[] args) throws Exception{
        GradeStudentDao dao = new GradeStudentDao();
        List<Student> studentList = dao.findAllByName("java");
        System.out.println("java学科有"+studentList.size()+"个学生,它们信息如下:");
        for(Student s : studentList){
            System.out.println(s.getId()+":"+s.getName());
        }
        System.out.println("-----------------------------------------------------------");
        Grade grade = dao.findByName("哈哈");
        System.out.println("哈哈是"+grade.getName()+"学科的");
        System.out.println("-----------------------------------------------------------");
        grade = dao.findByName("呵呵");
        System.out.println("呵呵是"+grade.getName()+"学科的");
    }
}

 

转载于:https://www.cnblogs.com/abernhong/p/9131420.html


http://www.niftyadmin.cn/n/3036764.html

相关文章

【前端vue开发】vue开发输入姓名,电话,公司表单提交组件

<template><div id"parti-info"><div><span>您的姓名&#xff1a;</span><input v-model"username" type"text" placeholder"请输入您的姓名" ></div><div><span >手机号码&am…

centos挂载windows共享文件夹

设&#xff1a;装有windows系统的主机ip为172.31.32.33的d:\test\share_dir\的共享名为123 , 系统中存在一用户zkqqzkzkq,密码CcCc&#xff1b;装有centos的系统的主机上&#xff0c;需把windows主机的share_dir挂载到/mnt/中。则有&#xff1a;在centos系统中执行mount -t cif…

苹果将于18日举行新品发布会

值得一提的是&#xff0c;苹果的最新消息也使得下周头两天的科技圈更加热闹。除了苹果外&#xff0c;谷歌也将在当地时间下周二举办大型Pixel活动。至于会不会被苹果“炸场”抢了风头&#xff0c;还是要看具体推出的产品。 综合市场传闻&#xff0c;可信度较高的推测包括苹果将…

嗯哼

import turtleturtle.speed(10)colors[#4876FF,#CDC1C5,#00FFFF,#00FF7F,#EEA2AD,#B4EEB4,#EEAEEE,#D3D3D3,#E0FFFF,#DDA0DD,#C1CDC1,#00FA9A] for i in range(200): turtle.pencolor(colors[i%12]) turtle.forward(i) turtle.left(46) turtle.done()转载于:https://www.cnblog…

WIN7下无线不能启动(错误1075,1068)的解决方案!!!

已经很久没写过东西了&#xff0c;大概3-4年了吧。因为一直也没再学过什么东西&#xff0c;另外也没有什么好的安全来写。 今天遇到一个挺好玩的事情跟大家分享一下。 昨天&#xff0c;有个老师&#xff0c;找我&#xff0c;说无线不能用了。我想应该很简单&#xff0c;就让他拿…

CTO、首席架构师、技术总监、研发Leader、高级程序员的职责

一、高级程序员 如果你是一个刚刚创业的公司&#xff0c;公司没有专职产品经理和项目经理&#xff0c;你就是公司的产品经理&#xff0c;你如果对你现在的开发员能力不满&#xff0c;那么你只需要的是一个高级程序员。 你定义功能、你做计划推进和管理&#xff0c;他可以带1-…

[luogu1772 ZJOI2006] 物流运输 (最短路 线性dp)

题目描述 物流公司要把一批货物从码头A运到码头B。由于货物量比较大&#xff0c;需要n天才能运完。货物运输过程中一般要转停好几个码头。物流公司通常会设计一条固定的运输路线&#xff0c;以便对整个运输过程实施严格的管理和跟踪。由于各种因素的存在&#xff0c;有的时候某…

一云多芯,阿里最新发布自研CPU芯片倚天710

10月19日&#xff0c;2021云栖大会现场&#xff0c;阿里巴巴旗下半导体公司平头哥发布自研云芯片倚天710。该芯片是业界性能最强的ARM服务器芯片&#xff0c;性能超过业界标杆20%&#xff0c;能效比提升50%以上。倚天710是阿里云推进「一云多芯」策略的重要一步&#xff0c;也是…