JDBC建立與SQL Server的串連
關鍵詞
子協議、伺服器位址、連接埠號碼、執行個體、連接埠號碼與執行個體、串連屬性
容易出問題的地方
- 連接埠號碼與執行個體同時使用,這裡優先使用連接埠號碼而忽略執行個體配置
- 指定了不確定的連接埠號碼
總結
- 使用JDBC串連SQL Server時連接埠號碼顯得不是特別重要了
- 需要特別注意指定特定執行個體時是不可以再指定連接埠號碼了
- http://msdn.microsoft.com/zh-cn/library/ms378428(en-us,SQL.90).aspx
範例程式碼
/** * 取MSSql資料庫連接 * @param connURL 串連串 * @return rtnConn rtnConnection */ public static Connection createConn4MSSql(String connURL) { Connection conn = null; try { Class.forName(MS_DRIVER); conn = DriverManager.getConnection(connURL); } catch(ClassNotFoundException cnfe) { throw new RuntimeException("SQLServer 資料庫驅動載入失敗", cnfe.fillInStackTrace()); } catch (SQLException sqle) { throw new RuntimeException("SQLServer 資料庫連接失敗", sqle.fillInStackTrace()); } return conn; } public static void main(String[] args) { String[] msSqlUrls = { "jdbc:sqlserver://192.168.3.228:1433;databaseName=NSDEV151;user=NSDEV151;password=800224", "jdbc:sqlserver://192.168.0.16;databaseName=nsag;user=nsag;password=11111111;instanceName=sql2005", "jdbc:sqlserver://192.168.3.228:1433;databaseName=NSDEV169;user=NSDEV169;password=186958"}; Connection conn = null; for (String tmp : msSqlUrls) { try { System.out.println(tmp); conn = DBUtils.createConn4MSSql(tmp); } catch (RuntimeException e) { e.printStackTrace(); } finally { DBUtils.close(conn); } } }