JDBC簡單示例代碼
阿新 • • 發佈:2018-09-08
javac oot close package 5.7 exp import tac 包含數據庫
本文章教程中將演示如何創建一個簡單的JDBC應用程序的示例。 這將顯示如何打開數據庫連接,執行SQL查詢並顯示結果。
這個示例代碼中涉及所有步驟,一些步驟將在本教程的後續章節中進行說明。
創建JDBC應用程序
構建JDBC應用程序涉及以下六個步驟 -
- 導入包:需要包含包含數據庫編程所需的JDBC類的包。 大多數情況下,使用
import java.sql.*
就足夠了。 - 註冊JDBC驅動程序:需要初始化驅動程序,以便可以打開與數據庫的通信通道。
- 打開一個連接:需要使用
DriverManager.getConnection()
方法創建一個Connection
對象,它表示與數據庫的物理連接。 - 執行查詢
Statement
的對象來構建和提交SQL語句到數據庫。 - 從結果集中提取數據:需要使用相應的
ResultSet.getXXX()
方法從結果集中檢索數據。 - 清理環境:需要明確地關閉所有數據庫資源,而不依賴於JVM的垃圾收集。
示例代碼
當您以後需要創建自己的JDBC應用程序時,可將此示例可以作為模板使用,建議您收藏好此網頁。
此示例代碼是基於上一章完成的環境和數據庫設置之後編寫的。
在FirstExample.java (F:\worksp\jdbc\FirstExample.java)中復制並粘貼以下示例,編譯並運行如下 -
//STEP 1. Import required packages
import java.sql.*;
public class FirstExample {
// JDBC driver name and database URL
static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
static final String DB_URL = "jdbc:mysql://localhost/emp";
// Database credentials
static final String USER = "root";
static final String PASS = "123456";
public static void main(String[] args) {
Connection conn = null;
Statement stmt = null;
try{
//STEP 2: Register JDBC driver
Class.forName("com.mysql.jdbc.Driver");
//STEP 3: Open a connection
System.out.println("Connecting to database...");
conn = DriverManager.getConnection(DB_URL,USER,PASS);
//STEP 4: Execute a query
System.out.println("Creating statement...");
stmt = conn.createStatement();
String sql;
sql = "SELECT id, first, last, age FROM Employees";
ResultSet rs = stmt.executeQuery(sql);
//STEP 5: Extract data from result set
while(rs.next()){
//Retrieve by column name
int id = rs.getInt("id");
int age = rs.getInt("age");
String first = rs.getString("first");
String last = rs.getString("last");
//Display values
System.out.print("ID: " + id);
System.out.print(", Age: " + age);
System.out.print(", First: " + first);
System.out.println(", Last: " + last);
}
//STEP 6: Clean-up environment
rs.close();
stmt.close();
conn.close();
}catch(SQLException se){
//Handle errors for JDBC
se.printStackTrace();
}catch(Exception e){
//Handle errors for Class.forName
e.printStackTrace();
}finally{
//finally block used to close resources
try{
if(stmt!=null)
stmt.close();
}catch(SQLException se2){
}// nothing we can do
try{
if(conn!=null)
conn.close();
}catch(SQLException se){
se.printStackTrace