千锋教育-做有情怀、有良心、有品质的职业教育机构

手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

当前位置:首页  >  技术干货  > java查询mysql数据库

java查询mysql数据库

来源:千锋教育
发布人:xqq
时间: 2024-03-31 08:37:22 1711845442

Java查询MySQL数据库

_x000D_

Java是一种广泛使用的编程语言,而MySQL是一种流行的开源关系型数据库管理系统。Java与MySQL的结合,可以让我们更轻松地操作和管理数据库。在Java中,我们可以使用JDBC(Java Database Connectivity)来连接和操作MySQL数据库。本文将介绍如何使用Java查询MySQL数据库。

_x000D_

连接MySQL数据库

_x000D_

在使用Java查询MySQL数据库之前,我们需要先连接数据库。我们需要下载MySQL的JDBC驱动程序。可以从MySQL官方网站下载,也可以从Maven仓库中获取。

_x000D_

在Java中,我们可以使用以下代码连接MySQL数据库:

_x000D_

`java

_x000D_

import java.sql.Connection;

_x000D_

import java.sql.DriverManager;

_x000D_

import java.sql.SQLException;

_x000D_

public class MySQLJDBC {

_x000D_

public static void main(String[] args) {

_x000D_

// JDBC驱动程序类名和数据库URL

_x000D_

final String JDBC_DRIVER = "com.mysql.cj.jdbc.Driver";

_x000D_

final String DB_URL = "jdbc:mysql://localhost:3306/test?useSSL=false&serverTimezone=UTC";

_x000D_

// 数据库用户和密码

_x000D_

final String USER = "root";

_x000D_

final String PASS = "password";

_x000D_

Connection conn = null;

_x000D_

try {

_x000D_

// 注册JDBC驱动程序

_x000D_

Class.forName(JDBC_DRIVER);

_x000D_

// 打开连接

_x000D_

System.out.println("连接数据库...");

_x000D_

conn = DriverManager.getConnection(DB_URL, USER, PASS);

_x000D_

// 执行查询

_x000D_

// ...

_x000D_

} catch (ClassNotFoundException e) {

_x000D_

e.printStackTrace();

_x000D_

} catch (SQLException e) {

_x000D_

e.printStackTrace();

_x000D_

} finally {

_x000D_

try {

_x000D_

if (conn != null) {

_x000D_

conn.close();

_x000D_

}

_x000D_

} catch (SQLException e) {

_x000D_

e.printStackTrace();

_x000D_

}

_x000D_

}

_x000D_

}

_x000D_ _x000D_

在上面的代码中,我们首先定义了JDBC驱动程序类名和数据库URL。然后,我们使用Class.forName()方法注册JDBC驱动程序。接着,使用DriverManager.getConnection()方法打开数据库连接。在finally块中关闭连接。

_x000D_

执行查询

_x000D_

连接MySQL数据库后,我们就可以执行查询了。在Java中,我们可以使用StatementPreparedStatement对象执行查询。Statement对象用于执行静态SQL语句,而PreparedStatement对象用于执行动态SQL语句。

_x000D_

以下是使用Statement对象执行查询的示例代码:

_x000D_

`java

_x000D_

import java.sql.Connection;

_x000D_

import java.sql.DriverManager;

_x000D_

import java.sql.ResultSet;

_x000D_

import java.sql.SQLException;

_x000D_

import java.sql.Statement;

_x000D_

