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

后端之路第三站(Mybatis)——JDBC跟Mybatis、lombok

一、什么是JDBC

JDBC就是sun公司研发的一套通过java来操控数据库的工具,对应不同的数据库系统有不同的JDBC,而他们统称【驱动】,这就是上一篇我们提到创建Mybatis项目时要引入的依赖、以及连接数据库四要素里的第一要素。

JDBC有自己一套原始的启动、运行代码,如下图(我没给出完整代码,因为不要去记,没有用)

不用了解,只要知道有这么个玩意就行

二、JDBC与Mybatis对比

JDBC代码又长又臭,而且连接数据库、sql语句执行、实体类封装......全都在一块屎代码里,不灵活,那么Mybatis的优势就显示出来了

然后Mybatis只需要关注这两部分:【数据库连接:application.properties】跟【mapper接口】

三、数据库连接池

1、什么是数据库连接池

一个数据库可以与其它多个客户端连接,那么用JDBC连接数据库的话就是谁跟它连接,就创建一个【连接】,等他执行完操作不用了,再把【连接】还回去,如此往复创建连接、释放连接;

而【数据库连接池】是有几个客户端要跟数据库连接,它就分配出几个【连接】,然后不在多余创建或释放,谁要用就拿去,用完还回来;哪怕有一个客户端连接了半天啥也不干,数据库连接池也会检测到,时间到了就拿回【连接】放回【数据库连接池】

2、数据库连接池产品

那么市面上的【数据库连接池】产品有很多,我们上一篇连接测试的时候,控制台最后两行就有显示,红色框住的地方就是一个叫 “Hikari” 的数据库连接池产品

常见有这么几个,我们默认的是Hikari

那个 “Druid” 其实是最好用的,是由阿里巴巴开发的,是java数据库连接池就好的产品

那么我们怎么去更换我们的产品?前面我们学过Maven知道,maven的强大之处就是直接在【pom.xml】代码里的【<dependencies></dependencies>】里加入你要的依赖包,然后更新一下,就可以自动下载配置了,那么【Druid】的依赖代码我放在下面,各位自行配置

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

爆红是因为没有刷新、下载,点右上角刷新一下就行了

然后再运行就能看到Druid的数据库连接池已经更换成功

3、数据库连接池产品的标准接口:Datasource

那那么多产品,就得有一个标准接口来连接所有产品的数据库连接池

就是【Datasource】,是官方(sun)提供的数据库连接池接口,由第三方组织实现此接口

获取连接的代码是:

Connection getConnection() throws SQLException;

我们摁两下Shift,然后查找Hikari或者Druid的源码,就会看到它们都必须有【Datasource】这个接口

那么Druid德鲁伊的数据库连接池有两种属性配置

第一种是默认之前的四要素配置

第二种是在原基础上加上【.druid】,其实都一样的,以后看到这种代码不用疑惑,这两都可以

四、超级偷懒建实体类方法:lombok

我们前面为了连接数据库在java也建立了一个“数据库表”——JavaBean类,但是我们都知道一个JavaBean贼多代码,又臭又长

有的人会说,不是有快捷键 “Alt + Insert”自动生成构造函数跟setter、getter函数吗?那么看看lombok的代码你就会知道什么叫简约舒服

Lombok是一个实用的lava类库,能通过注解的形式自动生成构造器、getter/setter、equals、hashcode、tostring等方法,简化java开发、提高效率。

常见的注解有这些(黄色是常用的)

注解作用
@Getter/@Setter为所有的属性提供get/set方法
@ToString会给类自动生成易阅读的 toString 方法
@EqualsAndHashcode根据类所拥有的非静态字段自动重写 equals 方法和 hashcode 方法
@Data提供了综合的各个方法的生成代码功能(@Getter+@Setter+@ToString+@EqualsAndHashCode)
@NoArgsConstructor生成无参的构造器
@AllArgsConstructor生成除了static修饰的字段之外有参构造器

那怎么用?首先我们本来是没有lombok的,还是一样要到pom.xml去引入依赖

爆红是因为没有刷新、下载,点右上角刷新一下就行了

好,现在回到User类,拔出了属性以为所有方法注释了,不要了

然后现在在上面加上这些注解(注意,其实@Data = @Getter/@Setter + @ToString + @EqualsAndHashcode ,所以写一个@Data就够了,但是有参构造和无参构造还是得另外用别的两个注解)

然后现在回到test的测试类里,测试user.能发现有了提示,User的所有getter、setter、构造函数啥的都出来了

但是这里运行时有个问题:

那么回到最前面的问题,配置lombok依赖那里,因为我说跟着黑马的视频来的,所以踩坑了,黑马说springboot帮我们指定了lombok的版本(version),但是!!有个前提条件是可能他的JDK版本刚好跟springboot指定的lombok版本适配,而我们的版本不适配!!!

那就必须要手动强制升级更新一下lombok的版本

你们可以按我这个版本试试,不行的话再把报错信息发给ai问一下,试试别的版本行不行

我这个现在就成功了

另外,如果你用的是远古时期的idea,那么还请手动下载安装lombok插件,新版本的不需要

下一篇讲案例:Mybatis基础操作

http://www.lryc.cn/news/390944.html

相关文章:

  • 零基础入门怎么学习老挝语字母表?《老挝语翻译通》App真人发音教学,学习老挝语字母发音和词汇句子!
  • linux深度deepin基于rsync和apt-mirror同步软件源及构建本地内网源
  • 场景管理分析平台介绍
  • SQL Server和Oracle数据库的实时同步
  • Python中使用Oracle向量数据库实现文本检索系统
  • java考试题20道
  • 云仓的优势体现在哪里?
  • github 设置中文,亲测有效
  • Spring容器生命周期中如前置运行程序和后置运行程序
  • C++ 现代教程二
  • JavaScript函数闭包解析
  • STM32MP135裸机编程:使用软件触发硬件复位
  • 【饼图交通方式】用ECharts的graphic配置打造个性化
  • 大模型学习笔记3【大模型】LLaMA学习笔记
  • 工程师 - 什么是SMP
  • Webpack: 并行构建
  • Vue的介绍与使用
  • MYSQL双主双从,使用Keepalived双机热备+LVS高可用群集
  • 9.计算机视觉—目标检测
  • 构造函数深入理解
  • Rocky Linux 9 快速安装docker 教程
  • go语言并发编程1-Gouroutine
  • Sylar服务器框架——Http模块
  • 7km远距离WiFi实时图传模块,无人机海上无线传输方案,飞睿智能WiFi MESH自组网技术
  • 2024年上半年网络工程师下午真题及答案解析
  • Jmeter下载、安装及配置
  • 掌握高效实用的VS调试技巧
  • 实验2 字符及字符串输入输出与分支程序设计实验
  • docker容器间网络仿真工具-pumba
  • A36 STM32_HAL库函数 之PCD通用驱动 -- B -- 所有函数的介绍及使用