首页
统计
关于
Search
1
Sealos3.0离线部署K8s集群
1,073 阅读
2
类的加载
737 阅读
3
Spring Cloud OAuth2.0
725 阅读
4
SpringBoot自动装配原理
689 阅读
5
集合不安全问题
582 阅读
笔记
Java
多线程
注解和反射
JVM
JUC
设计模式
Mybatis
Spring
SpringMVC
SpringBoot
MyBatis-Plus
Elastic Search
微服务
Dubbo
Zookeeper
SpringCloud
Nacos
Sentinel
数据库
MySQL
Oracle
PostgreSQL
Redis
MongoDB
工作流
Activiti7
Camunda
消息队列
RabbitMQ
前端
HTML5
CSS
CSS3
JavaScript
jQuery
Vue2
Vue3
Linux
容器
Docker
Kubernetes
Python
登录
Search
标签搜索
Java
CSS
mysql
RabbitMQ
JavaScript
Redis
JVM
Mybatis-Plus
Camunda
多线程
CSS3
Python
Spring Cloud
注解和反射
Activiti
工作流
SpringBoot
Mybatis
Spring
html5
蘇阿細
累计撰写
388
篇文章
累计收到
4
条评论
首页
栏目
笔记
Java
多线程
注解和反射
JVM
JUC
设计模式
Mybatis
Spring
SpringMVC
SpringBoot
MyBatis-Plus
Elastic Search
微服务
Dubbo
Zookeeper
SpringCloud
Nacos
Sentinel
数据库
MySQL
Oracle
PostgreSQL
Redis
MongoDB
工作流
Activiti7
Camunda
消息队列
RabbitMQ
前端
HTML5
CSS
CSS3
JavaScript
jQuery
Vue2
Vue3
Linux
容器
Docker
Kubernetes
Python
页面
统计
关于
搜索到
19
篇与
的结果
2021-10-23
Linux环境下安装MySQL
# 创建安装包文件夹,并下载mysql5.7.35安装包 mkdir -p /usr/local/database/ wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm # 安装 yum -y localinstall mysql57-community-release-el7-11.noarch.rpm yum -y install mysql-community-server # 设置开机自启 systemctl enable mysql # 将mysql数据目录从系统盘移动至数据盘 mkdir -p /data/mysql systemctl stop mysql cp -r /var/lib/mysql/* /data/mysql/ # 给新的mysql数据目录授权(必须执行) chown -R mysql:mysql mysql/ # 启动 systemctl start mysqld
2021年10月23日
227 阅读
0 评论
0 点赞
2020-12-14
动态SQL
动态SQL==根据不同的条件生成不同的SQL语句==ifchoose (when, otherwise)trim (where, set)foreach搭建环境CREATE TABLE `blog`( `id` VARCHAR(50) NOT NULL COMMENT 'id', `title` VARCHAR(100) NOT NULL COMMENT '标题', `author` VARCHAR(50) NOT NULL COMMENT '作者', `create_time` datetime NOT NULL COMMENT '创建时间', `views` int(11) NOT NULL COMMENT '浏览量' )ENGINE=INNODB DEFAULT CHARSET=utf8;1、导包2、编写配置文件3、创建实体类package com.sw.pojo; import lombok.Data; import java.io.Serializable; import java.util.Date; /** * @Author suaxi * @Date 2020/12/13 16:20 */ @Data public class blog implements Serializable { private String id; private String title; private String author; private Date createTime; private int views; } 4、编写实体类对应的Mapper接口和Mapper.xml文件IF<select id="findBlogIf" parameterType="map" resultType="Blog"> select * from blog where 1=1 <if test="title != null"> and title = #{title} </if> <if test="author != null"> and author = #{author} </if> </select>chose(when,otherwise)<select id="findBlogChoose" parameterType="map" resultType="Blog"> select * from blog <where> <choose> <when test="title != null"> title = #{title} </when> <when test="author != null"> and author = #{author} </when> <otherwise> and views = #{views} </otherwise> </choose> </where> </select>trim(where,set) <select id="findBlogIf" parameterType="map" resultType="Blog"> select * from blog <where> <if test="title != null"> title = #{title} </if> <if test="author != null"> and author = #{author} </if> </where> </select><update id="UpdateBlog" parameterType="map"> update blog <set> <if test="title != null"> title = #{title}, </if> <if test="author != null"> author = #{author} </if> </set> where id = #{id} </update>SQL片段将部分SQl抽取出来,方便复用1、使用SQL标签抽取公共部分<sql id="if-title-author"> <if test="title != null"> title = #{title} </if> <if test="author != null"> and author = #{author} </if> </sql>2、在需要使用的地方用include标签引用、<select id="findBlogIf" parameterType="map" resultType="Blog"> select * from blog <where> <include refid="if-title-author"></include> </where> </select>注:最好基于单表查询,不要存在where标签Foreach<!--select * from bolg where 1=1 and (id=1 or id=2 or id=3)--> <select id="findBlogForeach" parameterType="map" resultType="Blog"> select * from blog <where> <foreach collection="ids" item="id" open="and (" close=")" separator="or"> id = #{id} </foreach> </where> </select>==动态SQL就是在拼接SQL语句,先确保SQL的正确性,再按照SQL格式去排列组合==先在MySQL中写出完整的sql,再去修改成动态sql实现通用
2020年12月14日
99 阅读
0 评论
0 点赞
2020-11-05
数据库设计规范
软件开发中,关于数据库的设计分析需求:分析业务和需要处理的数据库的需求概要设计:设计关系图 ,即E-R图设计数据库的步骤:(个人博客)收集信息,分析需求用户表(用户登录退出,个人信息,写博客,创建分类)分类表(文章分类,谁创建的)文章表(文章的信息)评论表友链表自定义表(系统信息,某个关键字,或者一些主字段) key:value*说说表(发表心情 id content create_time)标识实体(把需求具体到每个字段)标识实体之间的关系写博客:user-->blog创建分类:user-->category关注:user-->user友链:links评论:user-user-blog
2020年11月05日
103 阅读
0 评论
0 点赞
2020-11-04
MySQL备份
为什么要备份:保证重要的数据不丢失数据转移MySQL数据备份的方式:直接拷贝物理文件在可视化工具中手动导出使用命令行导出 mysqldump# 导出 # mysqldump -h 主机 -u用户名 -p密码 数据库 表名 >物理磁盘位置/文件名 mysqldump -hlocalhost -uroot -p123456 school student >D:/a.sql # mysqldump -h 主机 -u用户名 -p密码 数据库 表名1 表名2 表名3 >物理磁盘位置/文件名 mysqldump -hlocalhost -uroot -p123456 school student student01 student02 >D:/b.sql # mysqldump -h 主机 -u用户名 -p密码 数据库 >物理磁盘位置/文件名 mysqldump -hlocalhost -uroot -p123456 school >D:/c.sql #导入 #登录的情况下,切换到指定数据库 # source 备份文件 source D:/a.sql
2020年11月04日
144 阅读
0 评论
0 点赞
2020-11-04
MySQL权限管理
1、用户管理SQL命令操作用户表:mysql.user本质:对这张表进行增删改查-- 创建用户 CREATE USER 用户名 IDENTIFIED BY '密码' CREATE USER ceshi IDENTIFIED BY '123456'; -- 修改密码(修改当前用户密码) SET PASSWORD = PASSWORD('1234567'); -- 修改指定用户密码 SET PASSWORD FOR ceshi = PASSWORD('1234567'); -- 重命名 RENAME USER 原用户名 TO 新用户名; RENAME USER ceshi TO ceshi01; -- 用户授权 GRANT ALL PRIVILEGES 全部的权限 库.表 -- ALL PRIVILEGES 此处的授权与root用户有区别(除了给别人授权,其他的都能干) GRANT ALL PRIVILEGES ON *.* TO ceshi; -- 查询权限 SHOW GRANTS FOR ceshi; -- 查看指定用户的权限 SHOW GRANTS FOR root@localhost; -- root用户的权限:GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION -- 撤销权限 REVOKE 哪些权限,在哪个库撤销,给谁撤销 REVOKE ALL PRIVILEGES ON *.* FROM ceshi; -- 删除用户 DROP USER ceshi;
2020年11月04日
94 阅读
0 评论
0 点赞
2020-11-04
数据表的类型
-- 关于数据库引擎 /*INNODB 默认使用 MYISAM 早年使用 */ MYISAMINNODB事务支持NoYes数据行锁定NoYes外键约束NoYes全文索引YesNo表空间的大小较小较大,约为2倍常规使用操作:MYISAM 节约空间,速度较快INNODN 安全性高,事务的处理,多表多用户操作
2020年11月04日
76 阅读
0 评论
0 点赞
2020-11-02
数据库事务ACID
事务:要么都成功,要么都失败1、A给B转账 A 1000 -->200 B 2002、B收到A的钱 A 800 --> B 400将sql放在一个批次中去执行事务ACID原则:原子性,一致性,隔离性,持久性原子性(Atomicity)要么都成功,要么都失败一致性(Consistency)事务前后的数据完整性要保持一致(A、B一共有1000块钱,不论A和B怎么转账,最终两人钱的总和是1000块)隔离性(Isolation)多个用户并发访问数据库时,数据库为每一个用户开启的事务,不能被其他事务的操作数据所干扰,多个并发事务之间要相互隔离持久性(Durability)事务一旦提交则不可逆,事务提交的结果被持久化存储到数据库中隔离所导致的一些问题脏读:指一个事务读取了另一个事务未提交的数据。不可重读:在一个事务内读取表中的某一行数据,多次读取的结果不同。(这个不一定是错误,需具体场景具体分析)虚读(幻读):指在一个事务内读取到了别的事务插入的数据,导致前后读取不一致。-- 事务 -- mysql是默认开启事务自动提交的 SET autocommit = 0; /*关闭*/ SET autocommit = 1; /*开启*/ -- 手动处理事务 -- 1、关闭自动提交 SET autocommit = 0; -- 2、事务开启 START TRANSACTION; -- 标记一个事务的开始,从这之后的sql都在同一个事务内 INSERT xx INSERT xxx -- 提交:持久化(成功) COMMIT -- 回滚:返回之前的状态(失败) ROLLBACK -- 3、事务结束 SET autocommit = 1; -- 开启自动提交 SAVEPOINT 保存点名称 -- 设置一个事务的保存点 ROLLBACK TO SAVEPOINT -- 回滚到保存点 RELEASE SAVEPOINT 保存点名称 -- 撤销保存点模拟转账实例-- 转账 CREATE DATABASE shop CHARACTER SET utf8 COLLATE utf8_general_ci; use shop; CREATE TABLE `account`( id int(11) NOT NULL AUTO_INCREMENT, name VARCHAR(50) NOT NULL, money DECIMAL(9,2) NOT NULL, PRIMARY KEY (id) )ENGINE=INNODB DEFAULT CHARSET=utf8; INSERT INTO account(name,money) VALUES('a',1000.00),('b',500.00); -- 模拟转账:事务 SET autocommit = 0; -- 关闭自动提交 START TRANSACTION -- 开启事务(一组事务) UPDATE account SET money=money-500 where name='a'; -- a减500 UPDATE account SET money=money+500 where name='b'; -- b加500 COMMIT; -- 提交事务,提交之后数据被持久化存储 ROLLBACK; -- 回滚 SET autocommit = 1; -- 恢复默认提交
2020年11月02日
185 阅读
0 评论
0 点赞
2020-11-02
MD5加密算法
MD5:主要增强算法复杂度和不可逆性。-- 测试MD5 CREATE TABLE `testmd5`( id INT(11) NOT NULL, name VARCHAR(20) NOT NULL, pwd VARCHAR(255) NOT NULL )ENGINE=INNODB DEFAULT CHARSET=utf8; -- 明文密码 INSERT INTO testmd5 VALUES(1,'孙笑川','12345'),(2,'刘波','12345'),(3,'Giao哥','12345'); -- 加密 UPDATE testmd5 SET pwd=MD5(pwd) WHERE id=1; -- 插入的时候加密 INSERT INTO testmd5 VALUES(4,'孙笑川',MD5('12345')); -- 如何校验:将用户传递进来的密码,进行加密,然后比对加密后的值 SELECT * FROM testmd5 WHERE name='孙笑川' AND pwd=MD5('12345');
2020年11月02日
71 阅读
0 评论
0 点赞
1
2
3