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


本篇博文是对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,快速入门:

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.获取数据库连接
在这里插入图片描述

Class.forName("com.mysql.jdbc.Driver");

在这里插入图片描述

六、JDBC-API 详解 (Connection)

数据库连接对象 作用:

1.获取执行SQL的对象
2.管理事务
在这里插入图片描述

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

七、JDBC-API 详解 (Statement)

在这里插入图片描述


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

八、JDBC-API 详解 (ResultSet)

在这里插入图片描述

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

使用步骤:

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

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

九、JDBC-API 详解 (PreparedStatement)

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

原理:
在这里插入图片描述
好处:

预编译SQL,性能更高。
防止SQL注入,将敏感字符进行转义。

十、数据库连接池

数据库连接池简介:
数据库连接池是一个容器,负责分配,管理数据库连接(connection)。
它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个。
释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据库连接遗漏

好处:
资源重用
提升系统响应时间
避免数据库连接遗漏。

数据库连接池实现
在这里插入图片描述

  • 17
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的JavaWeb连接MySQL数据库的程序示例: ```java import java.sql.*; public class ConnectDB { public static void main(String[] args) { String driver = "com.mysql.jdbc.Driver"; String url = "jdbc:mysql://localhost:3306/test"; String user = "root"; String password = "123456"; Connection conn = null; try { Class.forName(driver); // 加载驱动程序 conn = DriverManager.getConnection(url, user, password); // 获取数据库连接 if (!conn.isClosed()) { System.out.println("数据库连接成功!"); } // 执行SQL语句 Statement statement = conn.createStatement(); String sql = "SELECT * FROM user"; ResultSet resultSet = statement.executeQuery(sql); while (resultSet.next()) { String name = resultSet.getString("name"); int age = resultSet.getInt("age"); System.out.println("姓名:" + name + ",年龄:" + age); } resultSet.close(); statement.close(); conn.close(); } catch (ClassNotFoundException | SQLException e) { e.printStackTrace(); } } } ``` 其中,需要注意以下几点: 1. 加载MySQLJDBC驱动程序,即`com.mysql.jdbc.Driver`。 2. 构造数据库连接的URL,格式为`jdbc:mysql://host:port/databaseName`。 3. 使用`DriverManager.getConnection()`方法获取数据库连接。 4. 使用`Connection`对象创建`Statement`对象来执行SQL语句。 5. 使用`ResultSet`对象获取查询结果,并进行相应的处理。 6. 关闭`ResultSet`、`Statement`和`Connection`对象。 上述代码仅是一个示例,实际应用中需要根据具体的需求进行相应的修改和优化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值