数据库和缓存相关
SQL基础、存储引擎、Mysql、Oracle、SQLServer、数据库中间件Mycat
Wonder丶丶丶
加油,你要学的东西还很多!
展开
-
Oracle触发器使用简述
【代码】Oracle触发器使用简述。原创 2023-02-07 14:56:40 · 383 阅读 · 1 评论 -
Mybatis中 ${param}与#{param}的区别和应用场景
为了安全,能用#的地方就用#方式传参,这样可以有效的防止sql注入攻击1、#{变量名}可以进行预编译、类型匹配等操作,#{变量名}会转化为jdbc的类型例:select * from tablename where id = #{id};假设id的值为12,其中如果数据库字段id为字符型,那么#{id}表示的就是'12',如果id为整型,那么id就是12。MyBatis会将#{id...原创 2019-03-04 12:12:47 · 955 阅读 · 0 评论 -
mybatis直接取到Insert语句插入的自增长主键
将useGeneratedKeys和keyProperty两个属性添加到insert标签中,即可得到该插入记录的自增长主键<insert id="addOrder" useGeneratedKeys="true" keyProperty="oid" parameterType="com.ouyin.domain.NormalOrder"> INSERT INTO tb_orde...原创 2019-05-09 12:02:42 · 927 阅读 · 0 评论 -
mysql创建数据库时字符集和排序方式的选择
数据库需要适应各种语言和字符就需要支持不同的字符集(Character Set),每种字符集也有各自的排序规则(Collation)。在绝大部分情形中,使用何种字符集和排序规则决定于服务器,数据库和表的级别,一般SQL操作不必关心这些。字符集,用于定义字符在数据库中的编码的集合。 常见的字符集:utf-8、gbk 等。排序规则,用来定义字符在进行排序和比较的时候的一种规则。 常见的如下...原创 2019-05-31 14:40:54 · 3300 阅读 · 1 评论 -
mysql数据库的sql执行计划
1、什么是sql执行计划执行计划,就是mysql如何执行一条Sql语句,包括sql查询的顺序、是否使用索引、以及使用索引的信息等,一条SQL性能的好坏,可以通过查看执行计划很直观的看出来,执行计划提供了各种查询类型与级别,方便我们进行查看以及为作为性能分析的依据。2、sql的执行过程数据库本身的功能架构分为三个部分,分别是 应用层、逻辑层、物理层。 应用层:这一层是和客户端打交...原创 2019-05-09 21:22:54 · 1868 阅读 · 1 评论 -
mysq数字字段加上或减去一个值后更新
例子如下:UPDATE tb_shop_cartSET `count` = `count` + #{count}WHERE uid = #{uid}AND tid = #{tid}AND statu = 1原创 2019-05-20 19:56:42 · 3001 阅读 · 0 评论 -
解决redis报错:ERR Client sent AUTH, but no password
默认无密码登录,但是你输入了密码。1、不输入密码登录;2、在redis目录下redis.windows-service.conf文件找到requirepass,追加一行,输入requirepass 123456,即为登录密码,重启redis服务再登录即可。...原创 2019-05-31 16:36:49 · 1304 阅读 · 0 评论 -
Mybatis中常用动态sql语句用法
1、if判断<select id="getCategory" parameterType="EshopShopCategory" resultMap="EshopCategory" > SELECT * from CATEGORY t WHERE (1=1) <if test="shopCategoryId!=null"> AND t.c...原创 2019-04-03 10:00:33 · 615 阅读 · 0 评论 -
在Oracle存储过程使用execute immediate语句建表时权限不足的解决方案
首先在存储过程中无法直接编译ddl语句,所以采用在execute immediate语句中执行ddl语句的方式但是在存储过程中使用execute immediate执行ddl语句时,可能会报权限不足异常,如例原创 2021-10-19 13:35:30 · 3562 阅读 · 0 评论 -
Oracle中trunc函数
trunc截取函数处理数字,不进行四舍五入,直接截取。select trunc(123.458) from dual; --123select trunc(123.458,0) from dual; --123select trunc(123.458,1) from dual; --123.4select trunc(123.458,-1) from dual; --120select trunc(123.458,-4) from dual; --0select trunc(123.458,原创 2021-09-27 10:24:50 · 959 阅读 · 0 评论 -
Oracle备份表
手动备份create table [备份名] as select * from [表名];truncate table org_group;insert into org_group select * from [备份名] ;Oracle单表备份三种方案 - kakaisgood - 博客园定时自动备份原创 2021-09-27 10:05:52 · 10946 阅读 · 0 评论 -
SQL Server2012用户‘sa‘登录失败,错误:18456
之前还可以登录的,没有做任何操作就突然登录不了首先用windows身份验证方式登录进去右键服务器主目录项,检查设置如下,没有问题然后检查sa登录名,如下,依然没有问题然后检查TCP/IP协议已启动,依然没问题最后试了下修改sa登录名的密码果然是密码有问题,修改完了之后就可以登录了...原创 2020-09-08 20:30:59 · 1528 阅读 · 1 评论 -
Oracle权限、用户、角色
用户、角色、权限查看所有用户select * from all_users; 查看当前用户的所有角色select * from user_role_privs;查看某个角色的所有权限修改用户密码原创 2021-05-27 14:35:10 · 331 阅读 · 1 评论 -
Navicat、PL/SQL恢复删除的表结构和数据
今天删表时看错了,手一抖就把别的有用的表给删了1、Navicat选中删除的表和索引--闪回表2、PL/SQL---找到回收站记录select * from user_recyclebin order by droptime desc;---恢复表结构和数据flashback Table "BIN$nG1+X5wuSpCZ9kvjno5yug==$0" to before drop;...原创 2021-05-18 15:36:21 · 7170 阅读 · 0 评论 -
数据库死锁常见场景以及排查解决方案
死锁的概念死锁是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程。由于资源占用是互斥的,当某个进程提出申请资源后,使得有关进程在无外力协助下,永远分配不到必需的资源而无法继续运行,这就产生了一种特殊现象死锁。常见的死锁场景场景一:A线程update记录1,此时锁住了记录1;B线程update记录2,此时锁住记录2;然后A线程读取记录2,此时等待记录2的释放;然原创 2020-10-27 18:54:02 · 2498 阅读 · 0 评论 -
Spring框架系列之事务的使用以及事务传播机制
Spring事务有编程式事务管理和声明式事务管理两种方式。原创 2020-10-27 16:13:07 · 128 阅读 · 0 评论 -
事务的概念和基本理解
概念事务是构成单一逻辑工作单元的操作集合,访问并可能更新数据库中各种数据项的一个程序执行单元事务的基本特性(ACID)原子性,事务中的所有操作作为一个整体像原子一样不可分割,要么全部成功,要么全部失败。一致性,事务开始前和结束后,数据库的完整性约束没有被破坏 。拿转账来说,假设用户A和用户B两者的钱加起来一共是5000,那么不管A和B之间如何转账,转几次账,事务结束后两个用户的钱相加起来应该还得是5000,这就是事务的一致性。隔离性,同一时间,只允许一个事务请求同一数据,不同的事务之间彼原创 2020-10-27 14:45:08 · 936 阅读 · 0 评论 -
数据库事务的隔离级别和并发异常
众所周知,数据库事务具有隔离性,理论上来说事务之间的执行不应该相互产生影响,其对数据库的影响应该和它们串行执行时一样。然而完全的隔离性会导致系统并发性能很低,降低对资源的利用率,因而实际上对隔离性的要求会有所放宽,这也会一定程度造成对数据库一致性要求降低。原创 2020-10-25 19:41:06 · 750 阅读 · 0 评论 -
安装完MySQL之后登录不了,报错ERROR 1045 (28000): Access denied for user
今天安装完MySQL,启动了MySQL服务,然后使用Navicat连接,结果出现报错,报错信息如下:然后索性使用CMD本地登录,输入密码之后,出现以下:后面尝试了不输入密码,竟然登进去了那就是安装时设置root用户密码的环节出了问题,所以现在重新设置以下root用户的密码UPDATE `user` SET `authentication_string`=PASSWORD('123456') WHERE `User`='root';结果发现SQL语句报错了,仔细检查SQ.原创 2020-10-12 00:22:53 · 333 阅读 · 0 评论 -
MySQL8.0下载安装教程(MSI安装版和ZIP解压版)
1、下载MySQL安装包进入MySQL官网,拉到最下面的DOWNLOADS,选择MySQL Community Server进入下载页当前为ZIP解压版的,此处我们选择去下载Installer MSI安装版的注意如果是下载Linux版的在当前页选择系统类型即可,不要跳转到MSI下载页在MSI下载页选择离线安装版登录页跳过登录进入下载2、安装MySQL双击下载好的msi格式的安装文件进入MySQL Installer,选择只安装MySQL Server...原创 2020-10-11 20:13:14 · 2763 阅读 · 1 评论 -
MySQL安装过程中产品配置时启动服务失败
如下图此时进入系统服务页面启动MySQL服务,也无法启动可以看到MySQL80登录为网络服务,需要提高网络服务的权限,将网络服务添加到管理员组计算机-->管理-->本地用户和组-->组双击Administrators,然后添加点击高级立即查找-->选择NETWORK SERVICE-->确定看到有NETWORK SERVICE了,然后确定应用即可现在再启动MySQL80已经可以使用了...原创 2020-10-11 20:03:22 · 2891 阅读 · 9 评论 -
Mysql远程连接报错access denied for user **@**
1、进入cmd命令行C盘下 cd \Program Files\MySQL\MySQL Server 5.7\bin (mysql的安装目录)2、mysql -h localhost -u root -p3、输入密码进入mysql服务4、GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT...原创 2019-03-14 10:54:43 · 1028 阅读 · 0 评论 -
MySql、SQL Server、Oracle联表进行多字段更新
1、MySql写法2、SQL Server写法UPDATE PlateSET molding_time = NULL, send_status = NULLFROM Plate t1LEFT JOIN [dbo].[WorkOrder] t2 ON t1.work_order_id = t2.idWHERE t2.status = 1AND ( t1.send_stat...原创 2020-05-09 17:59:17 · 4409 阅读 · 1 评论 -
解决SQL Server忘记密码了
方案:采用Windows身份验证登录,然后更改密码步骤:1、Windows身份验证登录2、服务列表---安全性---登录名---sa3、双击---修改密码---确定4、使用用户sa和新密码登录,如果登录不了重启下SQL Server服务...原创 2020-04-10 13:46:42 · 6922 阅读 · 1 评论 -
SQL Server导出和导入大数据量SQL脚本
1、使用SQLServerManagement Studio导出SQL脚本2、使用命令行导入大数据量SQL脚本用SQLServerManagement Studio导入大数据量SQL脚本时,很容易出现了out of memory异常,可用命令行导入打开cmd执行命令:#-S服务器地址-U用户名-P密码 -d数据库名称-i脚本文件路径...原创 2020-01-15 18:39:56 · 3367 阅读 · 0 评论 -
解决mysql中int接收数据返回为null的报错
mybatis代码如下:<select id="countCart" resultType="int"> SELECT `count` FROM tb_shop_cart WHERE uid = #{uid} AND tid = #{tid} AND statu = 1</select>问题在于,有值时正常,当没有该记录时返回为n...原创 2019-05-09 20:19:42 · 2658 阅读 · 0 评论 -
Hibernate的各种数据库配置以及常用配置项说明
一、Hibernate常用数据库简单配置1、Mysql数据库配置spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL57Dialectspring.datasource.driver-class-name = com.mysql.jdbc.Driverspring.datasource.url = ...原创 2019-08-17 23:28:29 · 1118 阅读 · 0 评论 -
Hibernate数据库配置项中命名策略说明
一、Hibernate5之前命名策略采用naming-strategy配置项spring.jpa.hibernate.naming-strategy = org.hibernate.cfg.DefaultNamingStrategy1、配置值org.hibernate.cfg.DefaultNamingStrategyhibernate默认配置,采用直接映射的方式,不会做过多的处...原创 2019-08-17 22:52:41 · 11108 阅读 · 1 评论 -
Windows7安装SQLServer2012详细亲测教程
首先,要说一下安装SQLServer时踩的一个坑,SQLServer目前的最新版2017版是不支持Windows7操作系统安装的,所以不用浪费时间折腾了,要么win7系统安装2012版,要么用win10系统安装2017版,本文是win7安装2012版的亲测教程。一、下载SQLServer安装包1、进入MicroSoft官网的SQL Server 2012 Express 简装版下载页面...原创 2019-08-17 00:00:06 · 10146 阅读 · 4 评论 -
QueryDSL基本操作demo
1、装配实例化JPAQueryFactoryprivate final BaseDao dao;private final JPAQueryFactory factory;private final QUser qUser;private final QFile qFile;@Autowiredpublic UserServiceImpl(BaseDao dao) { this...原创 2019-07-16 10:08:52 · 4257 阅读 · 1 评论