JavaWeb基础第一章(MySQL数据库与JDBC)

文章目录

  • 一、JavaWeb介绍
  • 二、数据库相关概念
  • 三、MySQL数据库
  • 四、JDBC简介
  • [五、JDBC-API 详解 (DriverManager)](#五、JDBC-API 详解 (DriverManager))
  • [六、JDBC-API 详解 (Connection)](#六、JDBC-API 详解 (Connection))
  • [七、JDBC-API 详解 (Statement)](#七、JDBC-API 详解 (Statement))
  • [八、JDBC-API 详解 (ResultSet)](#八、JDBC-API 详解 (ResultSet))
  • [九、JDBC-API 详解 (PreparedStatement)](#九、JDBC-API 详解 (PreparedStatement))
  • 十、数据库连接池

本篇博文是对Java Web及其与数据库交互的深入浅出的介绍,旨在为读者提供一站式指南。内容涵盖了Java Web的基础概念,包括数据库相关的基础知识、MySQL数据库的操作和管理,以及JDBC(Java数据库连接)的详细解析。博主通过示例和详尽的图片说明,逐步讲解了JDBC的快速入门方法,驱动管理、数据库连接对象、语句对象的使用,以及如何安全有效地使用预编译语句来防止SQL注入攻击。此外,文章还详细讨论了数据库连接池的概念,以及通过重用连接来提升性能和安全性的重要性。从基本概念到高级技巧,愿本文为Java后端开发和数据库管理的读者提供帮助。

一、JavaWeb介绍


二、数据库相关概念


三、MySQL数据库

MySQL相关的知识点可以看博主专栏:MySQL数据库:https://blog.csdn.net/du_xiaonan/

四、JDBC简介

1,概念:

Java数据库连接,用Java语言操作数据库,本质是官方(sun公司)定义的一套操作所有关系型数据库的规则,即接口。各个数据库厂商去实现这套接口,提供数据库驱动jar包,我们可以使用这套接口(JDBC)变成,真正执行的代码是驱动jar包中的实现类

2,快速入门:

c 复制代码
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
/**
 * JDBC快速入门
 */
public class JdbcDemo1 {
    public static void main(String[] args) throws Exception {

        //1. 导入驱动jar包
        //2.注册驱动
        Class.forName("com.mysql.jdbc.Driver");
        //3.获取数据库连接对象
        Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/db3", "root", "root");
        //4.定义sql语句
        String sql = "update account set balance = 2000 where id = 1";
        //5.获取执行sql的对象 Statement
        Statement stmt = conn.createStatement();
        //6.执行sql
        int count = stmt.executeUpdate(sql);
        //7.处理结果
        System.out.println(count);
        //8.释放资源
        stmt.close();
        conn.close();

    }
}

五、JDBC-API 详解 (DriverManager)

驱动管理类 作用:

1.注册驱动

2.获取数据库连接

c 复制代码
Class.forName("com.mysql.jdbc.Driver");

六、JDBC-API 详解 (Connection)

数据库连接对象 作用:

1.获取执行SQL的对象

2.管理事务

c 复制代码
普通执行SQL对象
Statement createStatement();
预编译SQL的执行SQL对象:防止SQL注入
PreparedStatement prepareStatement(sql);
执行存储过程的对象
CallableStatement prepareCall(sql);

七、JDBC-API 详解 (Statement)

c 复制代码
executeUpdate(sql);  //执行DML、DDL语句  返回int类型
//返回值:(1)DML语句影响的行数    (2)DDL语句执行后,执行成功也可能返回0
executeQuery(sql);  //执行DQL语句  返回ResultSet类型
//返回值:(1)ResultSet jie'guo'ji

八、JDBC-API 详解 (ResultSet)

c 复制代码
结果集对象:封装了DDL查询语句的结果
stmt.executeQuery(sql);   //执行DQL语句,返回ResultSet对象

使用步骤:

游标向下移动一行,并判断改行是否有数据:next()

获取数据:getXxx(参数)

c 复制代码
//循环判断游标是否是最后一行末尾
while(rs.next()){
	rs.getXxx(参数);
}

九、JDBC-API 详解 (PreparedStatement)

SQL注入:通过操作输入来修改事先定义好的SQL语句,用以达到执行代码对服务器进行攻击的方法。

原理:

好处:

预编译SQL,性能更高。

防止SQL注入,将敏感字符进行转义。

十、数据库连接池

数据库连接池简介:

数据库连接池是一个容器,负责分配,管理数据库连接(connection)。

它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个。

释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据库连接遗漏

好处:

资源重用

提升系统响应时间

避免数据库连接遗漏。

数据库连接池实现

相关推荐
白帽攻防录12 小时前
SRC 挖洞:Roundcube 预认证 SQL 注入深度复盘,CVE-2026-48842 preg_replace 转义绕过怎么打穿邮件系统
网络·数据库·sql·网络安全·sql注入
꯭自꯭闭꯭13 小时前
达梦SQL优化相关
linux·运维·数据库·sql
nhdh13 小时前
B+树揭秘:MySQL索引核心原理全解析
数据结构·b树·mysql
对空六课13 小时前
支持注意力分析的热力图工具有哪些?
前端·数据库·数据分析
南京码讯光电技术有限公司14 小时前
How to Design an Antenna System for an Industrial WiFi Module
数据库·人工智能
lusklusklusk15 小时前
Oracle数据库基础之2_体系结构
数据库·oracle
可乐ea15 小时前
从第一性原理构建 AI Agent:提示词、工具、技能与记忆全解剖
数据库·人工智能·工具调用·ai智能体·提示词工程·agent开发·智能体记忆
余槐i15 小时前
MySQL 深分页从 4 秒到 60 毫秒:延迟关联减少回表的实测与代价
mysql·性能优化·sql优化·执行计划·慢查询优化
东方护航数据恢复(深圳)15 小时前
医疗案例:HIS/PACS 数据库页损坏修复,医院不停诊完成恢复【东方护航数据恢复深圳店】
数据库·数据恢复·医疗·二次开盘
lusklusklusk16 小时前
Oracle数据库基础之11_Duplicate和Dataguard和RAC
数据库·oracle