更新時(shí)間:2022-04-24 11:03:10 來源:動(dòng)力節(jié)點(diǎn) 瀏覽2950次
在之前的文章中,我們了解了 JDBC 驅(qū)動(dòng)程序的類型以及如何使用 JDBC 建立數(shù)據(jù)庫連接。讓我們繼續(xù)前進(jìn)并開始與數(shù)據(jù)庫交互。動(dòng)力節(jié)點(diǎn)小編拿起的第一個(gè)例子是SQL SELECT 查詢。
執(zhí)行 SQL SELECT 查詢以獲取存儲(chǔ)在關(guān)系數(shù)據(jù)庫中的數(shù)據(jù)。它需要以下步驟:
建立數(shù)據(jù)庫連接
執(zhí)行 SQL 查詢
從結(jié)果集中獲取數(shù)據(jù)
先決條件包括設(shè)置數(shù)據(jù)庫模式和至少創(chuàng)建一個(gè)表。
CREATE SCHEMA 'JDBCDemo' ;
CREATE TABLE 'JDBCDemo'.'EMPLOYEE'
(
'ID' INT NOT NULL DEFAULT 0 ,
'FIRST_NAME' VARCHAR(100) NOT NULL ,
'LAST_NAME' VARCHAR(100) NULL ,
'STAT_CD' TINYINT NOT NULL DEFAULT 0
);
讓我們?cè)诖a中編寫上述步驟:
雖然我們?cè)诮?JDBC 連接時(shí)已經(jīng)了解了它,但讓我們用這個(gè)簡單的代碼片段來回顧一下。
Class.forName("com.mysql.jdbc.Driver");
connection = DriverManager
.getConnection("jdbc:mysql://localhost:3306/JDBCDemo", "root", "password");
這是帖子的主要步驟和核心部分。它需要?jiǎng)?chuàng)建一個(gè)Statement對(duì)象,然后使用它的executeQuery()方法。
Statement selectStmt = connection.createStatement();
ResultSet rs = selectStmt
.executeQuery("SELECT ID,FIRST_NAME,LAST_NAME,STAT_CD FROM EMPLOYEE WHERE ID <= 10");
您可以使用ResultSet中可用的各種 getXXX() 方法。但是,如果您想使其通用,請(qǐng)使用 getString() 方法并在需要時(shí)解析數(shù)據(jù)。
ResultSet rs = selectStmt
.executeQuery("SELECT ID,FIRST_NAME,LAST_NAME,STAT_CD FROM EMPLOYEE WHERE ID <= 10");
while(rs.next())
{
System.out.println(rs.getString(1)); //First Column
System.out.println(rs.getString(2)); //Second Column
System.out.println(rs.getString(3)); //Third Column
System.out.println(rs.getString(4)); //Fourth Column
}
讓我們看看整個(gè)代碼在工作中。
package com.howtodoinjava.jdbc.demo;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class SelectDataDemo {
public static void main(String[] args) {
Connection connection = null;
Statement insertStmt = null;
Statement selectStmt = null;
try
{
Class.forName("com.mysql.jdbc.Driver");
connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/JDBCDemo", "root", "password");
/*insertStmt = connection.createStatement();
insertStmt.execute("INSERT INTO EMPLOYEE (ID,FIRST_NAME,LAST_NAME,STAT_CD) VALUES (1,'Lokesh','Gupta',5)");
insertStmt.execute("INSERT INTO EMPLOYEE (ID,FIRST_NAME,LAST_NAME,STAT_CD) VALUES (2,'howtodoinjava','com',5)");*/
selectStmt = connection.createStatement();
ResultSet rs = selectStmt.executeQuery("SELECT ID,FIRST_NAME,LAST_NAME,STAT_CD FROM EMPLOYEE WHERE ID <= 10");
while(rs.next())
{
System.out.println(rs.getString(1)); //First Column
System.out.println(rs.getString(2)); //Second Column
System.out.println(rs.getString(3)); //Third Column
System.out.println(rs.getString(4)); //Fourth Column
}
}
catch (Exception e) {
e.printStackTrace();
}finally {
try {
selectStmt.close();
insertStmt.close();
connection.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
Output:
1
Lokesh
Gupta
5
2
howtodoinjava
com
5
通過上述介紹相信大家對(duì)Java查詢數(shù)據(jù)庫的步驟已經(jīng)有所了解,大家如果想了解更多相關(guān)知識(shí),不妨來關(guān)注一下動(dòng)力節(jié)點(diǎn)的Java教程,里面的課程由淺到深,很適合小白學(xué)習(xí),希望對(duì)大家能夠有所幫助哦。
相關(guān)閱讀
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
有基礎(chǔ) 直達(dá)就業(yè)
業(yè)余時(shí)間 高薪轉(zhuǎn)行
工作1~3年,加薪神器
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問老師會(huì)電話與您溝通安排學(xué)習(xí)