MySQl Mybatis

 

一、MySQL

1.1 概述

 1.1.1 MySQL安装

 

1.1.2 数据模型

1.1.3 SQL简介

 

1.2 DDL

1.2.1 数据库操作

 

1.2.2 图形化工具

 

 

1.2.3 表结构操作

 (一)创建

(二)数据类型 

(1)数值类型

age tinyint unsigned——加上unsigned就是不能取负数,将取值范围取正数区间变大。

(2)字符串类型

char(10):最多只能存储10个字符,不足10个字符,占用10个字符空间(性能较高、浪费空间)

varchar(10): 最多只能存储10个字符,不足10个字符,按照实际长度存储(性能较低、节省空间)

 (3)日期类型

(三)查询
 (四)修改

(五)删除

 

1.3 DML

1.3.1 添加数据insert

1.3.2 修改数据update

1.3.3 删除数据delete

1.4 DQL

1.4.1 基本查询

 

 1.4.2 条件查询

 

 

1.4.3 聚合函数

1.4.4 分组查询

1.4.5 排序查询

 

1.4.6 分页查询

 

1.5 多表设计

1.5.1 一对多

 

 

1.5.2 一对一

1.5.3 多对多

1.6 多表查询

1.6.1 概述

 

1.6.2 内连接

1.6.3 外连接

1.7 子查询

1.7.1 标量子查询

 

1.7.2 列子查询

1.7.3 行子查询

1.7.4 表子查询

1.8 事务

1.8.1 介绍与操作

 

1.8.2 四大特性

1.9 索引

1.9.1 介绍

1.9.2 结构

1.9.3 操作语法

2 Mybatis

2.1 入门

2.1.1 介绍

2.1.2 快速入门程序

 

 

 

2.1.3 JDBC介绍

(一)JDBC操作数据库

package com.itheima;

import com.itheima.mapper.UserMapper;
import com.itheima.pojo.User;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

import java.sql.*;
import java.util.ArrayList;
import java.util.List;

@SpringBootTest //springboot整合单元测试的注解
class SpringbootMybatisQuickstartApplicationTests {

    @Autowired
    private UserMapper userMapper;

    @Test
    public void testListUser(){
        List<User> userList = userMapper.list();
        userList.stream().forEach(user -> {
            System.out.println(user);
        });
    }

    @Test
    public void testJdbc() throws Exception {
        //1. 注册驱动
        Class.forName("com.mysql.cj.jdbc.Driver");

        //2. 获取连接对象
        String url = "jdbc:mysql://localhost:3306/mybatis";
        String username = "root";
        String password = "1234";
        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();
    }
}

 输出:

 

 

2.1.4 数据库连接池

 

 

 

2.1.5 lombook

 

 

2.2 基础操作

2.2.1 环境准备

 

2.2.2 删除

(一)根据主键删除

 

若想获取删除了几条数据的返回值:

 

输出:0

(二)日志输出

 

 

2.2.3 新增

 

 

2.2.4 更新 

2.2.5 查询

(一)主键查询

 

解决方案一:给字段起别名,让别名与实体类属性一致

解决方案二:通过@Results,注释手动映射封装 

解决方案三:开启mybatis驼峰命令自动映射开关

 直接运行原始代码就可以

总结:

(二)条件查询

 

 

2.3 XML映射文件

 Mapper接口全限定名可以 选中接口名称-copy reference-粘贴到namespace

 

 

2.4 动态SQL 

2.4.1 if

 

 

 

 

 

 

2.4.2 foreach

 

 

2.4.3 sql include

 

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

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

相关文章

技术阅读周刊第十四期:Golang 作者 Rob Pike 在 GopherConAU 上的分享

技术阅读周刊&#xff0c;每周更新。 历史更新 20231215&#xff1a;第十期20231122&#xff1a;第十一期20231129&#xff1a;第十二期20240105&#xff1a;第十三期&#xff1a;一些提高生产力的终端命令 What We Got Right, What We Got Wrong URL: https://commandcenter.b…

pinyin-pro库使用方式

