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;
}
相关推荐
崎岖Qiu11 分钟前
【设计模式笔记06】:单一职责原则
java·笔记·设计模式·单一职责原则
Hello.Reader16 分钟前
Flink ExecutionConfig 实战并行度、序列化、对象重用与全局参数
java·大数据·flink
熊小猿1 小时前
在 Spring Boot 项目中使用分页插件的两种常见方式
java·spring boot·后端
paopaokaka_luck1 小时前
基于SpringBoot+Vue的助农扶贫平台(AI问答、WebSocket实时聊天、快递物流API、协同过滤算法、Echarts图形化分析、分享链接到微博)
java·vue.js·spring boot·后端·websocket·spring
老华带你飞1 小时前
机器人信息|基于Springboot的机器人门户展示系统设计与实现(源码+数据库+文档)
java·数据库·spring boot·机器人·论文·毕设·机器人门户展示系统
notion20251 小时前
Adobe Lightroom Classic下载与安装教程(附安装包) 2025最新版详细图文安装教程
java·数据库·其他·adobe
初见无风2 小时前
2.5 Lua代码中string类型常用API
开发语言·lua·lua5.4
做运维的阿瑞2 小时前
用 Python 构建稳健的数据分析流水线
开发语言·python·数据分析
左师佑图2 小时前
综合案例:Python 数据处理——从Excel文件到数据分析
开发语言·python·数据分析·excel·pandas
rengang662 小时前
351-Spring AI Alibaba Dashscope 多模型示例
java·人工智能·spring·多模态·spring ai·ai应用编程