创新的购物网站建设,wordpress 附件ftp,做网站赚不到钱了,陕西企尚网络科技有限公司Mybaits在操作数据库时#xff0c;可以有两种方式#xff1b;第一种是使用注解的方式操作#xff0c;另一种是使用XML配置文件的方式#xff1a;一般而言#xff0c;若没有特别的要求#xff0c;则编写一些简单的SQL语句#xff0c;可以直接使用注解的方式#xff1b;编… Mybaits在操作数据库时可以有两种方式第一种是使用注解的方式操作另一种是使用XML配置文件的方式一般而言若没有特别的要求则编写一些简单的SQL语句可以直接使用注解的方式编写一些复杂的SQL语句则需要使用XML注解的方式 用XML配置文件操作数据库完成增删改查。 MybatisMapper
package com.wzb.MybatisExercise20240926;import com.wzb.Pojo20240926.Emp;
import org.apache.ibatis.annotations.Mapper;import java.time.LocalDate;
import java.util.List;Mapper
public interface MybatisMapper {// 增public void insertEmp(Emp emp);// 删public void deleteEmp(ListInteger ids);// 改public void updateEmp(Emp emp);// 查public ListEmp selectEmp(String name, short gender, LocalDate begin, LocalDate end);}Pojo
package com.wzb.Pojo20240926;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;
}XML配置文件
?xml version1.0 encodingUTF-8 ?
!DOCTYPE mapperPUBLIC -//mybatis.org//DTD Mapper 3.0//ENhttps://mybatis.org/dtd/mybatis-3-mapper.dtd
mapper namespacecom.wzb.MybatisExercise20240926.MybatisMapper!--全类名就是全部包名 类名--!--XML映射文件中的SQL语句的id必须和Mapper接口中的方法名完全一致并且保持返回值一致--!--完成条件查询--!-- select id selectEmp resultTypecom.wzb.Pojo20240926.Emp--!-- select * from emp--!-- where name like concat(%, #{name}, %)--!-- and gender #{gender}--!-- and entrydate between #{begin} and #{end}--!-- order by update_time desc--!-- /select--!-- 但是有一个弊端可见中间都是and连接的那么当后面的参数如gender都是null的时候即使传递了前面的参数如name也不会有查询结果因为不管传递参数没有都会拼接进SQL语句这不符合业务逻辑————传递了参数才进行拼接若没有参数则不拼接 --!-- 增 --insert idinsertEmpinsert into emp (username, name, gender, image, job, entrydate, dept_id, create_time, update_time)valuestrim prefix( suffix) suffixOverrides,if testusername ! null#{username},/ifif testname ! null#{name},/ifif testgender ! -1#{gender},/ifif testimage ! null#{image},/ifif testjob ! null#{job},/ifif testentrydate ! null#{entrydate},/ifif testdeptId ! -1#{deptId},/if#{createTime}, #{updateTime}/trim/insert!-- 删 --delete iddeleteEmpdelete from emp where id inforeach collectionids itemid separator, open( close)#{id}/foreach/delete!-- 改 --update idupdateEmpupdate empsetif testusername ! nullusername#{username},/ifif testname ! nullname#{name},/ifif testgender ! -1gender#{gender},/ifif testimage ! nullimage#{image},/ifif testjob ! nulljob#{job},/ifif testentrydate ! nullentrydate#{entrydate},/ifif testdeptId ! nulldept_id#{deptId},/ifif testupdateTime ! nullupdate_time#{updateTime}/if/setwhere id#{id}/updateselect idselectEmp resultTypecom.wzb.Pojo20240926.Empselect * from empwhereif testname ! nullname like concat(%, #{name}, %)/ifif testgender!-1and gender#{gender}/ifif testbegin!null and end!nulland entrydate between begin and end/if/whereorder by entrydate desc/select/mapper SpringbootTest
package com.wzb;import com.wzb.MybatisExercise20240926.MybatisMapper;
import com.wzb.Pojo20240926.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.ArrayList;
import java.util.Collections;
import java.util.List;SpringBootTest
class SpringbootExercise20240926ApplicationTests {Autowiredprivate MybatisMapper mybatisMapper;//增Testpublic void insertEmp() {Emp emp new Emp(30, leiyi, 123456, 雷伊, (short) 1, 3.jpg,(short) 1, LocalDate.of(2000, 1, 1),2, LocalDateTime.now(), LocalDateTime.now());mybatisMapper.insertEmp(emp);}// 删Testpublic void deleteEmp() {ListInteger ids new ArrayList();Collections.addAll(ids, 30);mybatisMapper.deleteEmp(ids);}// 改Testpublic void updateEmp() {Emp emp new Emp();emp.setUsername(gaiya);emp.setName(盖亚);emp.setGender((short)1);emp.setUpdateTime(LocalDateTime.now());emp.setId(30);mybatisMapper.updateEmp(emp);}// 查Testpublic void selectEmp() {ListEmp empList mybatisMapper.selectEmp(null, (short)-1, null, null);for (Emp emp : empList) {System.out.println(emp);}}}