public class MySQLJDBC {

_x000D_

public static void main(String[] args) {

_x000D_

// JDBC驱动程序类名和数据库URL

_x000D_

final String JDBC_DRIVER = "com.mysql.cj.jdbc.Driver";

_x000D_

final String DB_URL = "jdbc:mysql://localhost:3306/test?useSSL=false&serverTimezone=UTC";

_x000D_

// 数据库用户和密码

_x000D_

final String USER = "root";

_x000D_

final String PASS = "password";

_x000D_

Connection conn = null;

_x000D_

Statement stmt = null;

_x000D_

ResultSet rs = null;

_x000D_

try {

_x000D_

// 注册JDBC驱动程序

_x000D_

Class.forName(JDBC_DRIVER);

_x000D_

// 打开连接

_x000D_

System.out.println("连接数据库...");

_x000D_

conn = DriverManager.getConnection(DB_URL, USER, PASS);

_x000D_

// 执行查询

_x000D_

System.out.println("创建Statement对象...");

_x000D_

stmt = conn.createStatement();

_x000D_

String sql = "SELECT id, name, age FROM users";

_x000D_

rs = stmt.executeQuery(sql);

_x000D_

// 处理结果集

_x000D_

while (rs.next()) {

_x000D_

int id = rs.getInt("id");

_x000D_

String name = rs.getString("name");

_x000D_

int age = rs.getInt("age");

_x000D_

System.out.println("ID: " + id + ", Name: " + name + ", Age: " + age);

_x000D_

}

_x000D_

} catch (ClassNotFoundException e) {

_x000D_

e.printStackTrace();

_x000D_

} catch (SQLException e) {

_x000D_

e.printStackTrace();

_x000D_

} finally {

_x000D_

try {

_x000D_

if (rs != null) {

_x000D_

rs.close();

_x000D_

}

_x000D_

if (stmt != null) {

_x000D_

stmt.close();

_x000D_

}

_x000D_

if (conn != null) {

_x000D_

conn.close();

_x000D_

}

_x000D_

} catch (SQLException e) {

_x000D_

e.printStackTrace();

_x000D_

}

_x000D_

}

_x000D_

}

_x000D_ _x000D_

在上面的代码中,我们首先创建了一个Statement对象。然后,使用executeQuery()方法执行查询语句,并将结果存储在ResultSet对象中。在while循环中处理结果集。

_x000D_

以下是使用PreparedStatement对象执行查询的示例代码:

_x000D_

`java

_x000D_

import java.sql.Connection;

_x000D_

import java.sql.DriverManager;

_x000D_

import java.sql.PreparedStatement;

_x000D_

import java.sql.ResultSet;

_x000D_

import java.sql.SQLException;

_x000D_

public class MySQLJDBC {

_x000D_

public static void main(String[] args) {

_x000D_

// JDBC驱动程序类名和数据库URL

_x000D_

final String JDBC_DRIVER = "com.mysql.cj.jdbc.Driver";

_x000D_

final String DB_URL = "jdbc:mysql://localhost:3306/test?useSSL=false&serverTimezone=UTC";

_x000D_

// 数据库用户和密码

_x000D_

final String USER = "root";

_x000D_

final String PASS = "password";

_x000D_

Connection conn = null;

_x000D_

PreparedStatement pstmt = null;

_x000D_

ResultSet rs = null;

_x000D_

try {

_x000D_

// 注册JDBC驱动程序

_x000D_

Class.forName(JDBC_DRIVER);

_x000D_

// 打开连接

_x000D_

System.out.println("连接数据库...");

_x000D_

conn = DriverManager.getConnection(DB_URL, USER, PASS);

_x000D_

// 执行查询

_x000D_

System.out.println("创建PreparedStatement对象...");

_x000D_

String sql = "SELECT id, name, age FROM users WHERE id = ?";

_x000D_

pstmt = conn.prepareStatement(sql);

_x000D_

pstmt.setInt(1, 1);

_x000D_

rs = pstmt.executeQuery();

_x000D_

// 处理结果集

_x000D_

while (rs.next()) {

_x000D_

int id = rs.getInt("id");

_x000D_

String name = rs.getString("name");

_x000D_

int age = rs.getInt("age");

_x000D_

System.out.println("ID: " + id + ", Name: " + name + ", Age: " + age);

_x000D_

}

_x000D_

} catch (ClassNotFoundException e) {

_x000D_

e.printStackTrace();

_x000D_

} catch (SQLException e) {

_x000D_

e.printStackTrace();

_x000D_

} finally {

_x000D_

try {

_x000D_

if (rs != null) {

_x000D_

rs.close();

_x000D_

}

_x000D_

if (pstmt != null) {

_x000D_

pstmt.close();

_x000D_

}

_x000D_

if (conn != null) {

_x000D_

conn.close();

_x000D_

}

_x000D_

} catch (SQLException e) {

_x000D_

e.printStackTrace();

_x000D_

}

_x000D_

}

_x000D_

}

_x000D_ _x000D_

在上面的代码中,我们首先创建了一个PreparedStatement对象。然后,使用setInt()方法设置查询参数,并使用executeQuery()方法执行查询语句。在while循环中处理结果集。

_x000D_

常见问题解答

_x000D_

1. 如何处理MySQL中的日期和时间?

_x000D_

在Java中,可以使用java.sql.Datejava.sql.Timestamp类来处理MySQL中的日期和时间。java.sql.Date类表示日期(年月日),而java.sql.Timestamp类表示日期和时间(年月日时分秒)。

_x000D_

以下是使用java.sql.Datejava.sql.Timestamp类处理MySQL中的日期和时间的示例代码:

_x000D_

`java

_x000D_

import java.sql.Connection;

_x000D_

import java.sql.DriverManager;

_x000D_

import java.sql.PreparedStatement;

_x000D_

import java.sql.ResultSet;

_x000D_

import java.sql.SQLException;

_x000D_

import java.sql.Timestamp;

_x000D_

public class MySQLJDBC {

_x000D_

public static void main(String[] args) {

_x000D_

// JDBC驱动程序类名和数据库URL

_x000D_

final String JDBC_DRIVER = "com.mysql.cj.jdbc.Driver";

_x000D_

final String DB_URL = "jdbc:mysql://localhost:3306/test?useSSL=false&serverTimezone=UTC";

_x000D_

// 数据库用户和密码

_x000D_

final String USER = "root";

_x000D_

final String PASS = "password";

_x000D_

Connection conn = null;

_x000D_

PreparedStatement pstmt = null;

_x000D_

ResultSet rs = null;

_x000D_

try {

_x000D_

// 注册JDBC驱动程序

_x000D_

Class.forName(JDBC_DRIVER);

_x000D_

// 打开连接

_x000D_

System.out.println("连接数据库...");

_x000D_

conn = DriverManager.getConnection(DB_URL, USER, PASS);

_x000D_

// 执行查询

_x000D_

System.out.println("创建PreparedStatement对象...");

_x000D_

String sql = "SELECT id, name, birthday, created_time FROM users WHERE id = ?";

_x000D_

pstmt = conn.prepareStatement(sql);

_x000D_

pstmt.setInt(1, 1);

_x000D_

rs = pstmt.executeQuery();

_x000D_

// 处理结果集

_x000D_

while (rs.next()) {

_x000D_

int id = rs.getInt("id");

_x000D_

String name = rs.getString("name");

_x000D_

Date birthday = rs.getDate("birthday");

_x000D_

Timestamp createdTime = rs.getTimestamp("created_time");

_x000D_

System.out.println("ID: " + id + ", Name: " + name + ", Birthday: " + birthday + ", Created Time: " + createdTime);

_x000D_

}

_x000D_

} catch (ClassNotFoundException e) {

_x000D_

e.printStackTrace();

_x000D_

} catch (SQLException e) {

_x000D_

e.printStackTrace();

_x000D_

} finally {

_x000D_

try {

_x000D_

if (rs != null) {

_x000D_

rs.close();

_x000D_

}

_x000D_

if (pstmt != null) {

_x000D_

pstmt.close();

_x000D_

}

_x000D_

if (conn != null) {

_x000D_

conn.close();

_x000D_

}

_x000D_

} catch (SQLException e) {

_x000D_

e.printStackTrace();

_x000D_

}

_x000D_

}

_x000D_

}

_x000D_ _x000D_

在上面的代码中,我们使用java.sql.Date类获取MySQL中的日期,并使用java.sql.Timestamp类获取MySQL中的日期和时间。

_x000D_

2. 如何处理MySQL中的NULL值?

_x000D_

在Java中,可以使用ResultSet对象的wasNull()方法判断MySQL中的字段是否为NULL。如果字段为NULL,则wasNull()方法返回true,否则返回false

_x000D_

以下是使用wasNull()方法处理MySQL中的NULL值的示例代码:

_x000D_

`java

_x000D_

import java.sql.Connection;

_x000D_

import java.sql.DriverManager;

_x000D_

import java.sql.PreparedStatement;

_x000D_

import java.sql.ResultSet;

_x000D_

import java.sql.SQLException;

_x000D_

public class MySQLJDBC {

_x000D_

public static void main(String[] args) {

_x000D_

// JDBC驱动程序类名和数据库URL

_x000D_

final String JDBC_DRIVER = "com.mysql.cj.jdbc.Driver";

_x000D_

final String DB_URL = "jdbc:mysql://localhost:3306/test?useSSL=false&serverTimezone=UTC";

_x000D_

// 数据库用户和密码

_x000D_

final String USER = "root";

_x000D_

final String PASS = "password";

_x000D_

Connection conn = null;

_x000D_

PreparedStatement pstmt = null;

_x000D_

ResultSet rs = null;

_x000D_

try {

_x000D_

// 注册JDBC驱动程序

_x000D_

Class.forName(JDBC_DRIVER);

_x000D_

// 打开连接

_x000D_

System.out.println("连接数据库...");

_x000D_

conn = DriverManager.getConnection(DB_URL, USER, PASS);

_x000D_

// 执行查询

_x000D_

System.out.println("创建PreparedStatement对象...");

_x000D_

String sql = "SELECT id, name, age, email FROM users WHERE id = ?";

_x000D_

pstmt = conn.prepareStatement(sql);

_x000D_

pstmt.setInt(1, 2);

_x000D_

rs = pstmt.executeQuery();

_x000D_

// 处理结果集

_x000D_

while (rs.next()) {

_x000D_

int id = rs.getInt("id");

_x000D_

String name = rs.getString("name");

_x000D_

int age = rs.getInt("age");

_x000D_

String email = rs.getString("email");

_x000D_

if (rs.wasNull()) {

_x000D_

email = "NULL";

_x000D_

}

_x000D_

System.out.println("ID: " + id + ", Name: " + name + ", Age: " + age + ", Email: " + email);

_x000D_

}

_x000D_

} catch (ClassNotFoundException e) {

_x000D_

e.printStackTrace();

_x000D_

} catch (SQLException e) {

_x000D_

e.printStackTrace();

_x000D_

} finally {

_x000D_

try {

_x000D_

if (rs != null) {

_x000D_

rs.close();

_x000D_

}

_x000D_

if (pstmt != null) {

_x000D_

pstmt.close();

_x000D_

}

_x000D_

if (conn != null) {

_x000D_

conn.close();

_x000D_

}

_x000D_

} catch (SQLException e) {

_x000D_

e.printStackTrace();

_x000D_

}

_x000D_

}

_x000D_

}

_x000D_ _x000D_

在上面的代码中,我们使用wasNull()方法判断MySQL中的email字段是否为NULL。如果为NULL,则将其赋值为字符串"NULL"。

_x000D_

本文介绍了如何使用Java查询MySQL数据库。我们首先需要连接数据库,然后使用StatementPreparedStatement对象执行查询。本文还解答了一些常见问题,如如何处理MySQL中的日期和时间、如何处理MySQL中的NULL值等。通过本文的学习,相信读者已经掌握了Java查询MySQL数据库的基本方法。

_x000D_
tags: Java
声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。
10年以上业内强师集结,手把手带你蜕变精英
请您保持通讯畅通,专属学习老师24小时内将与您1V1沟通
免费领取
今日已有369人领取成功
刘同学 138****2860 刚刚成功领取
王同学 131****2015 刚刚成功领取
张同学 133****4652 刚刚成功领取
李同学 135****8607 刚刚成功领取
杨同学 132****5667 刚刚成功领取
岳同学 134****6652 刚刚成功领取
梁同学 157****2950 刚刚成功领取
刘同学 189****1015 刚刚成功领取
张同学 155****4678 刚刚成功领取
邹同学 139****2907 刚刚成功领取
董同学 138****2867 刚刚成功领取
周同学 136****3602 刚刚成功领取
相关推荐HOT