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

news2024/10/5 22:34:43

目录

  • 一、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>

在这里插入图片描述

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【SpringCloud】LoadBalance负载均衡服务调用快速入门

【SpringCloud】LoadBalance负载均衡服务调用快速入门 文章目录 【SpringCloud】LoadBalance负载均衡服务调用快速入门1. 概述2. 引入依赖3. 配置、验证3.1 配置3.2 验证 1. 概述 官网地址&#xff1a;点击跳转 Spring Cloud LoadBalancer 是由 SpringCloud 官方提供的一个开…

自动化测试用例设计

知人者智&#xff0c;自知者明。大家好&#xff0c;给大家分享一下关于自动化测试用例的设计心得&#xff0c;首先完整的熟悉业务是第一步要做的&#xff0c;不熟悉业务的前提下不会设计出高效且合理的用例&#xff0c;其次是我们要有明确的测试目标&#xff0c;确保我们写的每…

CentOS 7.9.2009 中 Docker 使用 GPU

一、安装nvidia驱动 1.1&#xff0c;查看显卡驱动 # 查看显卡型号 lspci | grep -i nvidia 1.2&#xff0c;进入 PCI devices &#xff0c;输入上一步查询到的 2204 1.3&#xff0c;进入 官方驱动 | NVIDIA&#xff0c;查询 Geforce RTX 3090 驱动并下载 1.4&#xff0c;禁用…

Redis入门到通关之数据结构解析-QuickList

文章目录 ☃️前提概要☃️ 配置项相关☃️简要源码☃️总结 欢迎来到 请回答1024 的博客 &#x1f353;&#x1f353;&#x1f353;欢迎来到 请回答1024的博客 关于博主&#xff1a; 我是 请回答1024&#xff0c;一个追求数学与计算的边界、时间与空间的平衡&#xff0c;0与1…

第十五届蓝桥杯省赛第二场C/C++B组A题【进制】题解(AC)

解题思路 按照题意进行模拟&#xff0c;计算 x x x 的 b b b 进制过程中&#xff0c;若出现余数大于 9 9 9&#xff0c;则说明 x x x 的 b b b 进制一定要用字母进行表示。 #include <iostream> #include <cstring> #include <algorithm> #include &l…

探索UWB模块的潜力:智能家居与物联网的连接者

UWB模块具有精准定位、快速响应、低能耗等特点&#xff0c;在智能家居领域展现出了巨大的潜力&#xff0c;正逐渐成为智能家居与物联网的重要连接者。本文将探讨UWB模块在智能家居与物联网中的关键作用、应用场景以及未来发展趋势&#xff0c;旨在为推动智能家居技术的创新和发…

基于Springboot的租房网站

基于SpringbootVue的租房网站的设计与实现 开发语言&#xff1a;Java数据库&#xff1a;MySQL技术&#xff1a;SpringbootMybatis工具&#xff1a;IDEA、Maven、Navicat 系统展示 用户登录 首页 房屋信息 交流论坛 房屋资讯 后台登录 用户管理 房屋类型管理 房屋信息管理 预…

2、选择什么样的机器人本体

如果说世界是物质的&#xff0c;那么应该先制造出机器人的本体&#xff0c;再让她产生灵魂。如果是精神的呢&#xff0c;世界是无中生有的呢&#xff0c;那就先在仿真中研究算法吧。 而我比较崇尚初中哲学的一句话&#xff0c;世界是物质的&#xff0c;物质是运动的&am…

25考研数学可以全程跟张宇吗?

先说结论&#xff1a;25可以全程跟张宇。除了这三种情况。 总的来说&#xff0c;张宇的知识点是全的&#xff0c;不需要担心漏知识点、漏经典方法。不单高数&#xff0c;线代概率也是这样。 但是&#xff0c;老师讲得好&#xff0c;不能保证你上岸。 如果遇到这三种情况&…

【计算机网络】网络模型

OSI七层网络模型 七层模型如图所示 每层的概念和功能 物理层 职责&#xff1a;将数据以比特为单位&#xff0c;通过不同的传输介质将数据传输出去。 主要协议&#xff1a;物理媒介相关的协议&#xff0c;如RS232&#xff0c;V.35&#xff0c;以太网等。 数据链路层 职责&…

