久久精品国产亚洲高清|精品日韩中文乱码在线|亚洲va中文字幕无码久|伊人久久综合狼伊人久久|亚洲不卡av不卡一区二区|精品久久久久久久蜜臀AV|国产精品19久久久久久不卡|国产男女猛烈视频在线观看麻豆

千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機構(gòu)

手機站
千鋒教育

千鋒學(xué)習(xí)站 | 隨時隨地免費學(xué)

千鋒教育

掃一掃進(jìn)入千鋒手機站

領(lǐng)取全套視頻
千鋒教育

關(guān)注千鋒學(xué)習(xí)站小程序
隨時隨地免費學(xué)習(xí)課程

當(dāng)前位置:首頁  >  技術(shù)干貨  > java查詢mysql數(shù)據(jù)庫

java查詢mysql數(shù)據(jù)庫

來源:千鋒教育
發(fā)布人:xqq
時間: 2024-03-31 08:37:22 1711845442

Java查詢MySQL數(shù)據(jù)庫

_x000D_

Java是一種廣泛使用的編程語言,而MySQL是一種流行的開源關(guān)系型數(shù)據(jù)庫管理系統(tǒng)。Java與MySQL的結(jié)合,可以讓我們更輕松地操作和管理數(shù)據(jù)庫。在Java中,我們可以使用JDBC(Java Database Connectivity)來連接和操作MySQL數(shù)據(jù)庫。本文將介紹如何使用Java查詢MySQL數(shù)據(jù)庫。

_x000D_

連接MySQL數(shù)據(jù)庫

_x000D_

在使用Java查詢MySQL數(shù)據(jù)庫之前,我們需要先連接數(shù)據(jù)庫。我們需要下載MySQL的JDBC驅(qū)動程序??梢詮腗ySQL官方網(wǎng)站下載,也可以從Maven倉庫中獲取。

_x000D_

在Java中,我們可以使用以下代碼連接MySQL數(shù)據(jù)庫:

_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驅(qū)動程序類名和數(shù)據(jù)庫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_

// 數(shù)據(jù)庫用戶和密碼

_x000D_

final String USER = "root";

_x000D_

final String PASS = "password";

_x000D_

Connection conn = null;

_x000D_

try {

_x000D_

// 注冊JDBC驅(qū)動程序

_x000D_

Class.forName(JDBC_DRIVER);

_x000D_

// 打開連接

_x000D_

System.out.println("連接數(shù)據(jù)庫...");

_x000D_

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

_x000D_

// 執(zhí)行查詢

_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驅(qū)動程序類名和數(shù)據(jù)庫URL。然后,我們使用Class.forName()方法注冊JDBC驅(qū)動程序。接著,使用DriverManager.getConnection()方法打開數(shù)據(jù)庫連接。在finally塊中關(guān)閉連接。

_x000D_

執(zhí)行查詢

_x000D_

連接MySQL數(shù)據(jù)庫后,我們就可以執(zhí)行查詢了。在Java中,我們可以使用StatementPreparedStatement對象執(zhí)行查詢。Statement對象用于執(zhí)行靜態(tài)SQL語句,而PreparedStatement對象用于執(zhí)行動態(tài)SQL語句。

_x000D_

以下是使用Statement對象執(zhí)行查詢的示例代碼:

_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驅(qū)動程序類名和數(shù)據(jù)庫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_

// 數(shù)據(jù)庫用戶和密碼

_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驅(qū)動程序

_x000D_

Class.forName(JDBC_DRIVER);

_x000D_

// 打開連接

_x000D_

System.out.println("連接數(shù)據(jù)庫...");

_x000D_

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

_x000D_

// 執(zhí)行查詢

_x000D_

System.out.println("創(chuàng)建Statement對象...");

_x000D_

stmt = conn.createStatement();

_x000D_

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

_x000D_

rs = stmt.executeQuery(sql);

_x000D_

// 處理結(jié)果集

_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_

在上面的代碼中,我們首先創(chuàng)建了一個Statement對象。然后,使用executeQuery()方法執(zhí)行查詢語句,并將結(jié)果存儲在ResultSet對象中。在while循環(huán)中處理結(jié)果集。

_x000D_

以下是使用PreparedStatement對象執(zhí)行查詢的示例代碼:

_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驅(qū)動程序類名和數(shù)據(jù)庫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_

// 數(shù)據(jù)庫用戶和密碼

_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驅(qū)動程序

_x000D_

Class.forName(JDBC_DRIVER);

_x000D_

// 打開連接

_x000D_

System.out.println("連接數(shù)據(jù)庫...");

_x000D_

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

_x000D_

// 執(zhí)行查詢

_x000D_

System.out.println("創(chuàng)建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_

// 處理結(jié)果集

_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_

在上面的代碼中,我們首先創(chuàng)建了一個PreparedStatement對象。然后,使用setInt()方法設(shè)置查詢參數(shù),并使用executeQuery()方法執(zhí)行查詢語句。在while循環(huán)中處理結(jié)果集。

_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驅(qū)動程序類名和數(shù)據(jù)庫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_

// 數(shù)據(jù)庫用戶和密碼

_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驅(qū)動程序

_x000D_

Class.forName(JDBC_DRIVER);

_x000D_

// 打開連接

_x000D_

System.out.println("連接數(shù)據(jù)庫...");

_x000D_

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

_x000D_

// 執(zhí)行查詢

_x000D_

System.out.println("創(chuàng)建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_

// 處理結(jié)果集

_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驅(qū)動程序類名和數(shù)據(jù)庫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_

// 數(shù)據(jù)庫用戶和密碼

_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驅(qū)動程序

_x000D_

Class.forName(JDBC_DRIVER);

_x000D_

// 打開連接

_x000D_

System.out.println("連接數(shù)據(jù)庫...");

_x000D_

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

_x000D_

// 執(zhí)行查詢

_x000D_

System.out.println("創(chuàng)建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_

// 處理結(jié)果集

_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數(shù)據(jù)庫。我們首先需要連接數(shù)據(jù)庫,然后使用StatementPreparedStatement對象執(zhí)行查詢。本文還解答了一些常見問題,如如何處理MySQL中的日期和時間、如何處理MySQL中的NULL值等。通過本文的學(xué)習(xí),相信讀者已經(jīng)掌握了Java查詢MySQL數(shù)據(jù)庫的基本方法。

_x000D_
tags: Java
聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
10年以上業(yè)內(nèi)強師集結(jié),手把手帶你蛻變精英
請您保持通訊暢通,專屬學(xué)習(xí)老師24小時內(nèi)將與您1V1溝通
免費領(lǐng)取
今日已有369人領(lǐng)取成功
劉同學(xué) 138****2860 剛剛成功領(lǐng)取
王同學(xué) 131****2015 剛剛成功領(lǐng)取
張同學(xué) 133****4652 剛剛成功領(lǐng)取
李同學(xué) 135****8607 剛剛成功領(lǐng)取
楊同學(xué) 132****5667 剛剛成功領(lǐng)取
岳同學(xué) 134****6652 剛剛成功領(lǐng)取
梁同學(xué) 157****2950 剛剛成功領(lǐng)取
劉同學(xué) 189****1015 剛剛成功領(lǐng)取
張同學(xué) 155****4678 剛剛成功領(lǐng)取
鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
董同學(xué) 138****2867 剛剛成功領(lǐng)取
周同學(xué) 136****3602 剛剛成功領(lǐng)取
相關(guān)推薦HOT