数据库
一路奔跑1314
人生,就想一场马拉松,只有一路奔跑,才能赢得比赛
展开
-
mybatis的模糊查询like报sql注入问题
mybatis模块查询sql注入问题原创 2022-07-19 16:19:41 · 2268 阅读 · 0 评论 -
like模糊查询输入%或者_查询全部记录的解决办法
背景:近期做的项目中有用到模糊查询,测试人员测试时发现,当前台查询条件文本框输入的是一个%或者_时,却查询到了全部记录。但是该查询条件在数据库中存储的字段值都不包括%或者_,显然这是一个bug。分析:原来%或者_在sql中有特殊的意义%(百分号):相当于任意多个字符;_(下划线):相当于任意的单个字符;解决办法:1、后台获取前提传入的查询条件框的内容,对%、_进行替换2、sql语句指定一个不常用的转义字符。后台代码:// qryCondition是前段的查询条.原创 2021-04-12 17:35:10 · 4908 阅读 · 0 评论 -
oracle 字段截取后分组及分组后求记录条数
工作中遇到一次优化sql,需要要用到分组,特记录下。一、字段先截取后分组1、业务场景 现在表tabA有如下字段,f1,f2,f3,f4。f1:主键f2:公司名称f3:销售金额f4:日期时间类型。但是f4的数据是这样的:2021-01-01 12:23:23 ,2021-01-01 13:13:13 ,2021-02-01 11:11:11 ,2021-02-01 14:14:15;现在计算下,某公司每天的销售总额。2、解决办法 select b...原创 2021-01-26 14:21:30 · 1414 阅读 · 0 评论 -
关于oracle数据库查询出的日期带毫秒的解决办法
近期开发遇到一个oracle方面日期查询的细节问题。在这里记录下。 问题描述:从oracle数据库查询一张表来获取记录里的日期字段,从数据库客户端查看日期格式为=2019-11-25 00:00:00,由于我在java代码中对应的接受改日期的字段startDate是string类型,然后利用该日期字段查询第二张表的记录,查询第二张表的sql部分是这么写的date = to_dat...原创 2019-11-25 10:59:44 · 3553 阅读 · 0 评论 -
SQL 语句中 多表与 where 多条件 顺序与执行效率
文章出处:https://blog.csdn.net/bzqgo/article/details/51004074 FROM多表顺序与效率 ORACLE的解析器按照从右到左的顺序处理FROM子句中的表名,因此FROM子句中写在最后的表(基础表 driving table)将被最先处理. 在FROM子句中包含多个表的情况下,你必须选择记录条数最少的表作为基础表.当ORAC...转载 2019-02-01 14:29:41 · 7137 阅读 · 0 评论 -
oracle 用户总是 频繁的被锁定 的解决办法
文章出处:https://blog.csdn.net/bzuld/article/details/34059549频繁的被锁定是因为密码过期,解决办法是:1.查看用户的proifle是哪个,一般是defaultSELECT username,PROFILE FROM dba_users;2.查看对应的概要文件(如default)的密码有效期设置SELECT * FROM dba_pr...转载 2019-02-15 09:43:51 · 5133 阅读 · 0 评论 -
oracle数据库 for update of和for update区别
对比区别: select * from TTable1 for update 锁定表的所有行,只能读不能写 2 select * from TTable1 where pkid = 1 for update 只锁定pkid=1的行 3 select * from Table1 a join Table2 b on a.pkid=b.pkid for update 锁定两个表的所有记...转载 2019-02-21 16:14:18 · 1505 阅读 · 0 评论 -
oracle数据库事务和锁
数据库事务概括1. 说明 一组SQL,一个逻辑工作单位,执行时整体修改或者整体回退。 2.事务相关概念 1)事务的提交和回滚:COMMIT/ROLLBACK 2)事务的开始和结束 开始事务:连接到数据库,执行DML、DCL、DDL语句 结束事务: 1. 执行DDL(例如CREATE TABLE),DCL(例如GRANT),系统自动执行COMMIT语...转载 2019-02-20 10:16:55 · 491 阅读 · 0 评论 -
oracle数据库事务和锁之间的关系
事务1. 说明 一组SQL,一个逻辑工作单位,执行时整体修改或者整体回退。2.事务相关概念 1)事务的提交和回滚:COMMIT/ROLLBACK 2)事务的开始和结束 开始事务:连接到数据库,执行DML、DCL、DDL语句 结束事务: 1. 执行DDL(例如CREATE TABLE),DCL(例如GRANT),系统自动执行COMMIT语句...转载 2019-02-20 10:18:27 · 1321 阅读 · 0 评论 -
Oracle 数据库中 同义词
一、Oracle数据只有一个实例(简单理解就是Oracle 只能建立一个数据库,不像MySQL,它下面可以创建N个库),那么Oracle是根据用户灵活去管理的;这点读起来、理解 起来也不那么难,但是除非自己亲自实现一把才理解深入点,刚接触数据库可能不是很理解这些;二、Oracle中可以建立多个用户,那么这些用户刚建立是得授权的,不让没有权限做任何事情,(举个栗子:用户 ‘AA’ 是授权...转载 2019-02-26 15:01:13 · 2733 阅读 · 0 评论 -
数据库的那些乱七八糟烦人的锁(数据库锁机制有这一篇就够了)
锁机制是数据库一个比较重要的机制,在处理事务的并发性方面起着至关重要的作用,我也看过好多关于锁机制的文章blog,什么悲观锁、乐观锁?什么共享锁、排他锁?还有什么行级锁、表级锁?另外还有读锁、写锁?oh,my god!怎么这么多锁?今天终于静下心来好好研究梳理一番这些烦人的锁。 这篇文章我想弄明白三个个问题: 一是把上面这些锁都是什么,...原创 2019-02-21 10:21:05 · 5357 阅读 · 2 评论 -
看懂oracle执行计划
文章出处:http://www.cnblogs.com/Dreamer-1/p/6076440.html一:什么是Oracle执行计划?执行计划是一条查询语句在Oracle中的执行过程或访问路径的描述 二:怎样查看Oracle执行计划?因为我一直用的PLSQL远程连接的公司数据库,所以这里以PLSQL为例:①:配置执行计划需要显示的项:工具 —> 首选项...转载 2019-01-31 16:07:31 · 328 阅读 · 0 评论 -
实际工作场景中踩过redis的一个坑:不查询redis,而查询后端数据库问题
今天,在工作中遇到项目在查询码表字典转换时,不走redis而是查询后台数据库问题。做一个简单记录,目的是防止以后出现类似问题,同时该码表存在缓存中采用的数据类型也是值得我学习的。一、简单的背景介绍 该项目以前是一个整体项目,后来因业务需要,把整个项目拆分为多个子工程,这就造成一些类的包路径改变了(这个是问题的根源),项目拆分后,发现在一些涉及到码表转换的业务,都是没有...原创 2018-12-18 18:21:53 · 2769 阅读 · 0 评论 -
oracle数据库中求某条记录的所在的行号
select p.*,p.rn from (select id, row_number() over (order by apply_date desc) rn from t_company_apply where company_no='37020000000003001' ) p where p.id='ae2e829ecffd4715a5c163f829c2e原创 2017-09-19 19:10:28 · 2856 阅读 · 0 评论 -
msyql修改密码
MySQL修改root密码的多种方法在 Navicat for MySQL 下面直接执行 SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpass'); 就可以 方法1: 用SET PASSWORD命令 mysql -u root mysql> SET PASSWORD FOR 'root'@'localhost' = PAS...转载 2018-06-09 14:35:03 · 178 阅读 · 0 评论 -
MongoDB+spring配置开发
本例子是利用MongoTemplate实现存储的1、mongo.xml配置文件,主要是配置mongo一些连接的信息<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2...原创 2018-10-31 11:32:30 · 3289 阅读 · 0 评论 -
Mysql8.0官方免安装版相关配置
1、mysql8.0下载链接:链接: https://pan.baidu.com/s/1pdjx6VeUBIKGCoYasYy03g 提取码: rcwh 2、下载后,将解压出来的文件放到你想放到的磁盘处(不想遇到管理员权限问题的童鞋那就尽量不要放到C盘)3、在解压MySQL的根目录文件夹下找到my.ini或my-default.ini,如果没有.ini结尾的文件,就新建一个my.in...原创 2018-11-03 13:34:48 · 203 阅读 · 0 评论 -
Oracle数据库建表前,先判断是否表存在,存在不建表,不存在则建表
------创建TABNAME ----------DECLARE TOTAL INT := 0;BEGIN SELECT COUNT(1) INTO TOTAL FROM USER_TABLES A WHERE A.TABLE_NAME = 'TABNAME '; IF TOTAL > 0 THEN EXECUTE IMMEDIATE 'DRO...原创 2018-11-19 13:58:04 · 12302 阅读 · 3 评论 -
JedisCommands接口详解
文章出处:https://blog.csdn.net/hu961691590/article/details/78549270import java.util.List;import java.util.Map;import java.util.Set;/** * Common interface for sharded and non-sharded Jedis */public...转载 2018-11-28 11:23:17 · 1127 阅读 · 0 评论 -
Redis 各类型常用方法与 运用场景
文章出处:https://blog.csdn.net/qq_29631809/article/details/72630741转载 2018-11-28 15:01:26 · 122 阅读 · 0 评论 -
redis中KEYS、SMEMBERS、SCAN 、SSCAN 的区别
今天在看项目中大神写的框架中关于redis存储相关代码时,发现了再获取set数据类型的全部元素时,采用的是sscan函数,而不是采用的smembers函数,这两个到底有什么区别呢?先看这两个命令:keys:用于获取当前数据库的模式匹配的所有keysmembers:获取set集合中的所有元素而scan又包含多个类似命令SCAN 增量迭代当前数据库中的数据库键。 ...原创 2018-12-27 11:41:57 · 5289 阅读 · 0 评论 -
redis的CLUSTER 、SINGLETON、 SHAREED及哨兵模式详解
redis的部署分为三种第一种是SINGLETON模式,单机模式部署。即只有一台redis,所有数据都放这个redis中。一旦这个redis挂了,数据也就over了第二种是SHAREED模式,共享模式部署。即有多台redis,所有数据放在多台redis中,每个redis保存一部分数据,每个redis数据都不一样,这样某个redis挂了,只有部分数据over了第三种是CLUSTER模式,...原创 2018-12-27 12:18:56 · 799 阅读 · 1 评论 -
redis的Hash类型底层存储结构
redis的哈希对象的底层存储可以使用ziplist(压缩列表)和hashtable。当hash对象可以同时满足一下两个条件时,哈希对象使用ziplist编码。哈希对象保存的所有键值对的键和值的字符串长度都小于64字节 哈希对象保存的键值对数量小于512个使用ziplist编码方式的哈希对象不能实现O(1)复杂度的基本操作,而是通过遍历来查找元素,时间复杂度是O(N^2)使用hasht...原创 2018-12-17 17:04:29 · 1812 阅读 · 0 评论 -
oracle数据库中求某行的上一条记录和下一条记录
利用oracle提供的lead、lag 函数来查询已有记录的上一条、下一条记录。求id=ae2e829ecffd4715a5c163f829c2e0f5的上一条记录和下一条记录上一条记录的sql如下:select * from t_company_apply where id=(select c.p from (select id,lead(id,1,原创 2017-09-19 19:25:17 · 11600 阅读 · 1 评论