sql数据库

mybatis执行一条sql的流程

元气小坏坏 提交于 2020-04-08 11:48:54
一次insert操作过程 以保存一条记录到表中这个简单的操作为例,就按这个例子来跟踪mybatis是如何执行sql语句的,要保存一个user记录到表中: sqlSession.insert("x.y.insertUser", user); 首先当然是要看看 SqlSession#insert 方法,到 DefaultSqlSession 这个实现类中查找具体的实现,下面两个代码片段是insert方法实现中的调用链: @Override public int insert(String statement, Object parameter) { return update(statement, parameter); } @Override public int update(String statement, Object parameter) { try { dirty = true; MappedStatement ms = configuration.getMappedStatement(statement); return executor.update(ms, wrapCollection(parameter)); } catch (Exception e) { throw ExceptionFactory.wrapException("Error updating

python:数据库连接操作入门

拈花ヽ惹草 提交于 2020-04-08 06:42:21
模块 1 import pymssql,pyodbc 模块说明   pymssql和pyodbc模块都是常用的用于SQL Server、MySQL等数据库的连接及操作的模块,当然一些其他的模块也可以进行相应的操作,类似adodbapi、mssql、mxODBC等,我们在实际用的时候选择其中一个模块就好,对于每一个模块都有相应的支持版本和支持平台,大家可以自行查阅文档 https://wiki.python.org/moin/SQL%20Server 模块安装 1 pip install pymssql   关于pip的使用我在我的另一篇博客里提到了https://www.cnblogs.com/jyroy/p/9410593.html 模块使用   我们利用python来进行数据库的操作,那么第一步就应该是连接数据库,这里我们用pymssql模块中的connect方法连连接,在pyodbc模块中同样也是利用connect方法。 使用 connect 创建连接对象 connect.cursor 创建游标对象,SQL语句的执行基本都在游标上进行 cursor.executeXXX 方法执行SQL语句, cursor.fetchXXX 获取查询结果等 调用 close 方法关闭游标 cursor 和数据库连接    pymssql模块连接 ''' pymssql模块连接SQL

MySQL打造扛得住的数据库架构.md-目前只有监控篇

怎甘沉沦 提交于 2020-04-08 04:53:26
[TOC] MySQL性能管理及架构设计笔记 数据库监控 要监控的内容 对数据库的可用性进行监控: 不是仅仅监控数据库进程是否存在,要通过网络连接到数据库并确定是可用的 对数据库性能进行监控: QPS TPS, 并发线程数量, innnoDB阻塞和死锁 对主从复制进行监控: 主从链路状态, 主从延迟, 主从数据一致性 对服务器资源监控: 磁盘: 且并不意味着磁盘空间大,MySQL能用的就大,因为可能分区分配的不够大. CPU使用率 内存使用情况 swap分区使用情况 网络IO使用情况 数据库可用性监控 确认数据库是否可用通过网络正常连接 要注意,如果我们在MySQL本机使用SQL来连接MySQL,这并不意味着外部也能通过tcp/ip协议来访问MySQL,因为外部面临的环境更为复杂. 比如tcp/ip被占满之类的, 所以我们必须通过远程服务器来实际的连接请求: 使用mysqladmin: # 如果数据库存活,该命令会返回mysqld is alive ~ ⌚ 23:30:42 $ mysqladmin -u root -p -h localhost ping Enter password: mysqld is alive 使用Telnet(一般作为手动使用) # telnet连接成功后,都懂得,只要不是提示连接失败,同时提供给我们可以交互式命令行,那就是成功了 ~ ⌚ 23:42

Java连接SQL数据库

落爺英雄遲暮 提交于 2020-04-08 01:24:42
Java连接SQL数据库 方法一:安装Microsoft SQL Server 2000 Driver for JDBC后,将lib目录下的msbase.jar , mssqlserver.jar, msutil.jar 复制到JDK的主目录下,具体是jdk1.4jrelibext . 完成后编写一下代码 原理:使用jdbc-odbc桥进行连接 try{ Connection con; Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); //注册驱动 con = DriverManager.getConnection("jdbc:microsoft:sqlserver://你的IP:1433;databaseName=数据库名","sa","你的密码");// Statement sta = con.createStatement(); //执行sql语句的容器 String str = "select * from 表名"; ResultSet re = sta.executeQuery(str); //执行完的结果赋给 ResultSet while(re.next()){ //通过游标对数据进行访问 String 字段名= re.getString("字段名"); System.out.println(

