JAVA访问MYSQL数据库JDBC

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 阅读人群:刚学习JAVA的人群应该具备的背景知识:mysql数据库

当前版本:

  • jdk-15.0.2
  • jre1.8.0_281

知识梳理
JDBC-MySQL介绍
每个编程语言都会提供其访问数据库的接口,java提供JDBC-MySQL驱动来访问MySQL。而这个驱动在一个文件里,需要我们去官网下载。

JDBC-MySQL安装
下载链接

注:如果你电脑上已经有了JDBC-MySQL,可以跳过本节。

进入下载连接

在"Select Operating System"下面选择Platform Independent(应该是默认选好的)
随便选哪个文件,点击右边的"Download"
点击“No thanks, just start my download”
把压缩文件中名为mysql-connector-java-8.0.25.jar的文件解压(当然你的版本号可能不同)
JDBC-MySQL中的类
Connection类:维持与数据库的连接(好比一个游戏客户端,你每次打开都要登录,关了客户端再打开就要重新登陆),这个Connection就是用来保存登录信息的。
Statement类:用来执行SQL语句,需要用Connection对象创建
ResultSet类:用来接收查询语句的结果
实现
请提前了解try/catch语句的作用

注意,过程中会有很多异常抛出的语句,这些都是必要的。

但还是请专注于核心代码,报错之前你甚至可以直接无视catch语句内的代码和注释,因为那本就是助你查找错误的。

请一步一步跟着做,前一步没调通后面是一定会报错的,而且增加你查找错误的难度。

准备
如果你使用IDE(如eclipse,IDEA),将mysql-connector-java-8.0.25.jar文件导入到外部库里
如果你没有使用IDE,将mysql-connector-java-8.0.25.jar文件解压到项目文件夹里(现在的大多数解压文件都支持解压jar文件),保证com文件夹和你编写的java文件在同一个目录
还是建议使用IDEA,会省掉很多事情

初始化
导入类,这里你也可以挨着写要导入的类

import java.sql.*;
这一步你可以理解为加载驱动。

try{

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

}
catch(Exception e){

// 如果这里的代码执行,说明你的准备工作没做好,这种情况下你后面的代码全会报错
// 检查前面的准备操作,直到这里不报错再写后面的代码
System.out.println("加载驱动失败!");
System.out.println(e);

}
上面代码没有抛出异常的话,证明你的准备工作做得很到位~

建立连接
这里假设你的mysql服务器在本地,端口为3306,要连接的数据库名称为database。

如果不是,将localhost改为服务器的ip地址,3306改为服务器上数据库的端口,database改为数据库名。

Connection con;
String url = "jdbc:mysql://localhost:3306/database";
String username = ""; //这里输入你的数据库用户名
String password = ""; //你的密码

try{

con = DriverManager.getConnection(url,user,password);

}
catch(Exception e){

// 这里的代码执行说明连接失败
// 检查前面的驱动加载是否成功
// 检查url,username,password是否正确
System.out.println("连接失败");
System.out.println(e);

}
创建Statement对象
及其简单的一步

Statement statement = con.creatStatement();
执行查询语句
查询语句用到的是Statement对象的executeQuery()方法,返回一个ResultSet对象

ResultSet rs;
String sql = "";//sql写入要执行的查询语句
rs = statement.executeQuery(sql);
ResultSet对象的使用:
rs.next()
获取下一行数据
刚获得rs时就得执行一次,才是获得第一行数据,不然啥都得不到。
如果获取到的行有数据,则返回true,否则,返回false,表示执行rs.next()之前就到了最后一行
rs.getString(String column)
这个方法传入列名,获取当前行的该列名的String类型的值
其他很少用到,可以去官方文档里看

try{
    //假定获取的结果中有一列叫"name"
    rs.next();
    System.out.println(rs.getString("name"));
}
catch(Exception e){
    System.out.println("出错了!");
    System.out.println(e);
}

执行添加、更新、删除语句
修改语句用到的是Statement对象的executeUpdate()方法,返回的是你修改的行数

String sql = "";
int num;
num = statement.executeUpdate(sql);

封装
为了更好的使用,减少代码量,我自己封装了一下(后面没有其他知识了,只有供参考的代码)

import java.sql.*;

public class MySQLtool {
    public static Connection con;
    public static Statement statement;

