JDBC連接數據庫
一、各類數據庫連接的驅動包及其驅動程序
1. MySQL(http://www.mysql.com)mysql-connector-java-2.0.14-bin.jar
Class.forName( "org.gjt.mm.mysql.Driver" );
cn=DriverManager.getConnection( "jdbc:mysql://MyDbComputerNameOrIP:3306/myDatabaseName", sUsr, sPwd );
2. PostgreSQL(http://www.de.postgresql.org)pgjdbc2.jar
Class.forName( "org.postgresql.Driver" );
cn = DriverManager.getConnection( "jdbc:postgresql://MyDbComputerNameOrIP/myDatabaseName", sUsr, sPwd );
3. Oracle(http://www.oracle.com/ip/deploy/database/oracle9i/)classes12.zip
Class.forName( "oracle.jdbc.driver.OracleDriver" );
cn = DriverManager.getConnection( "jdbc:oracle:thin:@MyDbComputerNameOrIP:1521:ORCL", sUsr, sPwd );
4. Sybase(http://jtds.sourceforge.net)jconn2.jar
Class.forName( "com.sybase.jdbc2.jdbc.SybDriver" );
cn = DriverManager.getConnection( "jdbc:sybase:Tds:MyDbComputerNameOrIP:2638", sUsr, sPwd );
//(Default-Username/Password: "dba"/"sql")
5. Microsoft SQLServer(http://jtds.sourceforge.net)
Class.forName( "net.sourceforge.jtds.jdbc.Driver" );
cn = DriverManager.getConnection( "jdbc:jtds:sqlserver://MyDbComputerNameOrIP:1433/master", sUsr, sPwd );
6. Microsoft SQLServer(http://www.microsoft.com)
Class.forName( "com.microsoft.jdbc.sqlserver.SQLServerDriver" );
cn = DriverManager.getConnection( "jdbc:microsoft:sqlserver://MyDbComputerNameOrIP:1433;databaseName=master", sUsr, sPwd );
7. ODBC
Class.forName( "sun.jdbc.odbc.JdbcOdbcDriver" );
Connection cn = DriverManager.getConnection( "jdbc:odbc:" + sDsn, sUsr, sPwd );
8.DB2
Class.forName("com.ibm.db2.jdbc.net.DB2Driver");
String url="jdbc:db2://192.9.200.108:6789/SAMPLE"
cn = DriverManager.getConnection( url, sUsr, sPwd );
二. 連接數據庫可能發生的問題
ClassNotFoundException
首先要現在數據庫對應的JDBC驅動包,然後將JDBC驅動包的路徑設置在classpath中。只要配置好了就可以解除異常。另一種情況是編譯的時候能通過,但是通過客戶端訪問後臺處理時服務器產生此異常,此時需要把驅動包放在服務器如(tomcat)的/common/lib目錄下。
.對數據庫操作通過執行SQL語句來實現。如果是執行查詢之類的操作,用executeQuery(sql)執行並用ResultSet的實例變量接受操作的結果,用ResultSet的next()方法判斷是否有符合條件的結果,並一一取出;如果執行的是插入、更新以及刪除之類的操作,則用executeUpdate(sql)執行。
三、java操作mysql步驟
包導入 :
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
將要用到的數據庫相關變量申明:
數據庫驅動(DBDRIVER): org.gjt.mm.mysql.Driver
數據庫路徑(DBURL): jdbc:mysql://localhost:3306/DataBase
數據庫用戶名(DBUSER): 默認爲root
數據庫連接口令(DBPASSWORD):DataBase_Password
加載數據庫驅動:
try{
Class.forName(DBDRIVER);
}
Catch(ClassNotFoundException e)
{
//捕捉到異常要執行的語句
}
連接數據庫
DriverManage.getConnection(DBURL.DBUSER,DBPASSWORD);
生成用於執行靜態數據庫語句的對象
Statement stmt = conn.createStatement();
操作數據庫,執行sql語句
(1) 如果執行查詢之類的有返回的語句
用ResultSet對象進行結果的接收:ResultSet result = stmt.executeQuery(sql);
(2) 執行的事更新操作
則直接用stmt.executeQuery(sql);語句即可完整更新數據庫
最後是依次:Result對象關閉rs.close();
執行sql對象關閉:stmt.close();
關閉與數據庫的連接:conn.close();