首页 > 编程语言 >JavaWeb01-JDBC学习总结

JavaWeb01-JDBC学习总结

时间:2023-11-21 16:06:24浏览次数:32  
标签:总结 JDBC 数据库 SQL API MySQL JavaWeb01 连接池

为什么需要JDBC?

  • JDBC就是使用Java语言来操作关系型数据库的一套API。
  • 市场拥有众多的数据库:MySQL、Oracle、DB2等等。不可能每个数据库都重新开发Java代码来适配不同的数据库,那么Sun公司定义一套标准接口来统一操作数据库。

其中所谓的MySQL实现类就是MySQL驱动(驱动Jar包)这样就只需要使用JDBC一套API适用各种数据库

JDBC-API详解

  1. DriverManager:
  1. 注册驱动
    1. 获取数据库连接
    2. JavaWeb01-JDBC学习总结_MySQL


  1. Connection:
    1. 获取执行SQL对象
    2. JavaWeb01-JDBC学习总结_MySQL_02

    3. 管理事务
    4. JavaWeb01-JDBC学习总结_数据库_03

    5. 举个例子:
    6. JavaWeb01-JDBC学习总结_数据库_04

  2. Statement:
    1. 执行SQL语句
    2. JavaWeb01-JDBC学习总结_MySQL_05

  3. ResultSet:
    1. 封装了DQL查询语句的结果
    2. JavaWeb01-JDBC学习总结_SQL_06

    3. 举个例子:
    4. JavaWeb01-JDBC学习总结_数据库_07

  4. PreparedStatement:
    1. 预防SQL注入
    2. JavaWeb01-JDBC学习总结_数据库_08

    3. 示例:  
    4. JavaWeb01-JDBC学习总结_SQL_09

      1. 模拟登录逻辑:
      2. JavaWeb01-JDBC学习总结_数据库_10

      3. 模拟SQL注入:
      4. JavaWeb01-JDBC学习总结_SQL_11

      5. 拼接后SQL语句变成如下:
      6. JavaWeb01-JDBC学习总结_SQL_12

      7. 解决SQL注入问题(通过PreparedStatement):
      8. JavaWeb01-JDBC学习总结_数据库_13

      9. 无法再注入SQL:
      10. JavaWeb01-JDBC学习总结_SQL_14

      11. 原理就是PreparedStatement将参数中特殊符号进行了转义:
      12. JavaWeb01-JDBC学习总结_MySQL_15

        JavaWeb01-JDBC学习总结_SQL_16

数据库连接池-Druid(德鲁伊)

  1. 什么是数据库连接池
  2. JavaWeb01-JDBC学习总结_MySQL_17

  3. Druid数据库连接池框架的使用
  4. JavaWeb01-JDBC学习总结_SQL_18

    JavaWeb01-JDBC学习总结_SQL_19

    JavaWeb01-JDBC学习总结_SQL_20


标签:总结,JDBC,数据库,SQL,API,MySQL,JavaWeb01,连接池
From: https://blog.51cto.com/u_15477460/8504235

相关文章

  • c++总结
    const在不同位置时的不同意义指针类型前:声明一个指向常量的指针,程序中不能通过指针来改变它所指向的值,但指针本身的值可以改变,即指针可以指向其他数据;"*"号和指针名之间,声明一个指针常量(常指针),指针本身的值不可改变,即不能指向其他数据,但指向的数据的值可以改变两个地方都加,声明......
  • AcWing 算法基础课week 1 总结(万字长文)
    AcWing算法基础课week1总结总结点1:快速排序(分治思想)题1:从小到大排序主体思路:定义一个数x属于数组s,利用双指针,将数组分为大于等于x和小于等于x的两部分,然后递归处理。(具体步骤如下)1.如上图所示,我们定义一个数组s用来储存n个数据,然后定义两个指针ij,分别指向数组的左右两......
  • 每日总结-23.22.21
    <!doctypehtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1"><metahttp-equiv="X-UA-Compatible......
  • 开发中遇到的问题总结---java中list和Collection之间的转换
    问题描述:将map中的values转换为list错误做法:强制转换(会报错)List<String>originalContractCodeList=(List<String)kpmcKpidMap.values();正确做法:List<String>originalContractCodeList=newArrayList<>(kpmcKpidMap.values());......
  • 归并排序知识总结
    归并排序思维导图:知识点:如果原序列中两个数的值是相同的,它们在排完序后,它们的位置不发生变化,那么这个排序是稳定的。快速排序是不稳定的,归并排序是稳定的。快排变成稳定的=>使快排排序数组中的每个数都不同,将ai变成<ai,i>这个二元组,将ai的下标也放进来,使用双关键字排序。快速......
  • 每日总结
    今日收获写了软件设计作业,感觉发挥还不错欸~~和友友们一起弄了erp作业~~明天预计好好上课,好好写作业~~顺利通过每一节课;继续和友友们冲刺一下子~~......
  • Mybatis-Plus集成Sharding-JDBC与Flyway实现多租户分库分表
    背景公司产品部收到了一些重要客户的需求,他们希望能够依赖独立的数据库存储来支持他们的业务数据。与此同时,仍有许多中小客户,可以继续使用公共库以满足其需求。技术实现方面,此前持久层框架使用的Mybatis-plus,部分业务场景使用到了Sharding-JDBC用于分表,另外,我们的数据库版本控制工......
  • 每日总结
    今天启动hbase的时候发现Hmaster过一段时间会自动消失,导致hbase启动失败,经过上网查询,得知虚拟机的时间不同步防火墙没有关闭hdfs的接口不对hbase中的hbase-site.xml文件中的属性值(hbase.rootdir)主机端口不一致 最后经过排查发现,hbase的配置文件hbase-site.xml和hdfs-core......
  • Mybatis-Plus集成Sharding-JDBC与Flyway实现多租户分库分表
    背景公司产品部收到了一些重要客户的需求,他们希望能够依赖独立的数据库存储来支持他们的业务数据。与此同时,仍有许多中小客户,可以继续使用公共库以满足其需求。技术实现方面,此前持久层框架使用的Mybatis-plus,部分业务场景使用到了Sharding-JDBC用于分表,另外,我们的数据库版本控制......
  • 数据库复习总结(并发控制一)
    目录前言3种并发异常丢失修改(写写异常)不可重复读(包括幻读情况读写异常)脏读为处理并发异常出现的机制--加锁加锁规范--封锁协议一级封锁协议(解决修改丢失)举例二级封锁协议(解决修改丢失,脏读)举例三级封锁协议(解决修改丢失,脏读,不可重复读)举例加锁产生问题活锁死锁解决办法针对活锁针......