原創
在Eclipse中連接SQL分為如下幾個步驟:
1.加載驅動程序
2.創建連接對象
3.創建執行SQL語句的對象
4.執行SQL語句
5.關閉new出來的對象
1.加載驅動程序(以SQL為例)
不同的數據庫(SQL、MySQL等)的不同版本、不同JDK可能對應不同的驅動包(以jar結尾),到網上找找即可。
下載好驅動包后將完整路徑設置到classpath環境變量中,如用開發工具開發程序,還需在開發環境中設置路徑。
將驅動類庫文件拷貝到D:\Program Files\Java\jdk1.7.0\jre\lib\ext目錄下。(這個路徑根據JDK的版本和安裝路徑確定,下同)
將驅動類庫文件拷貝到D:\Program Files\Java\jre7\lib\ext目錄下( 最好是,只要是jre文件夾,都復制一個驅動包到jre7\lib\ext里去!!)
設置SQLEXPRESS服務器:
a.打開SQL Server Configuration Manager -> SQLEXPRESS的協議 -> TCP/IP
b.右鍵單擊啟動TCP/IP
c.雙擊進入屬性,把IP地址中的IP all中的TCP端口設置為1433
d.重新啟動SQL Server 2005服務中的SQLEXPRESS服務器
e.關閉SQL Server Configuration Manager
注:可以在命令行窗口中用如下命令查看1433端口是否打開:
Telnet localhost 1433
若執行命令后,窗口左上角有光標閃爍,無其它提示信息,則說明端口已打開。
完成以上步驟后后面靠Java編程即可。
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); //加載驅動程序
加載驅動程序用到類Class中的方法forName(),里面的字符串指定的位置如下圖:
2.創建連接對象
Connection conn=DriverManager.getConnection(dbURL,userName,pwd);
主要用到Connection類創建連接對象conn,用DriverManager的getConnection方法創建引用。
dbURL:String dbURL="jdbc:sqlserver://localhost:1433;DatabaseName=數據庫名稱";(注意,DatabaseName是數據庫名稱,不是你登陸SQL時的用戶名sa或者其他)
userName:String userName="sa";(這個才是登錄時的用戶名)
pwd:String pwd="dearcwm*0.";(登陸時的密碼)
3.創建執行SQL語句的對象
String select_Statement="select * from student";
PreparedStatement stmp=conn.prepareStatement(select_Statement);
用類PreparedStatement創建執行SQL語句的對象stmp,這里可以看到conn用來創建此對象,所以連接SQL要按步驟順序來。
4.執行SQL語句
ResultSet rs=stmp.executeQuery(); //執行SQL語句返回結果集
用stmp的方法executeQuery執行上面寫的SQL語句,並用ResultSet的實例接受返回的結果集(這里的SQL執行查詢功能,其他功能用不同的類型數據接收)
5.關閉new出來的對象
while(rs.next()) { System.out.println(rs.getString("Sno")); System.out.println(rs.getString("Sname")); System.out.println(rs.getString("Ssex")); System.out.println(rs.getInt("Sage")); System.out.println(rs.getString("Sdept")); } rs.close(); stmp.close(); conn.close();
用rs的next方法可以使其指向下一行數據,方法get字段數據類型輸出字段值
查看數據庫表中各字段的數據類型的查詢語句為:
SELECT name AS column_name , TYPE_NAME(system_type_id) AS column_type , max_length , is_nullable FROM sys.columns WHERE object_id = OBJECT_ID(N'customerbase') --customerbase 為表名
完整代碼:
import java.sql.*; public class ConnectionDB_test { public static void main(String[] args) { String dbURL="jdbc:sqlserver://localhost:1433;DatabaseName=DB OF CWM"; String userName="sa"; String pwd="dearcwm*0."; try { Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); //加載驅動程序 Connection conn=DriverManager.getConnection(dbURL,userName,pwd); System.out.println("連接數據庫成功!"); String select_Statement="select * from student"; PreparedStatement stmp=conn.prepareStatement(select_Statement); ResultSet rs=stmp.executeQuery(); //執行SQL語句返回結果集 while(rs.next()) { System.out.println(rs.getString("Sno")); System.out.println(rs.getString("Sname")); System.out.println(rs.getString("Ssex")); System.out.println(rs.getInt("Sage")); System.out.println(rs.getString("Sdept")); } rs.close(); stmp.close(); conn.close(); }catch(Exception e) { e.printStackTrace(); } } }
09:26:34
2018-09-29