登录vcenter,提示no healthy upstream

当登录vCenter时收到“no healthy upstream”错误提示时&#xff0c;这通常意味着vCenter Server无法与它的某些关键组件或依赖的服务建立有效的连接。这个错误表明vCenter系统的某个上游组件&#xff08;例如内部服务、数据库、网络资源或其他依赖项&#xff09;未能达到正常工…

ardupilot开发 --- Jetson Orin Nano 篇

多情应笑我早生华发 0. 一些概念1. 系统安装&#xff08;刷机、flash&#xff09;1.1 使用SD卡安装系统1.2 使用固态硬盘安装系统 0. 一些概念 官网&#xff1a;https://www.nvidia.com/en-us/ Developers Documentation Getting Started Jetson Developer Kits User Guid…

STM32 HAL库F103系列之DAC实验(二)

DAC输出正弦波实验 实验简要 1&#xff0c;功能描述 通过DAC1通道1(PA4)输出正弦波&#xff0c;然后通过DS100示波器查看波形 2&#xff0c;使用定时器7 TRGO事件触发转换 TEN1位置1、TSEL1[2:0]010 3&#xff0c;关闭输出缓冲 BOFF1位置1 4&#xff0c;使用DMA模式 DMAE…

DDR3简介

文章目录 前言一、ddr_stress_tester_v2.90配置流程二、将inc配置文件下载到板子上1.连接方式2.打开DDR_Tester 软件 uboot中DDR初始化的修改 前言 &#x1f4a6;DDR3在自己做完板子后需要验证下&#xff0c;测试DDR3是否能正常使用&#xff0c;如果不能正常使用&#xff0c;其…

测试实战哦

软件测试 测试用例&#xff1a;为了特定的目的而设计的一组测试输入&#xff0c;执行条件和预期结果的文档 用例ID&#xff0c;用例标题&#xff0c;测试项目&#xff0c;用例级别&#xff0c;预置条件&#xff0c;输入数据&#xff0c;执行步骤&#xff0c;预期结果 软件开发…

【项目经理沟通之道】项目管理必会的思维分析工具 07

作项目管理&#xff0c;除多沟通同步外&#xff0c;关键核心点&#xff0c;要学会诱导相关人&#xff0c;参与进来&#xff0c;真正认为自己是项目一份子&#xff0c;才能心往一处想&#xff0c;劲往一处使&#xff0c;团结一心才能干大事。 人性永远都是只对自己有益事情感兴…

游戏工作室为什么要使用海外住宅IP防封?

当谈到游戏工作室时&#xff0c;它们通常以多开游戏账号来获取收益为主要目标。这种商业模式在游戏产业中已经成为一个独特而且颇具潜力的领域。然而&#xff0c;随之而来的是防封问题&#xff0c;特别是当游戏工作室试图通过多开账号来赚取更多收益时。因此&#xff0c;我们有…

短视频账号矩阵系统==技术源头开发

短视频账号矩阵系统技术源头开发 一、短视频矩阵功能构建&#xff1a; 1. 关键词批量比距生成&#xff08;区域词行业词产品词&#xff09; 2. 多平台多账号一站式运营管理 3. 视频内容批量复制生成 4. 视频内容批量多平台投放 5. 视频数据分析及粉丝画像分布统计 6. 智能…

mongodb 分片集群认证

增加认证 副本间认证外部使用认证 如果是开启状态,先关闭路由,再关闭配置服务,最后关闭分片数据复本集中的每个mongod&#xff0c;从次节点开始。直到副本集的所 有成员都离线&#xff0c;包括任何仲裁者。主节点必须是最后一个成员关闭以避免潜在的回滚.最好通过 db.shutdow…

Git学习笔记(四)远程仓库

根据前面几篇文章的介绍&#xff0c;在本地使用Git基本不成问题了&#xff0c;常用的基本命令和一些基本概念基本也介绍完毕了。这一张主要讲讲远程仓库的创建和使用。 概念 其实在前面第一篇文章中&#xff0c;我们就简单介绍过远程仓库&#xff0c;它其实就是一个托管在远程服…