多个SQLServer实例时,指定一个实例进行连接(通过集成身份验证进行连接)
SQL Server 允许在每台服务器上安装多个数据库实例。每个实例都由一个专用名称所标识。若要连接到指定的 SQL Server 实例,可以使用指定实例的端口号(首选),也可将实例名指定为 JDBC URL 属性或 datasource 属性。如果未指定实例名属性或端口号属性,则会创建与默认实例的连接。如以下实例所示:
jdbc:sqlserver://localhost:1433;integratedSecurity=true;
若要使用 JDBC URL 属性,请执行下列操作:
jdbc:sqlserver://localhost;instanceName=instance1;integratedSecurity=true;
/** * 获得JDBC驱动连接sqlserver数据库的方法 * 可以使用默认实例或指定一个实例 * @return * @throws ClassNotFoundException * @throws SQLException * @throws IllegalAccessException * @throws InstantiationException */ public static Connection getConnection() throws ClassNotFoundException, SQLException, InstantiationException, IllegalAccessException{ Connection conn = null; Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); //用于连接本机上的默认实例名 String URL ="jdbc:sqlserver://localhost;integratedSecurity=true;DatabaseName=JspDB"; //用于连接本机上的指定实例名(如果有两个实例,这时的端口号默认为是:1434) //要先开启SQL Server服务/SQL Server Browser这项服务 String url = "jdbc:sqlserver://localhost;instanceName=MYSQL2008;integratedSecurity=true;DatabaseName=jdbcDB"; conn = DriverManager.getConnection(URL); //或是用url(指定实例名)也可以,因为是集成身份验证所以不用sa和密码 return conn; }
多个SQLServer实例时,指定一个实例进行连接(SQLServer身份验证进行连接)
//用于连接本机指定的实例名(SQLServer2008版本,实例名为MYSQL2008)
public static Connection getConnection() throws ClassNotFoundException, SQLException, InstantiationException, IllegalAccessException{ Connection conn = null; Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); String URL = "jdbc:sqlserver://localhost//MYSQL2008:1434; DatabaseName=jdbcDb"; conn = DriverManager.getConnection(URL,"sa","shiqiang"); //在这里要指定sa登录和登录密码 return conn; }
//在SqlServerConfigurationManager管理工具中设置:TCP/IP属性(还有必要在防火墙为该端口设定为例外项)
修改完成后还需要重启SQL Server MYSQL2008 服务(个人认为最好重启计算机,因为重设了防火墙等原因)