首页 > 其他分享 >24-06-19

24-06-19

时间:2024-06-23 10:09:25浏览次数:28  
标签:24 存储 PreparedStatement 06 19 数据库 引擎 SQL 连接

说下原生jdbc 操作数据库流程?

  1. Class.forName()加载数据库连接驱动
  2. DriverManager.getConnection()获取数据连接对象
  3. 根据SQL获取sql会话对象,有两种方式Statement,PreparedStatement
  4. 执行SQL处理结果集,执行SQL前如果有参数值就设置参数值setXXX()
  5. 关闭结果集,关闭会话,关闭连接

为什么要使用PreparedStatement?

  1. PreparedStatement接口继承Statement,PreparedStatement实例包含已编译的SQL语句,所以执行速度快于Statement对象
  2. 作为Statement的子类,PreparedStatement继承Statement的所有功能,三种方法execute,executeQuery和executeUpdate已被更改以使用之后不再需要参数
  3. 再JDBC应用中,在任何时候都不要使用Statement,原因
    • 代码的可读性和可维护性,Statement需要不断地拼接,而PreparedStatement不会
    • PreparedStatement尽最大可能提高性能DB有缓存机制,相同的预编译语句再次被调用不会再次需要编译
    • 最重要的一点是极大的提高安全性,Statement容易被SQL注入,而PreparedStatement传入的内容不会和sql语句发生任何匹配关系

关系数据库中连接池的机制是什么?

前提:为数据库连接建立一个缓冲池

  1. 从连接池获取或创建可用连接
  2. 使用完毕后,把连接返回给连接池
  3. 在系统关闭前,断开所有连接并释放连接占用的系统资源
  4. 能够处理无效连接,限制连接池中的连接总数不低于或者不超过某个限定值

重要参数概念

  • 最小连接数是连接池一直保持的数据连接。如果应用程序对数据库连接的使用量不大,将会有大量的数据库连接被浪费掉。
  • 最大连接是连接池能申请的最大连接数。如果连接请求超过此数,后面的请求将加入等待队列中,这会影响之后的数据库操作
  • 数据库连接一直保持一个不少于最小连接数的数量,当数量不够时,数据库会创建一些连接,知道一个最大连接数,之后连接数据库就会等待

GET 和 POST 的区别?

  1. GET请求的数据会附在URL之后,以?分割URL和传输数据,参数之间以&相连。POST把提交的数据则放置在HTTP包的包体中。
  2. GET方式提交的数据最多1024字节,因为GET通过URL提交数据,URL不存在参数上限问题,http协议规范也对URL没有进行限制。这个限制于特定的浏览器及服务器对它的限制,IE对URL的长度限制是2083字节(2K+35).对于其他浏览器,理论上没有长度限制。
  3. POST的安全性比GET的安全性高

说一下常用的 Linux 命令

  • 列出文件列表:ls [参数 -a -l]
  • 创建目录和移除目录:mkdir rmdir
  • 用于显示文件后几行内容: tail
  • 打包:tar -xvf
  • 打包并压缩:tar -zcvf
  • 查找字符串:grep
  • 显示当前所在目录:pwd
  • 创建空文件:touch
  • 编辑器:vim vi

Linux 中如何查看日志?

动态打印日志信息:tail -f 日志文件

SQL 之 sql 注入
 通过在web表单中输入(恶意)SQL语句得到一个存在安全漏洞的网站上的数据库,而不是按照设计者意图去执行SQL语句

 防止SQL注入的方式:

  • 预编译语句:如 select * FROM USER where username = ?,sql语句语义不会发生改变,sql语句中变量使用?表示,即使传递参数时为“admin or 'a' = 'a'”,也会把整体当成一个字符去查询
  • Mybatis框架中mapper方式中的#也能很大程度防止sql注入

Mysql 性能优化

  1. 当只需要一行时使用limit 1
     查询时如果已知得到一条数据,这种情况加上limit 1 会增加性能。因为MySQL数据库引擎在找到一条停止搜索,而不是继续查询下一条是否符合标准直到所有 记录查询完毕

  2. 选择正确的数据库引擎
     MySQL有两个引擎MyISAM和InnoDB。MyISAM适用一些大量查询的应用,但对大量写的应用不是很好。甚至只需要一个update一个字段整个表都会锁起来。。另外MyISAM对于select count(*)这类操作是很快的。
     InnoDB的趋势会是一个非常复杂的存储引擎,对于一些小的应用比MyISAM还慢,但支持“行锁”,所以在写操作比较多时,比较优秀,并且支持高级应用:事务等

  3. 使用not exists 代替not in
     not exists用到了连接能够发挥已经建立好的索引的作用,not in 不能使用索引。not in是最慢的方式同每条记录比较,在数据量比较大时不建议使用

  4. 对操作符的优化,尽量不采用不利于索引的操作符
     如in, not in,is null,is not null等某个字段总是拿来搜索,为其建立索引,语法:alter table 表名 add index(字段名);

