Springboot Mybatis对数据库增删改查

Springboot中,用Mybatis对数据库进行增删改查

Mapper类

java 复制代码
package com.wzb.MybatisExercise20240924;

import com.wzb.Pojo20240924.Emp;
import org.apache.ibatis.annotations.*;

@Mapper
public interface EmpMapper {

    // 根据id查询数据
    @Select("select * from emp where id=#{id}")
    public void getEmp(Integer id);

    // 增加新的数据
    // 设置主键返回
    @Options(useGeneratedKeys = true, keyProperty = "id")
    @Insert("insert into emp(username, name, gender, image, job, entrydate, dept_id, create_time, " +
            "update_time) values (#{username}, #{name}, #{gender}, #{image}, #{job}, #{entrydate}, " +
            "#{deptId}, #{createTime}, #{updateTime})")
    public void insertEmp(Emp emp);

    // 修改表中数据
    @Update("update emp set username = #{username}, name = #{name}, gender = #{gender}, image = #{image}, " +
            "job = #{job}, entrydate = #{entrydate}, dept_id = #{deptId}, update_time = #{updateTime} " +
            "where id = #{id}")
    public void updateEmp(Emp emp);

    // 按照id删除表中数据
    @Delete("delete from emp where id = #{id}")
    public void deleteEmp(Integer id);

}

Test测试类

java 复制代码
package com.wzb;

import com.wzb.ConditionSelectExercise20240924.ConditionMapper;
import com.wzb.MybatisExercise20240924.EmpMapper;
import com.wzb.Pojo20240924.Emp;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;
import java.util.concurrent.locks.Condition;

@SpringBootTest
class SpringbootExercise20240924ApplicationTests {

    @Autowired
    private EmpMapper empMapper;
    @Autowired
    private ConditionMapper cm;

    // 查
//    @Test
//    public void getEmp() {
//        empMapper.getEmp(19);
//    }

    // 增
//    @Test
//    public void insertEmp() {
//        Emp emp = new Emp();
//        emp.setUsername("Rose");
//        emp.setName("肉丝");
//        emp.setImage("1.jpg");
//        emp.setGender((short)2);
//        emp.setJob((short)1);
//        emp.setEntrydate(LocalDate.of(2000,1,1));
//        emp.setCreateTime(LocalDateTime.now());
//        emp.setUpdateTime(LocalDateTime.now());
//        emp.setDeptId(1);
//
//        empMapper.insertEmp(emp);
//    }

//    // 改
//    @Test
//    public void updateEmp() {
//        Emp emp = new Emp();
//        // 根据Id修改
//        emp.setId(25);
//        emp.setUsername("Rose");
//        emp.setPassword(null);
//        emp.setName("肉丝儿");
//        emp.setImage("2.jpg");
//        emp.setGender((short)1);
//        emp.setJob((short)2);
//        emp.setEntrydate(LocalDate.of(2012,1,1));
//        emp.setCreateTime(null);
//        emp.setUpdateTime(LocalDateTime.now());
//        emp.setDeptId(2);
//
//        empMapper.updateEmp(emp);
//    }
//
//    // 删
//    @Test
//    public void deleteEmp() {
//        empMapper.deleteEmp(25);
//    }

    // 条件查询
    @Test
    public void conditionSelect() {
        List<Emp> empList = cm.conditionSelect("张", (short)1, LocalDate.of(2010, 1, 1),
                LocalDate.of(2020, 1, 1));
        for (Emp e : empList) {
            System.out.println(e);
        }
    }



}

PojoEmp类

java 复制代码
package com.wzb.Pojo20240924;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.time.LocalDate;
import java.time.LocalDateTime;

@Data
@AllArgsConstructor
@NoArgsConstructor
public class Emp {
    private Integer id;
    private String username;
    private String password;
    private String name;
    private Short gender;
    private String image;
    private Short job;
    private LocalDate entrydate;     //LocalDate类型对应数据表中的date类型
    private Integer deptId;
    private LocalDateTime createTime;//LocalDateTime类型对应数据表中的datetime类型
    private LocalDateTime updateTime;
}
相关推荐
道19935 分钟前
50 台小型无人车与50套穿戴终端 5 公里范围内通信组网方案深度研究
java·后端·struts
迎風吹頭髮10 分钟前
UNIX下C语言编程与实践35-UNIX 守护进程编写:后台执行、脱离终端、清除掩码与信号处理
java·c语言·unix
间彧12 分钟前
Spring Boot中,拦截器和Spring AOP有什么区别
后端
JaguarJack25 分钟前
PHP 开发者应该理解的 Linux 入门权限指南
后端·php
IT_陈寒25 分钟前
Java性能优化:这5个Spring Boot隐藏技巧让你的应用提速40%
前端·人工智能·后端
光军oi26 分钟前
全栈开发杂谈————JAVA微服务全套技术栈详解
java·开发语言·微服务
帮帮志27 分钟前
目录【系列文章目录】-(关于帮帮志,关于作者)
java·开发语言·python·链表·交互
聪明的笨猪猪27 分钟前
Java Spring “MVC ”面试清单(含超通俗生活案例与深度理解)
java·经验分享·笔记·面试
程序员爱钓鱼1 小时前
Go语言实战案例——进阶与部署篇:使用Docker部署Go服务
后端·google·go
qiuiuiu4131 小时前
正点原子RK3568学习日记-GIT
linux·c语言·开发语言·单片机