Mybatis入门(入门案例,IDEA配置SQL提示,JDBC介绍,lombok介绍)

目录

  • 一、Mybatis入门案例
    • 介绍
    • 整体步骤
    • 创建SpringBoot项目
    • pom依赖
    • 准备测试数据
    • 新建实体类
    • 配置Mybatis数据库连接信息
    • 新建接口类,编写SQL代码
    • 单元测试
  • 二、IDEA配置SQL提示
  • 三、JDBC
    • 是什么
    • 案例
    • JDBC和Mybatis对比
  • 四、数据库连接池
    • 介绍
    • 如何实现一个数据库连接池
    • 切换数据库连接池
  • 五、lombok
    • 介绍
    • 依赖和插件

一、Mybatis入门案例

介绍

在这里插入图片描述

整体步骤

在这里插入图片描述

创建SpringBoot项目

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

pom依赖

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.7.8</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.zcy</groupId>
    <artifactId>mybatis-quick-start</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>mybatis-quick-start</name>
    <description>Demo project for Spring Boot</description>
    <properties>
        <java.version>8</java.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.2.2</version>
        </dependency>

        <dependency>
            <groupId>com.mysql</groupId>
            <artifactId>mysql-connector-j</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter-test</artifactId>
            <version>3.0.3</version>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

准备测试数据

新建数据库mybatis:
create database mybatis charset utf8;

插入测试数据:

create table user
(
    id     int unsigned primary key auto_increment comment 'ID',
    name   varchar(100) comment '姓名',
    age    tinyint unsigned comment '年龄',
    gender tinyint unsigned comment '性别, 1:男, 2:女',
    phone  varchar(11) comment '手机号'
) comment '用户表';

insert into user(id, name, age, gender, phone)
VALUES (null, '白眉鹰王', 55, '1', '18800000000');
insert into user(id, name, age, gender, phone)
VALUES (null, '金毛狮王', 45, '1', '18800000001');
insert into user(id, name, age, gender, phone)
VALUES (null, '青翼蝠王', 38, '1', '18800000002');
insert into user(id, name, age, gender, phone)
VALUES (null, '紫衫龙王', 42, '2', '18800000003');
insert into user(id, name, age, gender, phone)
VALUES (null, '光明左使', 37, '1', '18800000004');
insert into user(id, name, age, gender, phone)
VALUES (null, '光明右使', 48, '1', '18800000005');

在这里插入图片描述

新建实体类

  • 实体类封装的就是user表中的每一条记录 所以字段要一一对应

在这里插入图片描述

配置Mybatis数据库连接信息

在这里插入图片描述

新建接口类,编写SQL代码

在这里插入图片描述

单元测试

在这里插入图片描述

执行结果:
在这里插入图片描述

二、IDEA配置SQL提示

在上面UserMapper里写的SQL语句,目前IDEA只是把他当成一个字符串,没有智能提示,需要进行以下配置:
在这里插入图片描述

这样配置完之后,一些关键字就会有提示,而且写错了还会报错.
但是发现IDEA仍然识别不到数据表.

在这里插入图片描述

这是因为IDEA和数据库没有建立连接,不能识别表信息,还需要配置一下
这里IDEA连接MySQL数据库可以参考:如何使用IDEA直接连接MySQL数据库
在这里插入图片描述
要精确到具体数据库:
在这里插入图片描述

这样就会自动提示,而且不会报错
在这里插入图片描述

三、JDBC

是什么

在这里插入图片描述

案例

在这里插入图片描述

    @Test
    public void testJdbc() throws Exception {
        //1. 注册驱动 告诉JDBC要使用哪一个驱动类
        Class.forName("com.mysql.cj.jdbc.Driver");

        //2. 获取连接对象
        String url = "jdbc:mysql://localhost:3306/mybatis";
        String username = "root";
        String password = "zcygst666";
        Connection connection = DriverManager.getConnection(url, username, password);

        //3. 获取执行SQL的对象Statement,执行SQL,返回结果
        String sql = "select * from user";
        Statement statement = connection.createStatement();
        ResultSet resultSet = statement.executeQuery(sql);

        //4. 解析并封装结果数据
        List<User> userList = new ArrayList<>();
        while (resultSet.next()){
            int id = resultSet.getInt("id");
            String name = resultSet.getString("name");
            short age = resultSet.getShort("age");
            short gender = resultSet.getShort("gender");
            String phone = resultSet.getString("phone");

            User user = new User(id,name,age,gender,phone);
            userList.add(user);
        }

        //5. 释放资源
        statement.close();
        connection.close();

        System.out.println(userList);
    }

JDBC和Mybatis对比

