Mybatis注解

本文介绍了Mybatis注解的使用,包括@Select、@Insert、@Delete、@Update等基本SQL语句注解,以及结果集注解、一对一、一对多和多对多查询的注解方式。通过实例展示了如何在Java类中直接使用Mybatis注解替代XML映射文件,简化开发流程。
摘要由CSDN通过智能技术生成

什么是Mybatis注解

在mybatis中,我们要实现方法,一般是进行xml文件的映射,这样加大了程序员的工作量,所以,在mybatis中,我们可以使用mybatis注解替代xml文件;值得注意的是,当我们使用mybatis注解时,要注意配置文件中映射文件位置的书写,推荐使用包名。

 <mappers>
        <!--        <mapper resource="com/mapper/StudentMapper.xml"/>-->
        <!--        <mapper class="com.mapper.StudentMapper"/>-->
        <package name="com.mapper"/>
    </mappers>

基本SQL语句的Mybatis注解

以dept表为例:
在这里插入图片描述

import lombok.Data;

/**
 * @author Una
 * @date 2022/8/21 20:21
 * @description:
 */

@Data
public class Department {
   
    private Integer deptno;
    private String dname;
    private String loc;

    public Department(Integer deptno, String dname, String loc) {
   
        this.deptno = deptno;
        this.dname = dname;
        this.loc = loc;
    }

    public Department() {
   

    }
}

@Select(sql语句)

我们要进行查询时:
定义查询方法:
直接在方法上使用@Select,括号内使用select语句

@Select("select * from dept")
    public List<DepartmentMapper> getDept();

@Insert(sql语句)

@Insert("insert into dept(deptno,deptname,loc) values(#{deptNo},#{deptName},#{deptLoc}")
    public void  insertDept(Department department);

@Delete(sql语句)

@Delete("delete from dept where deptno = #{id}")
    public void delectDept(Integer id);

@Update(sql语句)

@Update("update dept set dname=#{deptName},loc=#{deptLoc} where deptno=#{deptNo}")
    public void updateDept(Department department);

结果集的注解

import lombok.Data;

/**
 * @author Una
 * @date 2022/8/21 20:21
 * @description:
 */

@Data
public class Department {
   
    private Integer deptNo;
    private String deptName;
    private String deptLoc;

    public Department(Integer deptNo, String deptName, String deptLoc) {
   
        this.deptNo = deptNo;
        this.deptName = deptName;
        this.deptLoc = deptLoc;
    }
    public Department() {
   
    }
}

当类的属性名与映射表的列名不同时,需要进行结果集的映射;当单表查询的时候,

@Select("select * from dept")
    @Results({
   
            @Result(id = true,property = "deptNo" ,column = "deptno"),//主键列
            @Result(property = "deptName" ,column = "dname"),
            //property="实体类属性名" ,column="表中对应的列名"
            @Result(property = "deptLoc" ,column = "loc")
    })
    public List<DepartmentMapper> getDept();

多表连接查询时的注解

一对一查询

user表:user_id表示学号
在这里插入图片描述
math表:表示数学成绩,sno表示学号
在这里插入图片描述

package com.pojo;

import lombok.Data;

import java.io
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值