使用JDBC連接MySQL數據庫查詢實例
[原創 - 轉載請附帶連接 http://www.aygfsteel.com/myfly/archive/2008/09/18/229802.html ]
[版權:騎豬闖天下]
使用JDBC連接數據看查詢主要步驟如下:
1. 加載JDBC驅動程序;
2. 負責管理JDBC驅動程序的類 DriverManager 會識別加載的驅動程序,用 DriverManager 類的方法 getConnection()來創建一個數據庫連接類的實例對象;
3. 獲取Connection對象的實例,用Connection對象的方法創建一個 Statement 對象實例,執行標準的SQL語句,對數據庫、表進行相關操作。
4. 返回的結果用 ResultSet 類來處理。
程序代碼如下:
package packageOne;

import java.sql.*;


/** *//**
* 使用JDBC連接數據庫MySQL的過程
* DataBase:studentinfo, table:student;
* @author DuChangfeng 2008 09 18
*/

public class DataBaseTest
{
public static Connection getConnection() throws SQLException,
java.lang.ClassNotFoundException

{
//第一步:加載MySQL的JDBC的驅動
Class.forName("com.mysql.jdbc.Driver");
//取得連接的url,能訪問MySQL數據庫的用戶名,密碼;studentinfo:數據庫名
String url = "jdbc:mysql://localhost:3306/studentinfo";
String username = "root";
String password = "admin";
//第二步:創建與MySQL數據庫的連接類的實例
Connection con = DriverManager.getConnection(url, username, password);
return con;
}

public static void main(String args[])
{
try

{
//第三步:獲取連接類實例con,用con創建Statement對象類實例 sql_statement
Connection con = getConnection();
Statement sql_statement = con.createStatement();

/** *//************ 對數據庫進行相關操作 ************/
//如果同名數據庫存在,刪除
//sql_statement.executeUpdate("drop table if exists student");
//執行了一個sql語句生成了一個名為student的表
//sql_statement.executeUpdate("create table student (id int not null auto_increment, name varchar(20) not null default 'name', math int not null default 60, primary key (id) ); ");
//向表中插入數據
//sql_statement.executeUpdate("insert student values(1, 'liying', 98)");
//sql_statement.executeUpdate("insert student values(2, 'jiangshan', 88)");
//sql_statement.executeUpdate("insert student values(3, 'wangjiawu', 78)");
//sql_statement.executeUpdate("insert student values(4, 'duchangfeng', 100)");
//---以上操作不實用,但是列出來作為參考---
//第四步:執行查詢,用ResultSet類的對象,返回查詢的結果
String query = "select * from student";
ResultSet result = sql_statement.executeQuery(query);

/** *//************ 對數據庫進行相關操作 ************/
System.out.println("Student表中的數據如下:");
System.out.println("------------------------");
System.out.println("學號" + " " + "姓名" + " " + "數據成績 ");
System.out.println("------------------------");
//對獲得的查詢結果進行處理,對Result類的對象進行操作
while (result.next())

{
int number = result.getInt("id");
String name = result.getString("name");
String mathScore = result.getString("math");
//取得數據庫中的數據
System.out.println(" " + number + " " + name + " " + mathScore);
}
//關閉連接和聲明
sql_statement.close();
con.close();

} catch(java.lang.ClassNotFoundException e)
{
//加載JDBC錯誤,所要用的驅動沒有找到
System.err.print("ClassNotFoundException");
//其他錯誤
System.err.println(e.getMessage());

} catch (SQLException ex)
{
//顯示數據庫連接錯誤或查詢錯誤
System.err.println("SQLException: " + ex.getMessage());
}
}

}