MyBatis学习(3)

简介: MyBatis学习

6 使用注解开发

1.注解在接口上实现

@select("select * from user")
List<User>getUsers();
• 1
• 2

2.需要在配置文件绑定接口

<mappers>
<mapper class="dao.UserMapper/>"
</mappers>
• 1
• 2
• 3

7.使用注解完成增删改查

不需要写xml文件直接在测试文件书写即可

1.根据ID查询用户

@Select("select * from mybatis.user where id=#{id}")
    User getUserById(@Param("id") int id);


2.增加用户


@Insert("insert into mybatis.user (id,name,pwd)values(#{id},#{name},#{pwd})")
 int addUser(User user);


与xml文件进行对比


 

<select id="getUserById" resultType="pojo.User" parameterType="int">
        select * from mybatis.user where id=#{id}
    </select>
    <insert id="addUser" parameterType="dao.UserMapper">
        insert into mybatis.user (id,name,pwd)values (#{id},#{name},#{pwd})
    </insert>


方便快捷很多,但是只限于参数少的时候。

20210624210409292.png

使用注解得在配置文件中完成注册。

20210624205524556.png

若含有多个Mapper的时候我们可以采用resource字段

<mapper resource="dao/*Mapper.xml"></mapper>

@param注解:

1.基本类型的参数或者String必须加上

2.引用类型不需要加上

3.如果只有一个基本类型的话可以忽略,但是建议都加上

4.我们在SQL中引用的就是我们在@Param中设定的属性名


8.Lombok的学习

20210624223319505.png

简化实体类的书写。

Maven中需要导入的依赖:https://mvnrepository.com/artifact/org.projectlombok/lombok/1.18.20

9.多对一处理

9.1按照结果嵌套处理

20210625200217675-2.png

9.2 按照select内嵌查询20210625200456867.png

<select id="getStudentList" resultMap="StudentTeacher">
        select * from mybatis.student
    </select>
    <resultMap id="StudentTeacher" type="pojo.Student">
        <result property="id" column="id"></result>
        <result property="name" column="name"></result>
        <association property="teacher" column="tid" javaType="pojo.Teacher" select="getTeacherById"></association>
    </resultMap>
    <select id="getTeacherById" resultType="pojo.Teacher">
        select * from mybatis.teacher where id=#{id}
    </select>

10.一对多处理

此处举例为一个老师对应多个学生

1.实体类

package pojo;
import lombok.Data;
@Data
public class Student {
    private int id;
    private String name;
    private int tid;
}
package pojo;
import lombok.Data;
import java.util.List;
@Data
public class Teacher {
    private int id;
    private String name;
//    一个老师对应多个学生
    private List<Student> students;
}

接口类:

package dao;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import pojo.Teacher;
import java.util.List;
public interface TeacherMapper {
//查询老师信息
//  List<Teacher> getTeacher();
//  获取指定老师下的所有学生
     Teacher getTeacherById(@Param("tid") int id);
}

10.1 按select嵌套查询

20210626102200343.png

10.2 按结果嵌套查询

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="dao.TeacherMapper">
    <select id="getTeacherById" resultMap="TeacherStudent">
        select s.id sid,s.name sname,t.name tname,t.id tid from student s,teacher t where s.tid=t.id and t.id=#{tid}
    </select>
    <resultMap id="TeacherStudent" type="pojo.Teacher">
        <result property="id" column="tid"></result>
        <result property="name" column="tname"></result>
        <collection property="students" ofType="pojo.Student">
            <result property="id" column="sid"></result>
            <result property="name" column="sname"></result>
            <result property="tid" column="tid"></result>
        </collection>
    </resultMap>

小结:

关联 association (多对一)

集合 collection(一对多)

20210626103147200.png

相关文章
|
1月前
|
Java 关系型数据库 MySQL
springboot学习五:springboot整合Mybatis 连接 mysql数据库
这篇文章是关于如何使用Spring Boot整合MyBatis来连接MySQL数据库,并进行基本的增删改查操作的教程。
64 0
springboot学习五:springboot整合Mybatis 连接 mysql数据库
|
2月前
|
Java 关系型数据库 数据库连接
mybatis-plus学习
MyBatis-Plus ,MyBatis 最佳搭档,只做增强不做改变,为简化开发、提高效率而生。
46 5
|
3月前
|
安全 Java 数据库连接
后端框架的学习----mybatis框架(3、配置解析)
这篇文章详细介绍了MyBatis框架的核心配置文件解析,包括环境配置、属性配置、类型别名设置、映射器注册以及SqlSessionFactory和SqlSession的生命周期和作用域管理。
后端框架的学习----mybatis框架(3、配置解析)
|
3月前
|
Java 数据库连接 mybatis
后端框架的学习----mybatis框架(9、多对一处理和一对多处理)
这篇文章介绍了在MyBatis框架中如何处理多对一和一对多的关联查询,通过定义`<resultMap>`和使用`<association>`与`<collection>`元素来实现对象间的关联映射。
|
3月前
|
Java 数据库连接 测试技术
后端框架的学习----mybatis框架(8、lombok)
这篇文章介绍了如何在MyBatis框架中使用lombok库来简化Java实体类的编写,包括在IDEA中安装Lombok插件、在项目中导入lombok依赖以及在实体类上使用Lombok提供的注解。
|
3月前
|
Java 数据库连接 数据库
后端框架的学习----mybatis框架(6、日志)
这篇文章介绍了如何在MyBatis框架中使用日志功能,包括配置MyBatis的日志实现、使用log4j作为日志工具,以及如何通过配置文件控制日志级别和输出格式。
|
3月前
|
SQL Java 数据库连接
后端框架的学习----mybatis框架(5、分页)
这篇文章介绍了如何在MyBatis框架中实现分页功能,包括使用SQL的`limit`语句进行分页和利用MyBatis的`RowBounds`对象进行分页的方法。
|
3月前
|
SQL Java 数据库连接
后端框架的学习----mybatis框架(7、使用注解开发)
这篇文章讲述了如何使用MyBatis框架的注解方式进行开发,包括在接口上使用注解定义SQL语句,并通过动态代理实现对数据库的增删改查操作,同时强调了接口需要在核心配置文件中注册绑定。
|
6月前
|
SQL Java 数据库连接
【Mybatis】深入学习MyBatis:概述、主要特性以及配置与映射
【Mybatis】深入学习MyBatis:概述、主要特性以及配置与映射
【Mybatis】深入学习MyBatis:概述、主要特性以及配置与映射
|
5月前
|
Java 数据库连接 Maven
Mybatis学习
Mybatis学习
27 0