
mysql
项目开发过程中涉及的MySQL知识
ahyo
这个作者很懒,什么都没留下…
展开
-
MySQL存储函数详解
MySQL 存储函数原创 2022-07-31 23:53:37 · 465 阅读 · 0 评论 -
模糊查询like语句该怎么写?
第1种:在Java代码中添加sql通配符。第2种:在sql语句中拼接通配符,会引起sql注入原创 2022-06-17 23:56:07 · 382 阅读 · 0 评论 -
MyBatis 缓存部分
首先:1、什么是缓存 [ Cache ]?存在内存中的临时数据。(实例化引用 实质也是地址)将用户经常查询的数据放在缓存(内存)中,用户去查询数据就不用从磁盘上(关系型数据库数据文件)查询,从缓存中查询,从而提高查询效率,解决了高并发系统的性能问题。2、为什么使用缓存?减少和数据库的交互次数,减少系统开销,提高系统效率。3、什么样的数据能使用缓存?经常查询并且不经常改变的数据。反之,经常在改变的数据 就不能使用缓存 意义不大,比如增删改MyBatis 中的缓存:1、MyBatis 内置了原创 2022-05-28 19:50:58 · 111 阅读 · 0 评论 -
MyBatis Foreach标签
关于之前的trim标签 其作用在于可以自定义一个标签用于覆盖除去特定的字符 就如where标签 可以对and|or进行除去。以下是sql片段 主要是利用<sql>标签:将之前的动态sql改变 示例: <sql id="choose-when"> <choose> <when test="title!=null"> title=#{title} </原创 2022-05-27 17:39:52 · 2593 阅读 · 0 评论 -
动态sql的标签语言
if语句的使用 使得在mapper.xml文件里的sql语句得到极大的复用 因此这一过程也是动态的。<select id="queryBlog" parameterType="map" resultType="com.pojo.Blog"> select * from blog where 1=1 <if test="title!=null"> and title=#{title} </if> <if test="原创 2022-05-26 16:51:00 · 117 阅读 · 0 评论 -
动态sql环境搭建
对之前的maven依赖 junit的说明:@Test注解在任何一个方法的之上 可以在当前类进行代码测试。并不是需要一个主方法才可以。Mysql——(之后必须要具备的)需要知道的几点内容:1、MySQL引擎2、InnoDB 底层原理3、索引4、索引优化1、建示例表,实体类的属性名尽量和数据库表里的字段名一致。2、创建子模块 maven项目3、IDutils工具类public class IDUtil { public static String genId(){ r原创 2022-05-22 18:36:30 · 254 阅读 · 0 评论 -
MyBatis一对多处理
和之前的搭建环境一致, 但是需要实体类的更改:结果嵌套:<mapper namespace="com.kuang.mapper.TeacherMapper"> <!-- 1. 集合的话,使用collection! JavaType和ofType都是用来指定对象类型的 JavaType是用来指定pojo中属性的类型 ofType指定的是映射到list集合原创 2022-05-20 22:28:47 · 417 阅读 · 0 评论 -
Mybatis多对一的处理——按照结果嵌套处理
建立在之前多对一的按照查询结果嵌套的处理配置有相关的.xml文件及其其他的基础上,添加按照结果嵌套处理方法。 <select id="getStudents2" resultMap="getteacher"> select s.id sid ,s.name sname , t.name tname from student s,teacher t where s.tid=t.id </select> <result原创 2022-05-19 17:12:21 · 258 阅读 · 0 评论 -
Mybatis多对一处理 环境搭建及实现
准备:建立两张表 呈现一对多(多对一)的关系,比如学生和老师 经理和员工 几张表直接存在主外键 依靠外键实现复杂的结果查询 。之后创建对象——pojo对象的属性设置按照数据库表里的属性设置,分别注解@Data实现setter getter方法创建对应的接口 ***mapper以及对应的 mapper.xml.xml文件可放置于resource目录下。以下是按查询嵌套处理的一对多关系:1、给StudentMapper接口增加方法//获取所有学生及对应老师的信息public List<S原创 2022-05-18 14:09:43 · 115 阅读 · 0 评论 -
Lombok中间件的使用
Lombok的争议一直都有,可用也可不用。Lombok的简介Lombok是一款Java开发插件,使得Java开发者可以通过其定义的一些注解来消除业务工程中和繁琐的代码尤其对于简单的Java模型对象(POJ0)。在开发环境中使用Lombok插件后,Java开发人员可以节省出重复构建,诸如hashCode和equals这样的方法以及各种业务对象模型的accessor和ToString等方法的大量时间。对于这些方法,它能够在编译源代码期间自动帮我们生成这些方法,并没有如反射那样降低程序的性能。为了能够偷懒原创 2022-05-17 17:36:26 · 162 阅读 · 0 评论 -
Mybatis执行流程以及设置自动提交事务
Mybatis详细执行流程:更改SQL session的获取://获取SqlSession连接 public static SqlSession getSession(){ return getSession(true); //事务自动提交 } public static SqlSession getSession(boolean flag){ return sqlSessionFactory.openSession(flag); }为的是省去 sessi原创 2022-05-16 16:49:06 · 1785 阅读 · 0 评论 -
以MyBatis 开始着手的mysql学习
在则之前的需要掌握的基本:结构化查询语句分类数据库操作创建数据库 : create database [if not exists] 数据库名;删除数据库 : drop database [if exists] 数据库名;查看数据库 : show databases;使用数据库 : use 数据库名;数据字段属性UnSigned无符号的声明该数据列不允许负数 .ZEROFILL0填充的不足位数的用0来填充 , 如int(3),5则为005Auto_InCrement自动增长的原创 2022-05-06 23:30:06 · 106 阅读 · 0 评论 -
MyBatis log日志工厂
日志是记录系统运行过程中各种重要信息的文件,在系统运行过程中由各进程创建并记录。日志的作用是记录系统的运行过程及异常信息,为快速定位系统运行中出现的问题及开发过程中的程序调试问题提供详细信息。主要的设置是在 settings 标签中。其设置名为——logImpl(注意 既然是框架就得按照设定好的命名及格式)指定 MyBatis 所用日志的具体实现,未指定时将自动查找没有默认值其有效值人为设置,大致为:1、SLF4J2、LOG4J3、LOG4J24、JDK_LOGGING JDK自带的日原创 2022-04-29 22:15:30 · 2587 阅读 · 0 评论 -
MyBatis ResultMap结果集映射
未涉及到一对多 多对多的查询,利用简单的一对一关系来解决 属性名和表里的字段名不一致的问题,这会导致查询结果为null。resultMap 元素是 MyBatis 中最重要最强大的元素。使用 ResultMap:<!--结果集映射--> <resultMap id="HeroMapper" type="heros"> <!--column数据库中的字段 property实体类中的属性--> <result column="dam原创 2022-04-27 16:40:43 · 608 阅读 · 0 评论 -
MyBatis 映射器说明及其生命周期 作用域
映射器说明:告诉mybatis 去哪找sql语句。方式一:<!-- 使用相对于类路径的资源引用 --><mappers> <mapper resource="org/mybatis/builder/AuthorMapper.xml"/></mappers>采用 resource 是最有效且很常用的方法,也是主选方式。方式二:<!-- 使用映射器接口实现类的完全限定类名 --><mappers> <map原创 2022-04-26 09:32:41 · 306 阅读 · 0 评论 -
MyBatis 类型别名优化
目前所了解的核心配置文件的配置,大部分是在对项目做优化。以下是类型别名优化:类型别名(typeAliases)会出现两种设置类型,一是对其 一个包下——比如pojo 类的数量不是很多 可以通过指定那个类 利用alias设置别名,这样在mapper.xml文件中就不用写全其——包名.类名。意在降低冗余的全限定类名书写。当用包名时:<typeAliases> <package name="pojo"/> </typeAliases>会自动去原创 2022-04-24 12:37:22 · 1073 阅读 · 0 评论 -
MyBatis 模糊查询
写在之前:查看控制台的错误,最好实在后面一段阅读 报错条目,内容会更为仔细。模糊查询:相比之前的传递一个对象的思路来进行插入一个新对象。 void insertheros (heros h );相应的mapper.xml中: <insert id="insertheros" parameterType="pojo.heros"> insert into hero(id,name,hp,damage) values(#{id},#{name},#{hp},#{dama原创 2022-04-21 17:26:10 · 611 阅读 · 0 评论 -
索引的优缺点
索引有其明显的优势,也有其不可避免的缺点。优点索引的优点如下:通过创建唯一索引可以保证数据库表中每一行数据的唯一性。可以给所有的 MySQL 列类型设置索引。可以大大加快数据的查询速度,这是使用索引最主要的原因。在实现数据的参考完整性方面可以加速表与表之间的连接。在使用分组和排序子句进行数据查询时也可以显著减少查询中分组和排序的时间缺点增加索引也有许多不利的方面,主要如下:创建和维护索引组要耗费时间,并且随着数据量的增加所耗费的时间也会增加。索引需要占磁盘空间,除了数据表占数据空间以外原创 2022-02-10 17:01:28 · 9489 阅读 · 2 评论 -
MySQL索引(Index)是什么?为什么要使用索引?
索引是一种特殊的数据库结构,由数据表中的一列或多列组合而成,可以用来快速查询数据表中有某一特定值的记录。本节将详细讲解索引的含义、作用和优缺点。通过索引,查询数据时不用读完记录的所有信息,而只是查询索引列。否则,数据库系统将读取每条记录的所有信息进行匹配。可以把索引比作新华字典的音序表。例如,要查“库”字,如果不使用音序,就需要从字典的 400 页中逐页来找。但是,如果提取拼音出来,构成音序表,就只需要从 10 多页的音序表中直接查找。这样就可以大大节省时间。因此,使用索引可以很大程度上提高数据库的查原创 2022-02-08 15:30:03 · 631 阅读 · 0 评论 -
MySQL删除错误日志
在 MySQL 中,可以使用 mysqladmin 命令来开启新的错误日志,以保证 MySQL 服务器上的硬盘空间。mysqladmin 命令的语法如下:mysqladmin -uroot -p flush-logs执行该命令后,MySQL 服务器首先会自动创建一个新的错误日志,然后将旧的错误日志更名为 filename.err-old。MySQL 服务器发生异常时,管理员可以在错误日志中找到发生异常的时间、原因,然后根据这些信息来解决异常。对于很久之前的错误日志,查看的可能性不大,可以直接将这些错误原创 2022-02-07 20:53:34 · 1706 阅读 · 0 评论 -
MySQL执行事务的语法和流程
MySQL 提供了多种存储引擎来支持事务。支持事务的存储引擎有 InnoDB 和 BDB,其中,InnoDB 存储引擎事务主要通过 UNDO 日志和 REDO 日志实现,MyISAM 存储引擎不支持事务。拓展:任何一种数据库,都会拥有各种各样的日志,用来记录数据库的运行情况、日常操作、错误信息等,MySQL 也不例外。例如,当用户 root 登录到 MySQL 服务器,就会在日志文件里记录该用户的登录时间、执行操作等。为了维护 MySQL 服务器,经常需要在 MySQL 数据库中进行日志操作:UNDO原创 2022-02-06 10:27:56 · 156 阅读 · 0 评论 -
MySQL恢复数据库(mysql命令)
当数据丢失或意外损坏时,可以通过恢复已经备份的数据来尽量减少数据的丢失和破坏造成的损失。本节主要介绍如何对备份的数据进行恢复操作。在《MySQL mysqldump备份数据库》一节中介绍了如何使用 mysqldump 命令将数据库中的数据备份成一个文本文件,且备份文件中通常包含 CREATE 语句和 INSERT 语句。在 MySQL 中,可以使用 mysql 命令来恢复备份的数据。mysql 命令可以执行备份文件中的 CREATE 语句和 INSERT 语句,也就是说,mysql 命令可以通过 CRE原创 2022-02-05 16:46:23 · 6984 阅读 · 0 评论 -
MySQL查看错误日志
错误日志中记录着开启和关闭 MySQL 服务的时间,以及服务运行过程中出现哪些异常等信息。如果 MySQL 服务出现异常,可以到错误日志中查找原因。在 MySQL 中,通过 SHOW 命令可以查看错误日志文件所在的目录及文件名信息。mysql> SHOW VARIABLES LIKE ‘log_error’;错误日志以文本文件的形式存储,直接使用普通文本工具就可以查看。这里通过记事本打开,从上面可以知道错误日志的文件名。该文件在默认的数据路径“C:\ProgramData\MySQL\MySQL原创 2022-02-03 19:38:36 · 1836 阅读 · 0 评论 -
MySQL错误日志(Error Log)
启动和设置错误日志在 MySQL 数据库中,默认开启错误日志功能。一般情况下,错误日志存储在 MySQL 数据库的数据文件夹下,通常名称为 hostname.err。其中,hostname 表示 MySQL 服务器的主机名。在 MySQL 配置文件中,错误日志所记录的信息可以通过 log-error 和 log-warnings 来定义,其中,log-err 定义是否启用错误日志功能和错误日志的存储位置,log-warnings 定义是否将警告信息也记录到错误日志中。将 log_error 选项加入到原创 2022-02-02 13:27:03 · 729 阅读 · 0 评论 -
MySQL日志及分类
日志是数据库的重要组成部分,主要用来记录数据库的运行情况、日常操作和错误信息。在 MySQL 中,日志可以分为二进制日志、错误日志、通用查询日志和慢查询日志。对于 MySQL 的管理工作而言,这些日志文件是不可缺少的。分析这些日志,可以帮助我们了解 MySQL 数据库的运行情况、日常操作、错误信息和哪些地方需要进行优化。下面简单介绍 MySQL 中 4 种日志文件的作用。二进制日志:该日志文件会以二进制的形式记录数据库的各种操作,但不记录查询语句。错误日志:该日志文件会记录 MySQL 服务器的启动原创 2022-02-01 18:37:57 · 202 阅读 · 0 评论 -
MySQL 中 4 种日志文件的作用
MySQL 中 4 种日志文件的作用。二进制日志:该日志文件会以二进制的形式记录数据库的各种操作,但不记录查询语句。错误日志:该日志文件会记录 MySQL 服务器的启动、关闭和运行错误等信息。通用查询日志:该日志记录 MySQL 服务器的启动和关闭信息、客户端的连接信息、更新、查询数据记录的 SQL 语句等。慢查询日志:记录执行事件超过指定时间的操作,通过工具分析慢查询日志可以定位 MySQL 服务器性能瓶颈所在。为了维护 MySQL 数据库,经常需要在 MySQL 中进行日志操作,包含日志文件的原创 2022-01-31 11:58:19 · 2051 阅读 · 0 评论 -
mysql 数据库备份类型
使用备份恢复数据,以将损失降低到最小程度,因此备份是必须的。备份可以分为以下几个类型:根据备份的方法(是否需要数据库离线)可以将备份分为:热备(Hot Backup)冷备(Cold Backup)温备(Warm Backup)热备份可以在数据库运行中直接备份,对正在运行的数据库操作没有任何的影响,数据库的读写操作可以正常执行。这种方式在 MySQL 官方手册中称为 Online Backup(在线备份)。冷备份必须在数据库停止的情况下进行备份,数据库的读写操作不能执行。这种备份最为简单,一般只需原创 2022-01-30 19:29:17 · 560 阅读 · 0 评论 -
MySQL日志
任何一种数据库,都会拥有各种各样的日志,用来记录数据库的运行情况、日常操作和错误等信息,可以帮助我们诊断数据库出现的各种问题。MySQL 也不例外,它有不同类型的日志文件,各自存储了不同类型的日志。分析这些日志文件,除了可以了解 MySQL 数据库的运行情况,还可以为 MySQL 的管理和优化提供必要的信息。日志管理是维护数据库的重要步骤,所以经常需要在 MySQL 中进行日志启动、查看、停止和删除等操作。这些操作是数据库管理中最基本、最重要的操作。本章将介绍 MySQL 中各种日志的作用和使用。.原创 2022-01-28 19:35:41 · 897 阅读 · 0 评论 -
MySQL触发器到底是什么?
MySQL 的触发器和存储过程一样,都是嵌入到 MySQL 中的一段程序,是 MySQL 中管理数据的有力工具。不同的是执行存储过程要使用 CALL 语句来调用,而触发器的执行不需要使用 CALL 语句来调用,也不需要手工启动,而是通过对数据表的相关操作来触发、激活从而实现执行。在 MySQL 中,只有执行 INSERT、UPDATE 和 DELETE 操作时才能激活触发器,其它 SQL 语句则不会激活触发器触发器的优缺点:触发器的优点如下:1、触发器的执行是自动的,当对触发器相关表的数据做出相应的原创 2022-01-21 23:04:58 · 708 阅读 · 0 评论 -
数据库备份的原因
任何数据库都需要备份,备份数据是维护数据库必不可少的操作。也就是——备份就是为了防止原数据丢失,保证数据的安全。当数据库因为某些原因造成部分或者全部数据丢失后,备份文件可以帮我们找回丢失的数据。因此备份显得尤为重要。以下是列举的数据库数据丢失的应用场景:一、数据丢失应用场景:人为操作失误造成某些数据被误操作软件 BUG 造成部分数据或全部数据丢失硬件故障造成数据库部分数据或全部数据丢失安全漏洞被入侵数据恶意破坏二、非数据丢失应用场景:特殊应用场景下基于时间点的数据恢复开发测试环境数据库搭原创 2022-01-12 23:45:10 · 696 阅读 · 0 评论 -
MySQL中的游标的定义及使用
在 MySQL 中,存储过程或函数中的查询有时会返回多条记录,而使用简单的 SELECT 语句,没有办法得到第一行、下一行或前十行的数据,这时可以使用游标来逐条读取查询结果集中的记录。由于在 MySQL 中并没有一种描述表中单一记录的表达形式,除非使用 WHERE 子句来限制只有一条记录被选中。因此有时我们必须借助于游标来进行单条记录的数据处理。一般通过游标定位到结果集的某一行进行数据修改。游标实质就是标识,理解为数组下标,指到哪为那。但相较于其他DBMS MySQL的游标只能用于存储过程和函数一、原创 2022-01-10 21:09:48 · 1885 阅读 · 0 评论 -
MySQL存储引擎分类及如何选择
数据库存储引擎是数据库底层软件组件,数据库管理系统使用数据引擎进行创建、查询、更新和删除数据操作。等同说,存储引擎就是指表的类型。数据库的存储引擎决定了表在计算机中的存储方式。不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能,使用不同的存储引擎还可以获得特定的功能。许多数据库管理系统支持多种不同的存储引擎,MySQL的核心就是存储引擎。MySQL不用在整个服务器中使用同一种存储引擎,根据要求不同可以每一个表使用不同的存储引擎,且引擎有处理事务安全的也有非安全的。可用sql——show engi原创 2022-01-08 20:14:46 · 506 阅读 · 0 评论