pinyin-pro 是一个专业的 JavaScript 中文转拼音的库&#xff0c;具备多音字识别准确、体积轻量、性能优异、功能丰富等特点。 pinyin-pro官网链接&#xff1a;介绍 | pinyin-pro 运行展示 pinyin-pro安装命令&#xff1a; # 选择一个你使用的包管理器进行安装即可# NPM $ n…

基于Java SSM框架实现企业车辆管理系统项目【项目源码】

基于java的SSM框架实现企业车辆管理系统演示 JSP技术 JSP技术本身是一种脚本语言&#xff0c;但它的功能是十分强大的&#xff0c;因为它可以使用所有的JAVA类。当它与JavaBeans 类进行结合时&#xff0c;它可以使显示逻辑和内容分开&#xff0c;这就极大的方便了运动员的需求…

为什么使用双token实现无感刷新用户认证?

单token机制 认证机制&#xff1a;对与单token的认证机制在我们项目中仅使用一个Access Token的访问令牌进行用户身份认证和授权的方案处理。 不足之处&#xff1a; 安全性较低&#xff08;因为只有一个token在客户端和服务器端之间进行传递&#xff0c;一旦Access Token被截…

对闭包的理解

概念&#xff1a; 一个函数对周围状态的引用捆绑在一起&#xff0c;闭包让开发者可以从内部函数访问外部 函数的作用域 简单理解&#xff1a;闭包 内层函数 外层函数的变量 一个函数对周围状态的引用捆绑在一起&#xff0c;闭包让开发者可以从内部函数访问外部 函数的作…

【5G Modem】5G modem架构介绍

博主未授权任何人或组织机构转载博主任何原创文章&#xff0c;感谢各位对原创的支持&#xff01; 博主链接 本人就职于国际知名终端厂商&#xff0c;负责modem芯片研发。 在5G早期负责终端数据业务层、核心网相关的开发工作&#xff0c;目前牵头6G算力网络技术标准研究。 博客…

openFeign 多模块调用失败问题

第一次做一个完整的SpringCloud微服务项目,踩了好多好多坑,都记录下来! openFeign 多模块调用失败 排错第一阶段 创建一个openfeign服务,并把它注册到nacos上去 然后A模块通过Feign调用B模块 但是我在A模块实现AdminArticleServiceFeignClient这个接口,报错: 后面我查找这个问…

phpinfo和php -m 加载的php.ini不一致

目的&#xff1a; 将phpinfo在web中展示的php.ini和在命令行中展示的php.ini加载路径设置一致。 原本的php.ini加载路劲是&#xff1a; /usr/local/lib/php.ini 解决思路&#xff1a; &#xff08;1&#xff09;which php 查看服务器加载的php的位置&#xff0c;这里原来是&a…

win10 安装配置 Rust 环境和简单使用

文章目录 安装 Rustup基本命令hello wrold使用 cargo 创建项目构建并运行项目发布 最近几年&#xff0c;Rust 因其卓越的内存安全性和并发性能备受关注。不仅连续七年获得 StackOverflow 最受开发者喜爱的语言榜榜首&#xff0c;也在越来越多知名公司内部使用&#xff0c;比如&…

通过Wireshark抓包分析谈谈DNS域名解析的那些事儿

原创/朱季谦 本文主要想通过动手实际分析一下是如何通过DNS服务器来解析域名获取对应IP地址的&#xff0c;毕竟&#xff0c;纸上得来终觉浅&#xff0c;绝知此事要躬行。 一、域名与IP地址 当在浏览器上敲下“www.baidu.com”时&#xff0c;一键回车&#xff0c;很快&#x…

分布式链路追踪专栏,Spring Cloud Sleuth:分布式链路追踪之通信模型设计

Spring Cloud Sleuth 赋予分布式跟踪的 Spring Boot 自动配置的一键解决方案。Spring Cloud Sleuth 是基于 Brave 的封装&#xff0c;也是很多公司采用开源加自研的最佳解决方案。 那么从作为架构师或者技术专家如何去借鉴优秀框架的设计理念和思想&#xff0c;本次 Chat 将开…