Mybatis用配置文件的方式解决硬编码问题
SpringBoot又会自动完成数据封装
如果用spring.datasource(数据源)的方式来配置数据库连接信息,那么SpringBoot底层就会自动采用数据库连接池技术来统一分配并管理这些连接(Connection)
这和线程池很像,连接可以复用
在这里插入图片描述

在这里插入图片描述

四、数据库连接池

介绍

在这里插入图片描述

如何实现一个数据库连接池

即实现DataSource接口,一般不需要自己手动去实现,直接用开源的就行
在这里插入图片描述

切换数据库连接池

比如想要切换到Druid数据库连接池:官方地址
只需要在pom文件里引入,然后重新加载即可

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

然后再执行SpringBoot单元测试,发现日志里的数据库连接池信息已经改变了
在这里插入图片描述
且配置文件可以有下面两种写法:
在这里插入图片描述

五、lombok

介绍

在这里插入图片描述

在这里插入图片描述

依赖和插件

      <!--lombok-->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>

在这里插入图片描述

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/575219.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

commvault学习(6):备份oracle(包括oracle的安装)

1.环境 CS、MA&#xff1a;一台windows server2012 客户端&#xff1a;2台安装了oracle11g的windows server2008 1.1 windows server2008安装oracle11g &#xff08;1&#xff09;右击安装包内的setup&#xff0c;以管理员方式运行 &#xff08;2&#xff09;取消勾选接收安…

前端学习<四>JavaScript——48-jQuery动画详解

前言 jQuery提供的一组网页中常见的动画效果&#xff0c;这些动画是标准的、有规律的效果&#xff1b;同时还提供给我们了自定义动画的功能。 显示动画 方式一&#xff1a; <span style"background-color:#f8f8f8"><span style"color:#333333"…

Qt 把.exe打包成安装文件形式

目录 1.下载工具 Qt Installer Framework2.将bin文件添加到环境变量3.拷贝startmenu示例-备用4.准备Qt Release打包好的程序5.把Release打包好的程序放到packages\org.qtproject.ifw.example\data文件夹下6.生成安装包7.修改安装包图标8.修改主程序程序安装引导-创建快捷键9.添…

【重磅】刚刚,《学位法》通过!!!2025年1月1日起施行!

::: block-1 “时问桫椤”是一个致力于为本科生到研究生教育阶段提供帮助的不太正式的公众号。我们旨在在大家感到困惑、痛苦或面临困难时伸出援手。通过总结广大研究生的经验&#xff0c;帮助大家尽早适应研究生生活&#xff0c;尽快了解科研的本质。祝一切顺利&#xff01;—…

JetBot手势识别实验

实验简介 本实验目的在JetBot智能小车实现手势识别功能&#xff0c;使用板卡为Jetson Nano。通过小车摄像头&#xff0c;识别五个不同的手势&#xff0c;实现小车的运动及灯光控制。 1.数据采集 连接小车板卡的Jupyterlab环境&#xff0c;运行以下代码块&#xff0c;配置数据…

rust 卸载重新安装 安装

原因&#xff1a;接触区块链时报错 linking with x86_64-w64-mingw32-gcc failed: exit code: 1 Rust编译需要C环境&#xff0c;如果你没有&#xff0c;Rust也能安装成功&#xff0c;只是无法编译代码 C的编译工具有两个&#xff0c;一个是msvc&#xff0c;也就是visual studi…

pytest-xdist:远程多主机 - 分布式运行自动化测试

简介&#xff1a;pytest-xdist插件使用新的测试执行模式扩展了pytest&#xff0c;最常用的是在多个CPU之间分发测试以加快测试执行&#xff0c;即 pytest -n auto同时也是一个非常优秀的分布式测试插件&#xff0c;分别支持ssh和socket两种方式实现master和worker的远程通讯。…

【ensp实验】路由过滤与引入

要求&#xff1a; 1、按照图示配置IP地址&#xff0c;R1, R3&#xff0c;R4上使用loopback 口模拟业务网段&#xff1b; 2、R1和R2运行RIPv2&#xff0c;R2&#xff0c;R3和R4运行OSPF&#xff0c;各自协议内部互通&#xff1b; 3、在RIP和OSPF间配置双向路由引入&#xff0c;要…

imutils包

imutils是Adrian Rosebrock开发的一个python工具包&#xff0c;它整合了opencv、numpy和matplotlib的部分操作&#xff0c;使这些操作更加简便快捷。今天我们将对它的部分功能进行介绍&#xff0c;以便大家在今后的学习工作中&#xff0c;能够灵活运用好imutils包。 安装 当我们…

