mybatis 关联查询

简介: insert:           parameterType  参数类型 :你传递的参数类型 ,如果有接口的话 就不用说清楚这个类型           selectKey:                           keyProperty  属性名称                 .
insert:
          parameterType  参数类型 :你传递的参数类型 ,如果有接口的话 就不用说清楚这个类型
          selectKey:
                          keyProperty  属性名称
                          keyColumn  列名
                          resultType  返回值类型
                          order:
                                   BEFORE 在insert之前执行 用于创建ID使用
                                   AFTER 在insert之后执行 用于得到自动编号ID
        select:
                  association(关联关系映射)  关联数据 或者 关联查询

public class Student {
    private Integer sid;
    private String sname;
    private String address;
    private String email;
    private classroom cls; //表中的cls对象查询 student时将classroom对象中的数据也拿出来
    private String phonenumber;
    private Integer cid;
}
————————————————————————————————————
public class classroom {
    private Integer cid;
    private String curriculum;
}

 关联关系相对应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.sun.mybatis.dao.StudentMappr">
    <insert id="inse" parameterType="com.sun.mybatis.dao.Student">
        INSERT INTO student(sname,address,email,phonenumber,cid)
        VALUES(#{sname},#{address},#{email},#{phonenumber},#{cid})
        <selectKey keyProperty="sid" order="AFTER" resultType="java.lang.Integer" keyColumn="sid">
            -- 这里的返回类型要写resultType="java.lang.Integer"不然无法识别你要返回的类型
            -- 这是查询返回你插入的主键号,因为自动编号是无法识别你掺入的是第几列order="AFTER"这里参数是之后,因为是插入完再拿到值
            SELECT LAST_INSERT_ID()
        </selectKey>
    </insert>
    <resultMap id="SelStuCls" type="com.sun.mybatis.dao.Student">
        <id column="sid" property="sid"/>
        <result column="sname" property="sname"/>
        <result column="address" property="address"/>
        <result column="email" property="email"/>
        <result column="phonenumber" property="phonenumber"/>
        <association property="cls" javaType="com.sun.mybatis.dao.classroom">
            <!--这里classroom是student的关联表-->
            <!--将classroom对象放入Student中的cls对象当中-->
            <result column="cid" property="cid"></result>
            <result column="curriculum" property="curriculum"></result>
        </association>
    </resultMap>
    <select id="SelectStuAndCls" resultMap="SelStuCls">
        SELECT s.*,c.`curriculum`FROM student s INNER JOIN classroom c ON s.cid=c.cid
    </select>
    <select id="SelectStu" resultMap="SelStuCls">
     --    resultMap 映射结果集
     --   resultMap拿到SelStuCls映射文件 对应的是要拿出来的数据
        SELECT s.*,c.`curriculum`FROM student s INNER JOIN classroom c ON s.cid=c.cid where sid=#{param1}
    </select>
</mapper>


main操作类写法

public class Teat {
    public static void main(String[] args) {
        SqlSessionFactory sqlSessionFactory = Mybatisconfig.sqlSessionFactory;
        SqlSession sqlSession = sqlSessionFactory.openSession();
        StudentMappr studentMappr = sqlSession.getMapper(StudentMappr.class);
        Student>students = studentMappr.select();
        
    }
}


目录
相关文章
|
3月前
|
Java 数据库连接 数据库
mybatis查询数据,返回的对象少了一个字段
mybatis查询数据,返回的对象少了一个字段
232 8
|
12天前
|
SQL Java 数据库连接
spring和Mybatis的各种查询
Spring 和 MyBatis 的结合使得数据访问层的开发变得更加简洁和高效。通过以上各种查询操作的详细讲解,我们可以看到 MyBatis 在处理简单查询、条件查询、分页查询、联合查询和动态 SQL 查询方面的强大功能。熟练掌握这些操作,可以极大提升开发效率和代码质量。
24 3
|
1月前
|
SQL 安全 Java
MyBatis-Plus条件构造器:构建安全、高效的数据库查询
MyBatis-Plus 提供了一套强大的条件构造器(Wrapper),用于构建复杂的数据库查询条件。Wrapper 类允许开发者以链式调用的方式构造查询条件,无需编写繁琐的 SQL 语句,从而提高开发效率并减少 SQL 注入的风险。
23 1
MyBatis-Plus条件构造器:构建安全、高效的数据库查询
|
2月前
|
SQL Java 数据库连接
mybatis如何仅仅查询某个表的几个字段
【10月更文挑战第19天】mybatis如何仅仅查询某个表的几个字段
65 1
|
3月前
|
SQL XML Java
mybatis复习04高级查询 一对多,多对一的映射处理,collection和association标签的使用
文章介绍了MyBatis中高级查询的一对多和多对一映射处理,包括创建数据库表、抽象对应的实体类、使用resultMap中的association和collection标签进行映射处理,以及如何实现级联查询和分步查询。此外,还补充了延迟加载的设置和用法。
mybatis复习04高级查询 一对多,多对一的映射处理,collection和association标签的使用
|
7月前
|
SQL
MyBatis-Plus-Join关联查询
MyBatis-Plus-Join关联查询
324 2
|
7月前
|
SQL Java 关系型数据库
Mybatis多表关联查询与动态SQL(下)
Mybatis多表关联查询与动态SQL
134 0
|
7月前
|
SQL Java 数据库连接
Mybatis多表关联查询与动态SQL(上)
Mybatis多表关联查询与动态SQL
217 0
|
7月前
|
SQL 缓存 Java
mybatis 一对多查询
mybatis 一对多查询
127 0
|
7月前
|
SQL XML Java
MyBatis-Plus多表关联查询
MyBatis-Plus多表关联查询
646 0