肯·汤普逊 :我心目中的神,好像真正无敌之上的大佬都对C++提出了批判!大佬们的思想像红太阳太耀眼,常人不能直视

肯尼斯蓝汤普逊&#xff08;英语&#xff1a;Kenneth Lane Thompson&#xff0c;1943年2月4日—&#xff09;&#xff0c;小名肯汤普逊&#xff08;英语&#xff1a;Ken Thompson&#xff09;&#xff0c;美国计算机科学学者和工程师。黑客文化圈子通常称他为“ken”[1]。在贝尔…

为什么很多公司选择不升级JDK版本,仍然使用JDK8?

在讨论为什么许多公司选择不升级JDK版本&#xff0c;而继续使用JDK 8时&#xff0c;我们需要从多个角度来分析这个问题。以下是根据您提供的背景信息进行的一些分析和真实案例。 本文已收录于&#xff0c;我的技术网站 ddkk.com&#xff0c;有大厂完整面经&#xff0c;工作技术…

test Symbolic Execution-03-Soot - A Java optimization framework

拓展阅读 开源 Auto generate mock data for java test.(便于 Java 测试自动生成对象信息) 开源 Junit performance rely on junit5 and jdk8.(java 性能测试框架。性能测试。压测。测试报告生成。) test fuzz-01-模糊测试&#xff08;Fuzz Testing&#xff09; Soot 重要…

【linux】awk的基本使用

awk是shell中一个强大的文本处理工具&#xff0c;被用于处理文本和数据 当你心中默念想要使用类似于 处理某一行&#xff0c;处理某一列 的文本 的功能时&#xff0c;就是awk登场的时候了 举个简单的例子是&#xff0c;当我们想知道自己的所有网卡的名字时&#xff0c;可以用i…

繁花的范总-UMLChina建模知识竞赛第5赛季第3轮

DDD领域驱动设计批评文集 做强化自测题获得“软件方法建模师”称号 《软件方法》各章合集 参考潘加宇在《软件方法》和UMLChina公众号文章中发表的内容作答。在本文下留言回答。 只要最先答对前3题&#xff0c;即可获得本轮优胜。 如果有第4题&#xff0c;第4题为附加题&am…

OpenHarmony—Linux之系统调用

Linux之系统调用 这里我们只讨论&#xff1a; 硬件&#xff1a; Arm64系统&#xff1a; Linux系统 (Kernel-5.15-rc1)高级语言&#xff1a; C &#xff08;glibc-2.34&#xff09;模式&#xff1a; 64位 &#xff08;即未定义CONFIG_COMPAT&#xff09; 2、什么是系统调用 …

主键(设置/删除方法,复合主键),唯一键,主键和唯一键的应用差异,自增长字段(如何实现,查看上次的值),外键(引入,外键约束)

目录 主键(primary key) 介绍 作用 设置主键 建表前 建表后 复合主键 介绍 示例 删除主键 唯一键(unique) 介绍 意义 示例 建表 主键 唯一键 插入数据示例 主键和唯一键的应用差异 主键 唯一键 索引 auto_increment 介绍 示例 自动插入 手动插入 …

电子签章系统,怎么做到大量文件自动电子签章?

在当今信息爆炸的时代&#xff0c;海量文件的签署管理成为各行业面临的挑战之一。电子签章系统的出现&#xff0c;为解决这一问题提供了有效途径。本文将探讨电子签章系统如何实现海量文件自动签章&#xff0c;提高工作效率并确保安全性。 钉钉、企微、飞书、OA、CRM、ERP等&a…

K8S API访问控制之RBAC利用

前言 K8S对于API的访问安全提供了访问控制&#xff0c;主要为4个阶段&#xff0c;本文为第二个阶段——鉴权的RBAC。RBAC是基于角色的访问控制&#xff0c;使用kubeadm安装集群1.6版本以上的都默认开启了RBAC。本文主要研究集群可能存在的利用点及相对应的利用手法。 API访问…