1.在開發環境中載入指定資料庫的驅動程序。
接下來的實驗中,使用資料庫MySQL,所以需要下載MySQL支持JDBC的驅動程序(mysql-connector-java-5.1.18-bin.jar)。
2.開發環境是MyEclipse,將下載得到的驅動程序載入進開發環境中。
3.在Java程序中載入驅動程序。
在Java程序中,通過「Class.forName(「指定資料庫的驅動程序」)」
方式來載入添加到開發環境中的驅動程序,例如Class.forName(「com.mysql.jdbc.Driver」)。
4.創建數據連接對象:通過DriverManager類創建資料庫連接對象Connection。
DriverManager類作用於Java程序和JDBC驅動程序之間,用於檢查所載入的驅動程序是否可以建立連接,然後通過它的getConnection方法,根據資料庫的URL、用戶名和密碼,創建一個JDBC
Connection對象。代碼如:Connectionconnection=DriverManager.getConnection(「連接資料庫的URL","用戶名",
"密碼」)。
其中,URL=協議名+IP地址(域名)+埠+資料庫名稱;用戶名和密碼是指登錄資料庫時所使用的用戶名和密碼。具體示例創建MySQL的資料庫連接代碼如下:
ConnectionconnectMySQL=
DriverManager.geiConnection(「jdbc:mysql://localhost:3306/myuser","root"
,"root");
5.創建Statement對象:Statement類的主要是用於執行靜態SQL
語句並返回它所生成結果的對象。
通過Connection對象的createStatement()方法可以創建一個Statement對象。例如:Statementstatament=
connection.createStatement();具體示例創建Statement對象代碼如下:StatementstatamentMySQL=connectMySQL.createStatement();
6.調用Statement對象的相關方法執行相對應的SQL
語句:通過execuUpdate()方法用來數據的更新,包括插入和刪除等操作,例如向staff表中插入一條數據的代碼:
statement.excuteUpdate("INSERTINTO
staff(name,age,sex,address,depart,worklen,wage)"+"VALUES('Tom1',321,
'M','china','Personnel','3','3000')");
7.通過調用Statement對象的executeQuery()方法進行數據的查詢,而查詢結果會得到
ResulSet對象,ResulSet表示執行查詢資料庫後返回的數據的集合,ResulSet對象具有可以指向當前數據行的指針。通過該對象的next()方法,使得指針指向下一行,然後將數據以列號或者欄位名取出。如果當next()方法返回null,則表示下一行中沒有數據存在。使用示例代碼如下:
ResultSetresultSel=
statement.executeQuery("select*fromstaff");
8.關閉資料庫連接:使用完資料庫或者不需要訪問資料庫時,通過Connection的close()方法及時關閉數據連接。
Ⅱ java如何連接SQLserver資料庫
注意:在使用這個類的時候,先將對應資料庫的驅動包(JAR包),復制進項目的WebRoot文件夾下的WEB-INF文件夾下的lib文件夾下,切記必須要對應的JAR包,否則無法使用資料庫的
import java.sql.*;
public class BaseDAO {
private static final String DRIVER = "com.microsoft.sqlserver.jdbc.SQLServerDriver";//注意:此驅動是SQL2005及以上版本的導入驅動包連接字元串
private static final String CONNECTION = "jdbc:sqlserver://localhost:1433;databaseName=Employee"; //資料庫連接字元串,databaseName就是你要連接的資料庫名,
private static final String NAME = "sa"; //資料庫用戶名
private static final String PWD = "sa"; //資料庫密碼
public static Connection GetConnection() {
Connection con = null;
try {
Class.forName(DRIVER);
con = DriverManager.getConnection(CONNECTION, NAME, PWD);
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
return con;
}
public static void close(ResultSet rs, PreparedStatement ps, Connection con) {
try {
if (null != rs) {
rs.close();
}
if (null != ps) {
ps.close();
}
if (null != con) {
con.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
Ⅲ Java中如何實現與後台資料庫的連接
用JAVA連接資料庫主要有兩種方式,一是用JDBC-ODBC橋來連接,二是用相關廠商提供的相應驅動程序來連接,首先談談第一種連接。 x0dx0ax0dx0aJDBC-ODBC橋接器是用JdbcOdbc.Class和一個用於訪問ODBC驅動程序的本地庫實現的。對於WINDOWS平台,該本地庫是一個動態連接庫DLL(JDBCODBC.DLL)。 x0dx0ax0dx0a由於JDBC在設計上與ODBC很接近。在內部,這個驅動程序把JDBC的方法映射到ODBC調用上,這樣,JDBC就可以和任何可用的ODBC驅動程序進行交互了。這種橋接器的優點是,它使JDBC目前有能力訪問幾乎所有的資料庫。通行方式如圖所示: x0dx0ax0dx0a應用程序---JDBC API---JDBC-ODBC---ODBC API---ODBC層---數據源 x0dx0ax0dx0a具體操作方法為: x0dx0ax0dx0a首先打開控制面板的管理工具,打開數據源(ODBC),在用戶DSN裡面添加數據源(即你要連接的資料庫的名字),在這里假定連接SQL SERVER 2000的GoodsSupply資料庫。名稱填寫你要連接的資料庫的名稱(GoodsSupply),然後逐步設置,如果選用了使用SQL-SERVER密碼認證的話,就要輸入相應的用戶名及密碼連接到資料庫。一路下一步設置完成。 x0dx0ax0dx0a在JAVA裡面編寫程序進行測試,在這里我的程序是讓用戶輸入任意的表名與與列名,把該列的所有數據輸出。源代碼如下: x0dx0ax0dx0aimport java.io.BufferedReader; x0dx0aimport java.io.InputStreamReader; x0dx0aimport java.sql.*; x0dx0ax0dx0apublic class ODBCBridge { x0dx0ax0dx0apublic static void main(String[] args) { x0dx0aString url="jdbc:odbc:GoodsSupply"; x0dx0aStatement sm=null; x0dx0aString command=null; x0dx0aResultSet rs=null; x0dx0aString tableName=null; x0dx0aString cName=null; x0dx0aString result=null; x0dx0aBufferedReader input=new BufferedReader(new InputStreamReader(System.in)); x0dx0atry { x0dx0atry { x0dx0aClass.forName("sun.jdbc.odbc.JdbcOdbcDriver"); //載入驅動 x0dx0a}catch(ClassNotFoundException e){ x0dx0aSystem.out.println("Can not load Jdbc-Odbc Bridge Driver"); x0dx0aSystem.err.print("ClassNotFoundException:"); x0dx0aSystem.err.println(e.getMessage()); x0dx0a} x0dx0aConnection con=DriverManager.getConnection(url,"USER","PASSWORD"); //使用SQL-SERVER2000認證 x0dx0aDatabaseMetaData dmd=con.getMetaData(); //DMD為連接的相應情況 x0dx0aSystem.out.println("連接的資料庫:"+dmd.getURL()); x0dx0aSystem.out.println("驅動程序:"+dmd.getDriverName()); x0dx0asm=con.createStatement(); x0dx0aSystem.out.println("輸入表名"); x0dx0atableName=input.readLine(); x0dx0awhile(true) { x0dx0aSystem.out.println("輸入列名(為空時程序結束):"); x0dx0acName=input.readLine(); x0dx0aif(cName.equalsIgnoreCase("")) x0dx0abreak; x0dx0acommand="select "+cName+" from "+tableName; x0dx0ars=sm.executeQuery(command); //執行查詢 x0dx0aif(!rs.next()) x0dx0aSystem.out.println("表名或列名輸入有誤"); x0dx0aelse { x0dx0aSystem.out.println("查詢結果為:"); x0dx0ado x0dx0a{ x0dx0aresult=rs.getString(cName); x0dx0a//資料庫語言設置為中文,不用轉換編碼 x0dx0a//result=new String(result.getBytes("ISO-8859-1"),"GB2312"); x0dx0aSystem.out.println(result); x0dx0a}while(rs.next()); x0dx0a} x0dx0a} x0dx0a}catch(SQLException ex) { x0dx0aSystem.out.println("SQLException:"); x0dx0awhile(ex!=null) { x0dx0aSystem.out.println("Message:"+ex.getMessage()); x0dx0aex=ex.getNextException(); x0dx0a} x0dx0a}catch(Exception e) { x0dx0aSystem.out.println("IOException"); x0dx0a} x0dx0a} x0dx0a}