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;
}
相关推荐
Domain-zhuo2 分钟前
什么是JavaScript原型链?
开发语言·前端·javascript·jvm·ecmascript·原型模式
SoraLuna3 分钟前
「Mac玩转仓颉内测版24」基础篇4 - 浮点类型详解
开发语言·算法·macos·cangjie
小丁爱养花9 分钟前
前端三剑客(三):JavaScript
开发语言·前端·javascript
生信摆渡24 分钟前
R语言-快速对多个变量取交集
开发语言·数据库·r语言
AiFlutter36 分钟前
Java实现简单的搜索引擎
java·搜索引擎·mybatis
¥ 多多¥37 分钟前
c++中mystring运算符重载
开发语言·c++·算法
Mr.Pascal42 分钟前
刚学php序列化/反序列化遇到的坑(攻防世界:Web_php_unserialize)
开发语言·安全·web安全·php
小尤笔记1 小时前
利用Python编写简单登录系统
开发语言·python·数据分析·python基础
飞升不如收破烂~1 小时前
Spring boot常用注解和作用
java·spring boot·后端
秦老师Q1 小时前
Java基础第九章-Java集合框架(超详细)!!!
java·开发语言