牛客网数据库SQL实战剖析(1-10)

邮差的信 提交于 2020-04-07 22:36:52
1. 查找最晚入职员工的所有信息 CREATE TABLE `employees` ( `emp_no` int(11) NOT NULL, `birth_date` date NOT NULL, `first_name` varchar(14) NOT NULL, `last_name` varchar(16) NOT NULL, `gender` char(1) NOT NULL, `hire_date` date NOT NULL, PRIMARY KEY (`emp_no`)); 解题思路:根据入职时间倒序排序 order by ... DESC ,然后再取一条记录,就是最晚入职的员工。 select * from employees order by hire_date DESC limit 1; 这样做有一个问题, hire_date 是 date 类型,很有可能多条记录中是同一个时间入职的,所以说时间类型还是用时间戳比较精切。 针对这道题目可以使用 MAX() 函数,然后用一个子查询。 select * from employees where hire_date = (select MAX(hire_date) FROM employees); MAX() 先查询出最晚入职的时间,然后再查询出在最晚时间入职的所有员工。 2.

ORACLE外部表总结

有些话、适合烂在心里 提交于 2020-04-07 20:13:12
ORACLE外部表总结 https://www.cnblogs.com/kerrycode/p/3894260.html 外部表介绍 ORACLE外部表用来存取数据库以外的文本文件(Text File)或ORACLE专属格式文件。因此,建立外部表时不会产生段、区、数据块等存储结构,只有与表相关的定义放在数据字典中。外部表,顾名思义,存储在数据库外面的表。当存取时才能从ORACLE专属格式文件中取得数据,外部表仅供查询,不能对外部表的内容进行修改(INSERT、UPDATE、DELETE操作)。不能对外部表建立索引。因为创建索引就意味着要存在对应的索引记录。而外部表其实在没有存储在数据库中。故在外部是无法建立索引的。如果硬要建立的话,则系统会提示“操作在外部组织表上不受支持”的错误提示。 Notice: 外部表是ORACLE 9i后引入的。 外部表特征 (1) 位于文件系统之中(一定要在数据库服务器中,而不是其它网络路径),按一定格式分割, 例如@#$等,文本文件或者其他类型的文件可以作为外部表。   (2) 对外部表的访问可以通过SQL语句来完成,而不需要先将外部表中的数据装载进数据库中。   (3) 外部数据表都是只读的,因此在外部表不能够执行DML操作,也不能创建索引。   (4) ANALYZE语句不支持采集外部表的统计数据,应该使用DMBS

还原SQL Server 数据库

老子叫甜甜 提交于 2020-04-07 19:36:04
第一步,双击打开安装的Sql Server 2014 Management Studio。弹出“连接到服务器”窗口,点击连接即可。 第二步,将事先备份好的数据库文件复制后黏贴到Sql Server 2014 数据库存放目录 backup 下,并改文件后缀名为 .bak 以便还原。如我的目录是“D:\Microsoft SQL Server 2014\MSSQL12.MSSQLSERVER\MSSQL\Backup”。 第三步,在对象资源管理器中 右击数据库 ,选择“ 还原数据库 ”,弹出“还原数据库”窗口。 第四步,在“还原数据库”窗口中,” 源 “下面点击” 设备 “,然后点击小方形符号” ... “来选择备份设备。如图: 第五步,在”选择备份设备“窗口中,点击” 添加 “按钮,来选择数据库文件。如图所示: 第六步,在弹出的”定位备份文件“窗口中,选择刚才你加入的” .bak “目标文件即可,点击 确定 。如图: 第七步,接着再点击 确定 ,Sql Server 会自动帮我们做好一切还原前的准备。回到了“还原数据库”窗口。接着,点击“ 选项 ”,还原选项勾选“ 覆盖现有数据库 ”,以防之前的数据库影响。如图: 最后,点击 确定 ,Sql Server便自动为我们还原数据库文件了。等待几秒(如果数据库文件较大,可能要等待更长时间),弹出“ 成功还原了数据库 ”,点击“ 确定 ”