    static void Init(String url, String username, String password) {
    // 1. 加载驱动
try {
            Class.forName("com.mysql.cj.jdbc.Driver");
        } catch (Exception e) {
            System.out.println(e);
            return;
        }
    // 2. 连接数据库
try {
            con = DriverManager.getConnection(url, username, password);
        } catch (Exception e) {
            System.out.println(e);
            return;
        }
    }
// 查询
static public ResultSet Query(String sql) {
        try {
            return statement.executeQuery(s);
        } catch (SQLException e) {
            System.out.println(e);
            return null;
        }
    }
// 修改
static public int update(String sql) {
        // 执行语句
        try {
            return statement.executeUpdate(sql);
        } catch (SQLException e) {
            System.out.println(e);
            return -1;
        }
    }

这样就可以MySQL.Init()初始化后,直接通过MySQL.Query()和MySQL.Update()来执行SQL语句了。

MySQLtool可能涉及到类方法的知识,可以先去看看,反正是学java躲不掉的。

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
14天前
|
XML Java 数据库连接
性能提升秘籍:如何高效使用Java连接池管理数据库连接
在Java应用中,数据库连接管理至关重要。随着访问量增加,频繁创建和关闭连接会影响性能。为此,Java连接池技术应运而生,如HikariCP。本文通过代码示例介绍如何引入HikariCP依赖、配置连接池参数及使用连接池高效管理数据库连接,提升系统性能。
47 5
|
23天前
|
Java API Apache
|
26天前
|
SQL Java 数据库连接
在Java应用中,数据库访问常成为性能瓶颈。连接池技术通过预建立并复用数据库连接,有效减少连接开销,提升访问效率
在Java应用中,数据库访问常成为性能瓶颈。连接池技术通过预建立并复用数据库连接,有效减少连接开销,提升访问效率。本文介绍了连接池的工作原理、优势及实现方法,并提供了HikariCP的示例代码。
41 3
|
26天前
|
存储 Java 关系型数据库
在Java开发中,数据库连接是应用与数据交互的关键环节。本文通过案例分析,深入探讨Java连接池的原理与最佳实践
在Java开发中,数据库连接是应用与数据交互的关键环节。本文通过案例分析,深入探讨Java连接池的原理与最佳实践,包括连接创建、分配、复用和释放等操作,并通过电商应用实例展示了如何选择合适的连接池库(如HikariCP)和配置参数,实现高效、稳定的数据库连接管理。
48 2
|
26天前
|
Java 数据库连接 数据库
如何构建高效稳定的Java数据库连接池,涵盖连接池配置、并发控制和异常处理等方面
本文介绍了如何构建高效稳定的Java数据库连接池,涵盖连接池配置、并发控制和异常处理等方面。通过合理配置初始连接数、最大连接数和空闲连接超时时间,确保系统性能和稳定性。文章还探讨了同步阻塞、异步回调和信号量等并发控制策略,并提供了异常处理的最佳实践。最后,给出了一个简单的连接池示例代码,并推荐使用成熟的连接池框架(如HikariCP、C3P0)以简化开发。
46 2
|
26天前
|
Java 数据库连接 数据库
深入探讨Java连接池技术如何通过复用数据库连接、减少连接建立和断开的开销,从而显著提升系统性能
在Java应用开发中,数据库操作常成为性能瓶颈。本文通过问题解答形式,深入探讨Java连接池技术如何通过复用数据库连接、减少连接建立和断开的开销,从而显著提升系统性能。文章介绍了连接池的优势、选择和使用方法,以及优化配置的技巧。
24 1
|
26天前
|
Java 数据库连接 数据库
Java连接池在数据库性能优化中的重要作用。连接池通过预先创建和管理数据库连接,避免了频繁创建和关闭连接的开销
本文深入探讨了Java连接池在数据库性能优化中的重要作用。连接池通过预先创建和管理数据库连接,避免了频繁创建和关闭连接的开销,显著提升了系统的响应速度和吞吐量。文章介绍了连接池的工作原理,并以HikariCP为例,展示了如何在Java应用中使用连接池。通过合理配置和优化,连接池技术能够有效提升应用性能。
40 1
|
26天前
|
监控 Java 数据库连接
在Java开发中,数据库连接管理是关键问题之一
在Java开发中,数据库连接管理是关键问题之一。本文介绍了连接池技术如何通过预创建和管理数据库连接,提高数据库操作的性能和稳定性,减少资源消耗,并简化连接管理。通过示例代码展示了HikariCP连接池的实际应用。
19 1
|
28天前
|
SQL Java 数据库连接
打破瓶颈:利用Java连接池技术提升数据库访问效率
在Java应用中,数据库访问常成为性能瓶颈。连接池技术通过预建立并复用数据库连接,避免了频繁的连接建立和断开,显著提升了数据库访问效率。常见的连接池库包括HikariCP、C3P0和DBCP,它们提供了丰富的配置选项和强大的功能,帮助优化应用性能。
44 2
|
16天前
|
SQL 关系型数据库 MySQL
12 PHP配置数据库MySQL
路老师分享了PHP操作MySQL数据库的方法,包括安装并连接MySQL服务器、选择数据库、执行SQL语句(如插入、更新、删除和查询),以及将结果集返回到数组。通过具体示例代码,详细介绍了每一步的操作流程,帮助读者快速入门PHP与MySQL的交互。
29 1

热门文章

最新文章

下一篇
无影云桌面