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;
}
相关推荐
Coder_Boy_1 分钟前
业务导向型技术日志首日记录(业务中使用的技术栈)
java·驱动开发·微服务
码事漫谈17 分钟前
国产时序数据库崛起:金仓凭什么在复杂场景中碾压InfluxDB
后端
上进小菜猪23 分钟前
当时序数据不再“只是时间”:金仓数据库如何在复杂场景中拉开与 InfluxDB 的差距
后端
程序员zgh28 分钟前
C++ 互斥锁、读写锁、原子操作、条件变量
c语言·开发语言·jvm·c++
小灰灰搞电子43 分钟前
Qt 重写QRadioButton实现动态radioButton源码分享
开发语言·qt·命令模式
by__csdn1 小时前
Vue3 setup()函数终极攻略:从入门到精通
开发语言·前端·javascript·vue.js·性能优化·typescript·ecmascript
喵了meme1 小时前
C语言实战5
c语言·开发语言
盖世英雄酱581361 小时前
springboot 项目 从jdk 8 升级到jdk21 会面临哪些问题
java·后端
济南壹软网络科技有限公司1 小时前
企业级盲盒系统:Java高并发架构在多元化抽奖电商中的设计与实践
java·架构·开源源码·盲盒源码·盲盒h5·盲盒app
廋到被风吹走1 小时前
【Java】常用设计模式及应用场景详解
java·开发语言·设计模式