CTF-攻防世界-supersqli(sql注入)

て烟熏妆下的殇ゞ 提交于 2020-04-07 17:33:45
题目 解题过程 试了一下单引号,发现存在注入,数据库类型是MariaDB 第一反应是工具跑一下>_<,跑出数据库名称:supersqli 继续跑表名,没跑出来,尝试了下执行sql,也木有任何返回。。。 看了一下当前用户是root,但不是dba,难道是木有权限。。。 再回到页面试了下,发现有过滤关键字,这应该就是工具没跑出表来的原因。 把绕过的方法挨个试了一遍,发现可以堆叠注入,查出两个表名来,但是不能select数据出来(因为关键字过滤了。。) 查询表中的字段,flag在1919810931114514这张表中 查询表中数据的方法我没想到,百度了一下,有两种:1.页面默认查的是words表,将1919810931114514的表名和words交换;2.利用mysql的预处理。 预处理语句输入如下: 1';use supersqli;set @sql=concat('s','elect * from `1919810931114514`');PREPARE pre FROM @sql;EXECUTE pre;--+ 这里很巧妙的用concat绕过了关键字的检查(这个思路厉害了,好好学习~^_^~) 知识点总结 1. MySQL表名为纯数字时(表名和保留字冲突时也是加反引号),要加反引号:show columns from `1919810931114514` 2. MySQL 官方将

oracle字符集查看修改

和自甴很熟 提交于 2020-04-07 13:21:06
一、什么是 Oracle 字符集 Oracle字符集是一个字节数据的解释的符号集合,有大小之分,有相互的包容关系。ORACLE 支持国家语言的体系结构允许你使用本地化语言来存储,处理,检索数据。它使数据库工具,错误消息,排序次序,日期,时间,货币,数字,和日历自动适应本地化语言和平台。 影响Oracle数据库字符集最重要的参数是NLS_LANG参数。 它的格式如下: NLS_LANG = language_territory.charset 它有三个组成部分(语言、地域和字符集),每个成分控制了NLS子集的特性。 其中: Language: 指定服务器消息的语言, 影响提示信息是中文还是英文 Territory: 指定服务器的日期和数字格式, Charset: 指定字符集。 如:AMERICAN _ AMERICA. ZHS16GBK 从NLS_LANG的组成我们可以看出,真正影响数据库字符集的其实是第三部分。 所以两个数据库之间的字符集只要第三部分一样就可以相互导入导出数据,前面影响的只是提示信息是中文还是英文。 二.字符集的相关知识: 2.1 字符集 实质就是按照一定的字符编码方案,对一组特定的符号,分别赋予不同数值编码的集合。Oracle数据库最早支持的编码方案是US7ASCII。 Oracle的字符集命名遵循以下命名规则: <Language><bit size>

asp常用代码集锦

只愿长相守 提交于 2020-04-07 02:27:57
显示页面加载时间 重复域中的斑马线 显示字符串前20个字符并在结尾处添加“……” 如果动态图片为空,使用默认图片代替 如果数据为空,使用默认提示信息代替 ●显示页面加载时间 页面顶部添加下面的代码: <% Dim strStartTime Dim strEndTime strStartTime = Timer '开始时间 %> 页面(同一页)的末尾添加: <% ' 加载完毕的时间 strEndTime = Timer Response.Write ("页面加载时间: ") Response.Write FormatNumber(strEndTime - strStartTime, 4) Response.Write (" 秒.") %> ●重复域中的斑马线 <% '此模块放置在重复域之外 Dim RecordCounter Recordcounter = 0 %> <tr class = <% '将重复域中第一个 <tr>标签的CLASS属性代码用本模块替换 '本模块基于CSS来改变单元格背景色,你也可以直接设置背景色来实现斑马线 RecordCounter = Recordcounter + 1 If RecordCounter Mod 2 = 1 Then Response.Write "altRow1" Else Response.write "altRow2" End If