news 2026/3/19 9:16:09

java与mysql连接 使用mysql-connector-java连接msql

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
java与mysql连接 使用mysql-connector-java连接msql

文章简介

本文章讲解使用mysql-connector-java-8.0.30建立java程序和mysql本地数据库的连接。

自用文章,仅作参考。

mysql-connect-java-8.0.30 (来自Maven)

IDE:IntelliJ IDEA

安装方法(任选其一)

通过IDEA项目结构安装

1.打开项目的项目结构(Project Structure)

2.在弹出的窗口选择 “库(Libraries)”-> “+” ->“来自Maven(From Maven)”

3.输入 mysql-connector-java,

并点击搜索开始搜索,

等待搜索结果后展开搜索结果,

选择mysql:mysql-connector-java:8.0.30

(建议、可选)勾选"下载到(Download to)

4.至此,外部库下载完成。



通过外部链接下载并添加

1.进入Maven官网:Maven 存储库:搜索/浏览/浏览 — Maven Repository: Search/Browse/Explore (mvnrepository.com)

2.顶部搜索框输入mysql-connector-java,回车搜索。得到结果与下图类似,根据相关信息选择第二个

3.根据自身需求选择下载版本,本文章使用8.0.30版本,点击版本号进入页面

4.根据自身需求选择下载jar包或者添加依赖,本文章选择下载jar包,添加依赖不需要再下载jar包

5.回到IDEA,在项目下创建一个"lib"目录,目录名字可自取,建议"lib"存放外部库。

将下载好的jar包粘贴至"lib"目录,右键jar包选择"添加为库(Add as Library …)"

弹出的窗口再选择 “OK” 即可

6.至此,添加完成。

使用方法

导入

import com.mysql.cj.jdbc.MysqlDataSource; import javax.sql.DataSource; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException;

连接mysql数据库

DataSource dataSource = new MysqlDataSource();//创建数据库资源对象 //强制转换,原因自查 setUrl()参数自定义,对于windows系统一般格式是: //jdbc:mysql://localhost:3306/创建的数据库名,此处我创建了一个名为accounts的数据库(creat database) ((MysqlDataSource) dataSource).setUrl("jdbc:mysql://localhost:3306/accounts");

设置连接数据库的用户名即密码(数据库的用户名和密码在安装时已设置)

((MysqlDataSource) dataSource).setUser("root");//此处设置用户名,windows系统默认root ((MysqlDataSource) dataSource).setPassword("50314");//密码在安装mysql时已经设置

建议连接,获得连接需要处理SQLException异常

try { Connection connection = dataSource.getConnection();//获得与数据库的连接 } catch (SQLException e) { e.printStackTrace(); }

使用预处理语句

创建一个预处理对象

PreparedStatement preparedStatement;

定义一个String变量,用于存储mysql的代码,如下所示

命令执行的是"select * from accounts where account_name=" + username +" and account_password=" + password;

输入mysql命令时请确保无任何符号遗漏

String sql = "select * from accounts where account_name=" + username +" and account_password=" + password;

执行命令,并获得结果

try { preparedStatement = connection.prepareStatement(sql);//预处理 ResultSet resultSet = preparedStatement.executeQuery();//执行处理并返回结果 }catch (SQLException e) { e.printStackTrace(); }

现在上述resultSet存储了来自mysql筛选后的结果。

本章示例完整代码:(演示如何在数据库中是否保存有某个账号)

package database; import com.mysql.cj.jdbc.MysqlDataSource; import javax.sql.DataSource; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; public class AccountDataBase { private PreparedStatement preparedStatement; private Connection connection; private static AccountDataBase accountDataBase; private AccountDataBase() { preparedStatement = null; DataSource dataSource = new MysqlDataSource(); ((MysqlDataSource) dataSource).setUrl("jdbc:mysql://localhost:3306/accounts"); ((MysqlDataSource) dataSource).setUser("root"); ((MysqlDataSource) dataSource).setPassword("50314"); try { connection = dataSource.getConnection(); preparedStatement = connection.prepareStatement("insert into account values(?,?,?,?)"); } catch (SQLException e) { e.printStackTrace(); } } public boolean checkAccount(String username, String password) { String sql = "select * from accounts where account_name=" + username +" and account_password=" + password; try { preparedStatement = connection.prepareStatement(sql); ResultSet resultSet = preparedStatement.executeQuery(); if (resultSet.next()) { return true; } }catch (SQLException e) { e.printStackTrace(); } return false; } public static AccountDataBase getAccountDataBase() { accountDataBase = new AccountDataBase(); return accountDataBase; } }

总结

本文章简单讲解了如何在java中直接使用mysql的语法筛选数据库信息。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/13 8:16:18

StatelessWidget与StatefulWidget区别与使用场景

Flutter核心技术解析:StatelessWidget与StatefulWidget的深度对比与实践指南 引言 在Flutter的世界中,Widget是构建用户界面的基本单元。对于每一个Flutter开发者而言,深刻理解StatelessWidget与StatefulWidget的区别不仅是入门必修课&#x…

作者头像 李华
网站建设 2026/3/17 2:01:10

Java进阶10 IO流

Java进阶10 IO流 IO流就是数据传输。I为input的缩写,表示输入读取;O为out的缩写,表示输出写出。 一、IO流体系结构巧记区分tips:以Stream结尾的是字节流;以Reader、Writer结尾的都是字符流 二、字节输出流FileOutputSt…

作者头像 李华
网站建设 2026/3/10 23:58:49

Java进阶06List集合泛型

Java进阶06 集合 一、集合及其体系结构 集合是一个长度可变的容器 1、集合的体系结构 1.1 单列集合单列集合使用add()方法添加集合元素,一次只能添加一个元素。单列集合均实现了Collection接口,该接口还有两个子接口List和Set。List接口 List集合的特点是…

作者头像 李华
网站建设 2026/3/18 2:53:22

什么是当前读和快照读?

在 MySQL InnoDB 中,当前读和快照读是 MVCC 机制下的两种数据读取方式,核心区别在于 是否读取最新版本、是否加锁、是否受其他事务影响,二者分工协作实现了 “读写不阻塞” 的高效并发。 一、快照读(Snapshot Read) …

作者头像 李华
网站建设 2026/3/10 19:09:03

JAVA进阶 THREAD学习10 多线程案例--计时器

标准库中计时器的使用 Timer类的实例化对象TimerTask类的是实例化对象–在run方法中存放运行的代码延迟的时间(相对时间,相对于当前时间之后的多少毫秒等) 时间需要安排schedule public static void main(String[] args) {System.out.println…

作者头像 李华
网站建设 2026/3/16 6:32:51

面试 Java 基础八股文十问十答第二期

面试 Java 基础八股文十问十答第二期 作者:程序员小白条,个人博客 ⭐点赞⭐收藏⭐不迷路!⭐ 11.什么是反射?反射有哪些作用?反射在Sping中的体现 (1): 什么是反射? 反射可以在运行时获取到一个类的所有信息&#xf…

作者头像 李华