当前位置: 首页 > news >正文

Mybatis,Druid,lombok

一、Mybatis

application.propertities模版

#驱动类名称
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
#数据库连接的url
spring.datasource.url=jdbc:mysql://localhost:3306/db01
#连接数据库的用户名
spring.datasource.username=root
#连接数据库的密码
spring.datasource.password=woshifjh0621#指定mybatis输出日志的位置, 输出控制台
mybatis.configuration.logimpl=org.apache.ibatis.logging.stdout.StdOutImpl# 在application.properties中添加:
# 数据库表列的字段名和pojo类中的属性名不一样,查询后的返回值为null,可以使用驼峰命名法,mybatis就可以自动封装,返回结果
mybatis.configuration.map-underscore-to-camel-case=true

主键返回

@Mapper
public interface EmpMapper {
//会自动将生成的主键值,赋值给emp对象的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 insert(Emp emp);
}

xml配置文件(写复杂sql语句)

使用 Mybatis 注解方式,主要是来完成一些简单的增删改查功能 。如果需要实现 复杂的SQL功能,建议使用XML来配置映射语句 ,也就是将 SQL 语句写在 XML 配置文件中。
比如:com.fujunhao.day09.mapper.EmpMapper
           com/fujunhao/day09/mapper/EmpMapper.xml

1、首先在resources目录下,建立一个和mapper接口同包同名的mapper.xml文件

2、初始化mapper.xml文件的配置

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"https://mybatis.org/dtd/mybatis-3-mapper.dtd"><!-- namespace就是对应哪一个mapper,比如可以是 com.fujunhao.day09.mapper.EmpMapper -->
<mapper namespace="">
<!--这里就放查询的sql语句 -->
</mapper>

3、完整mapper.xml和mapper示例(动态sql)

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""https://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="com.fujunhao.day09.mapper.EmpMapper"><!--更新操作--><update id="update">update emp<!-- 使用set标签,代替update语句中的set关键字 --><set><if test="username != null">username=#{username},</if><if test="name != null">name=#{name},</if><if test="gender != null">gender=#{gender},</if><if test="image != null">image=#{image},</if><if test="job != null">job=#{job},</if><if test="entrydate != null">entrydate=#{entrydate},</if><if test="deptId != null">dept_id=#{deptId},</if><if test="updateTime != null">update_time=#{updateTime}</if></set>where id=#{id}</update><!--查询操作--><select id="list" resultType="com.fujunhao.day09.pojo.Emp">//动态sql拼接查询条件select * from emp<where><if test="name != null">name like concat('%',#{name},'%')</if><if test="gender != null">and gender = #{gender}</if><if test="begin != null and end != null">and entrydate between #{begin} and #{end}</if></where>order by update_time desc</select>
</mapper>

package com.fujunhao.day09.mapper;import com.fujunhao.day09.pojo.Emp;
import org.apache.ibatis.annotations.*;import java.time.LocalDate;
import java.util.List;@Mapper
public interface EmpMapper {/**** @param empId*/@Delete("delete from emp where id = #{id}")void deleteEmpById(Integer empId);/**** @param emp*///会自动将生成的主键值,赋值给emp对象的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})")void insertEmp(Emp emp);void update(Emp emp);/*** @param empId* @return*/@Select("select id, username, password, name, gender, image, job, " +"entrydate, dept_id, create_time, update_time from emp where id=#{id}")Emp getById(Integer empId);List<Emp> list(String name, Short gender, LocalDatebegin, LocalDate end);
}
3.1 xml中sql语句如何写?
 <select id="list" resultType="com.fujunhao.day09.pojo.Emp">

这里的select 就是操作,还有update/delete等等,id后面的list就是你mapper接口里面的方法名字,这个resultType就是这个方法的返回类型,比如List<Emp>,方法返回一个集合,对象是Emp,所以xml这里就写Emp这个pojo类的路径

4、动态sql

<if test="name != null"> … </if>-----------------------------------------------------------------------------------<where>-----------------------------------------------------------------------------------<set>-----------------------------------------------------------------------------------<forEach>
<!--删除操作-->
<!--ids 就是mapper方法中的形参集合的名字-->
<delete id="deleteByIds">delete from emp where id in<foreach collection="ids" item="id" separator="," open="(" close=")">#{id}</foreach></delete>
-----------------------------------------------------------------------------------<!--定义一个可重用的sql代码段,命名为id=“” -->
<sql id=""></sql>
<!--直接运用id=“”的代码段-->
<include refid="id"/>

重用示例:

二、Druid数据库连接池

想要更换druid连接池仅需在pom.xml文件中加入,application.properties的配置用以前的就好

<dependency>
<!-- Druid连接池依赖 -->
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.2.8</version>
</dependency>

三、lombok注解(简化pojo类代码,自动生成

引入依赖再使用

<!-- 在springboot的父工程中,已经集成了lombok并指定了版本号,故当前引入依赖
时不需要指定version -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
import lombok.Data;
@Data //getter方法、setter方法、toString方法、hashCode方法、equals方法
@NoArgsConstructor //无参构造
@AllArgsConstructor//全参构造
public class User {
private Integer id;
private String name;
private Short age;
private Short gender;
private String phone;
}


http://www.mrgr.cn/news/77743.html

相关文章:

  • Java设计模式 —— 【行为型模式】命令模式(Command Pattern) 详解
  • 年度技术突破奖|中兴微电子引领汽车芯片新变革
  • 完整化安装kubesphere,ks-jenkins的状态一直为init
  • Cygwin, MinGW
  • uniapp区域滚动——上划进行分页加载数据(详细教程)
  • 小米路由器IPv6 功能使用指南
  • hhdb数据库介绍(10-1)
  • 瑞佑液晶控制芯片RA6807系列介绍 (三)软件代码详解 Part.8(实现淡入淡出效果)
  • Pytorch使用手册-快速开始(专题一)
  • Pytorch使用手册-Tensors(专题二)
  • AP+AC组网——STA接入
  • Java项目实战II基于微信小程序的校运会管理系统(开发文档+数据库+源码)
  • 51c大模型~合集76
  • 如何将文件Copy到Docker镜像中
  • 雅思阅读TFNG题型7大解题思路
  • Go语言中的条件变量:sync.NewCond
  • 【数据库入门】关系型数据库入门及SQL语句的编写
  • 封装实现通用的 `forEach` 函数:深入JavaScript的迭代机制与细节优化
  • 历遍单片机下的IIC设备[ESP--0]
  • 配置Springboot+vue项目在ubuntu20.04
  • docker-compose快速编排docker容器
  • 如何使用 ChatGPT 进行关键字研究
  • 对 TypeScript 中类是怎么理解的?都有哪些应用场景?
  • Vue 如何简单更快的对 TypeScript 中接口的理解?应用场景?
  • 使用Mac下载MySQL修改密码
  • vscode 远程连接ssh 密钥方式