Idea 21版本 解决Service 控制台启动类不显示端口

文章目录 目录 文章目录 安装流程 小结 概要安装流程技术细节小结 概要 1.关闭idea&#xff0c;结束进程 2.找到 C:\用户\你的用户名\AppData\Local\Temp 删除&#xff08;hsperfdata_大健康&#xff09;文件 说明&#xff08;hsperfdata_大健康&#xff09; 后面三个中文是…

庐山研习班上介绍的25个LINUX工具

从2013年的第一届算起&#xff0c;庐山研习班走过十余个年头&#xff0c;办了十几次了。但每一次&#xff0c;都有很多不一样。即使是相同的主题&#xff0c;也有很大差异。 今年春季的庐山研习班是在上个周末。周四晚上我和大部分同学都到了五老峰脚下的训练基地。 除了周六下…

【可下载】CDA 1级教材《精益业务数据分析》2023最新版

CDA一级认证教材&#xff1a;《精益业务数据分析》 全面、系统地讲述业务描述性分析为企业决策行为创造价值的全流程技能&#xff0c;涵盖描述性数据分析方法、业务分析方法、数据分析结果应用方法等内容。 条理清晰的结构、通俗易懂的语言、完整立体的知识框架为读者铺开一幅…

Vite 热更新(HMR)原理了解一下

❝ 幸福的三大要素是&#xff1a;有要做的事&#xff08;something to do&#xff09;、有要爱的人&#xff08;someone to love&#xff09;、有寄予希望的东西&#xff08;something to hope for&#xff09; ❞ 大家好&#xff0c;我是「柒八九」。一个「专注于前端开发技术…

CK_Label_V15

CK_Label_v15&#xff08;外接供电版&#xff09; 产品型号 CK_Label_v15 尺寸 63*14.6*7.9mm 按键 0 指示灯 1 RGB&#xff08;7种(红/绿/蓝/黄/紫/白/青)&#xff09; 通信方式 无线通信 工作频段 868MHz 供电方式 24V外接供电 电池容量 300mAh 电池寿命 …

第⑰讲:Ceph集群各组件的配置参数调整

文章目录 1.Ceph集群各组件的配置文件1.1.Ceph各组件配置方式1.2.ceph临时查看、修改配置参数的方法 2.调整Monitor组件的配置参数删除Pool资源池2.1.临时调整配置参数2.2.永久修改配置参数 1.Ceph集群各组件的配置文件 1.1.Ceph各组件配置方式 Ceph集群中各个组件的默认配置…

IDEA中配置使用maven和配置maven的中央仓库

1 以汉化后的IDEA为例配置maven 打开idea选择文件 选择 设置 点击>构建.执行.部署 点击>构建工具 点击>Maven 其中Maven主路径 就是我们maven下载解压后的路径 可以通过边上的三个点选择你解压后的绝对路径&#xff0c;也可以直接把解压后的绝对路劲复制过来 以下…

从零开始,快速掌握创建百度百科技巧

百科是一种常用的知识库&#xff0c;对于想要分享或搜索相关知识的人们来说&#xff0c;它是一个必备的工具。而如何创建一个百科呢&#xff1f;下面将详细介绍创建百科的步骤和技巧&#xff0c;帮助你轻松掌握创建百科的方法。 首先&#xff0c;创建百科需要明确一个主题或领域…

Gin+WebSocket实战——在线聊天室WebSocketDemo详细使用教程

文章目录 仓库地址项目简介如何使用 仓库地址 Github&#xff1a;https://github.com/palp1tate/WebsocketDemo 欢迎star&#xff01;&#x1f60e; 项目简介 利用 GinWebSocket 实现的在线聊天室Demo项目&#xff0c;支持加入/离开聊天室广播、给其他用户发送消息等。 如何…

day04 51单片机-矩阵按键

1 矩阵按键 1.1 需求描述 本案例实现以下功能&#xff1a;按下矩阵按键SW5到SW20&#xff0c;数码管会显示对应的按键编号。 1.2 硬件设计 1.2.1 硬件原理图 1.2.2 矩阵按键原理 1.3软件设计 1&#xff09;Int_MatrixKeyboard.h 在项目的Int目录下创建Int_MatrixKeyboard…

OpenCV 实现霍夫圆变换

返回:OpenCV系列文章目录&#xff08;持续更新中......&#xff09; 上一篇&#xff1a;OpenCV实现霍夫变换 下一篇:OpenCV 实现重新映射 目标 在本教程中&#xff0c;您将学习如何&#xff1a; 使用 OpenCV 函数 HoughCircles()检测图像中的圆圈。 理论 Hough 圆变换 H…