Mysql 存储引擎有哪些?

  1. InnoDB存储引擎:是事务型数据库的首选引擎,支持事务安全表(ACID),支持行锁定和外键,是默认的引擎
  2. MyISAM存储引擎:基于ISAM存储引擎,并对其进行扩展。它是web,数据仓储和其他应用环境下最常用的存储引擎之一,拥有较高的插入,查询速度,但不支持事务
  3. MEMORY存储引擎:将表中的数据存储到内存中,未查询和引用其他表数据提供快速访问
  4. NDB存储引擎:一个集群存储引擎满泪水Oracle的RAC,但它是Share Nothing的架构,因此提供更高的高可用性和可扩展性。NDB特点是数据全部放在内存中,因此通过主键查询非常快
  5. Memory存储引擎:将表中的数据存放到内存中,如果数据库崩溃或重启,数据丢失,因此适合存储临时数据

标签:24,存储,PreparedStatement,06,19,数据库,引擎,SQL,连接
From: https://www.cnblogs.com/data101/p/18254210

相关文章

  • Ubuntu 24.04 LTS 开启 ssh 免密登录
    参考https://zhuanlan.zhihu.com/p/146976128https://www.myfreax.com/how-to-set-up-ssh-keys-on-ubuntu-20-04/https://www.cnblogs.com/deepinnet/p/13663534.htmlhttps://blog.csdn.net/counsellor/article/details/81182567环境环境版本说明UbuntuUbuntu......
  • 胡说八道(24.6.21)——认识通信(杂谈)
        昨天说了在无线电通信几个应用,虽然这些天说了一大推,但是这只是理论上的东西,没有实物是没用的,离深入了解它们还是相差甚远。我觉得人家对不同种通信的认知就非常好。人家写下来,咱们就跟了解了解,正所谓集思广益。继续看雷达的简单应用。        雷达的优点......
  • 胡说八道(24.6.17)——STM32以及通信杂谈
        之前的文章中咱们谈到了STM32的时钟,今天我们来联系实际,来看看内部时钟下和外部时钟下的两种不同时钟的电平翻转。本次终于有硬件了,是最基础的STM32F103C8T6。    首先是,内部时钟的配置操作。             系统的内部时钟是72MHz,由上图......
  • 胡说八道(24.6.18)——通信杂谈(科普知识)
        既聊完中国和西方的通信历史之后,咱们继续来看看与有线通信相对应的无线通信,至于有线通信线的类型这里就不多说,像电话线,光纤,电缆(用于有线电视信号传输、早期的计算机网络)等,这些都是有线通信的范围。今天,来看看无线通信。        有线传输通信解决了异地......
  • 【HDC 2024】华为云开发者联盟驱动应用创新,赋能开发者成长
    本文分享自华为云社区《【HDC2025】华为云开发者联盟驱动应用创新,赋能开发者成长》,作者:华为云社区精选。6月21日到23日,华为开发者大会(HDC2024)于东莞松山湖举行,这里有丰富多样的主题演讲、峰会、专题论坛和互动体验,数百场面向开发者的特色活动,汇聚璀璨星光、激发创新灵感……6......
  • CrossOver 24 for Mac(windows 虚拟机)
    CrossOverforMac是一款功能强大的虚拟机软件,允许在Mac系统上运行Windows应用程序而无需重新启动计算机。通过CrossOver,用户可以轻松地运行Windows软件和游戏,而无需购买Windows许可证或使用虚拟机。CrossOver通过直接在Mac系统上提供所需的Windows资源,实现了无缝的跨平台兼容......
  • Parallels Desktop 19 for Mac(PD19虚拟机)
    ParallelsDesktop19是一款功能强大的虚拟机软件,它可以在Mac电脑上运行Windows操作系统和其他各种操作系统。ParallelsDesktop19提供了一系列强大的工具和功能,以增强虚拟机的功能。例如,它支持剪切板共享、共享网络连接、虚拟机快照、自动备份等功能。ParallelsDesktop19......
  • 【单片机毕业设计选题24020】-全自动鱼缸的设计与应用
    系统功能:(1)检测并控制鱼缸水温,水温低于22℃后开启加热,高于28℃后关闭加热。(2)定时喂食,每天12点和0点喂食一次,步进电机开启后再关闭模拟喂食。(3)定时开启水循环,每隔一个小时开启水循环水泵一分钟。(4)OLED显示时间,水温,加热喂食和水循环的状态。(5)手机蓝牙显示系统状态及控制加热......
  • 【微服务】第24节:初识搜索引擎 ElasticSearch
    目录1.初识elasticsearch1.1.认识和安装1.1.1.安装elasticsearch1.1.2.安装Kibana1.2.倒排索引1.2.1.正向索引1.2.2.倒排索引1.2.3.正向和倒排1.3.基础概念1.3.1.文档和字段1.3.2.索引和映射1.3.3.mysql与elasticsearch1.4.IK分词器1.4.1.安装IK分词器1.4.2.使......
  • 2024最新任务悬赏源码活动营销三级分销返佣积分商城版
    内容目录一、详细介绍二、效果展示1.部分代码2.效果图展示三、学习资料下载一、详细介绍任务悬赏源码活动营销三级分销返佣积分商城版这个是带有VUE源码的搭建也是很简单可生成APP功能说明:分销功能:用户拉新用户做任务可以获取任务返佣,三级分销逻辑。用户拉新会......