JDBC Tutorials - Herong's Tutorial Examples - Version 3.03, by Dr. Herong Yang
Specifying Instance Name in Connection URL
This section describes how to specify instance names in the connection URL for a specific SQL Server database instance.
In the last tutorial, we learned that SQL Server can support multiple database instances on a single host machine and the SQL Server Browser service can help JDBC client applications to specify the instance name instead of port number to connect to a specific instance.
Now I can modify my example program to specify the instance name in the connection URL in the following syntax:
jdbc:sqlserver://server_name\instance_name;user=login;password=**** jdbc:sqlserver://server_name;instanceName=instance_name; user=login;password=****
Before we run any tests with the instance name URL, we need to make sure the SQL Server Browser service is running together with my SQLEXPRESS instance:
1. Go to Control Panel and run "Services".
2. Find the "SQL Server Browser" service, enable it and run it.
3. Look at the "SQL Server (SQLEXPRESS)" service and make sure it is still running.
Here is the revised example program that shows you how to use instance name instead of port number in the connection URL:
/* ConnectionTest4.java - Copyright (c) 2015, HerongYang.com, All Rights Reserved. */ import java.sql.*; public class ConnectionTest4 { public static void main(String [] args) { try { // Obtaining a connection to SQL Server Connection con = DriverManager.getConnection( "jdbc:sqlserver://localhost\\SQLEXPRESS;" + "user=sa;password=HerongY@ng"); // Connection is ready to use DatabaseMetaData meta = con.getMetaData(); System.out.println("Driver name: " + meta.getDriverName()); System.out.println("Driver version: " + meta.getDriverVersion()); System.out.println("Server name: " + meta.getDatabaseProductName()); System.out.println("Server version: " + meta.getDatabaseProductVersion()); System.out.println("Connection URL: " + meta.getURL()); System.out.println("Login name: " + meta.getUserName()); // Obtaining another connection to SQL Server Connection con2 = DriverManager.getConnection( "jdbc:sqlserver://localhost;instanceName=SQLEXPRESS;" + "user=sa;password=HerongY@ng"); // Connection 2 is ready to use DatabaseMetaData meta2 = con2.getMetaData(); System.out.println("Second connection URL: " + meta2.getURL()); } catch (Exception e) { e.printStackTrace(); } } }
Compile and run it with JDK 1.8 and JDBC Driver 4.2, you should get:
C:\herong>\Progra~1\java\jdk1.8.0_45\bin\javac ConnectionTest4.java C:\herong>\Progra~1\java\jdk1.8.0_45\bin\java -cp .;\local\lib\sqljdbc42.jar ConnectionTest4 Driver name: Microsoft JDBC Driver 4.2 for SQL Server Driver version: 4.2.6225.100 Server name: Microsoft SQL Server Server version: 12.00.2000 Connection URL: jdbc:sqlserver://localhost\sqlexpress:60782; authenticationScheme=nativeAuthentication;xopenStates=false; sendTimeAsDatetime=true;trustServerCertificate=false; sendStringParametersAsUnicode=true;selectMethod=direct; responseBuffering=adaptive;packetSize=8000; multiSubnetFailover=false;loginTimeout=15;lockTimeout=-1; lastUpdateCount=true;encrypt=false;disableStatementPooling=true; applicationName=Microsoft JDBC Driver for SQL Server; applicationIntent=readwrite; Login name: sa Second connection URL: jdbc:sqlserver://localhost\SQLEXPRESS:60782; authenticationScheme=nativeAuthentication;xopenStates=false; sendTimeAsDatetime=true;trustServerCertificate=false; sendStringParametersAsUnicode=true;selectMethod=direct; responseBuffering=adaptive;packetSize=8000; multiSubnetFailover=false;loginTimeout=15;lockTimeout=-1; lastUpdateCount=true;encrypt=false;disableStatementPooling=true; applicationName=Microsoft JDBC Driver for SQL Server; applicationIntent=readwrite;
Last update: 2015.
Table of Contents
JDBC (Java Database Connectivity) Introduction
Installing and Running Java DB - Derby
Derby (Java DB) JDBC DataSource Objects
Java DB (Derby) - DML Statements
Java DB (Derby) - ResultSet Objects of Queries
Java DB (Derby) - PreparedStatement
MySQL JDBC Driver (MySQL Connector/J)
MySQL - Reference Implementation of JdbcRowSet
MySQL - JBDC CallableStatement
MySQL CLOB (Character Large Object) - TEXT
MySQL BLOB (Binary Large Object) - BLOB
Oracle Express Edition Installation on Windows
Oracle - Reference Implementation of JdbcRowSet
Oracle - JBDC CallableStatement
Oracle CLOB (Character Large Object) - TEXT
Oracle BLOB (Binary Large Object) - BLOB
Microsoft SQL Server 2005 Express Edition
►Microsoft JDBC Driver for SQL Server - sqljdbc42.jar
Installing Microsoft JDBC Driver for SQL Server
Loading Driver Class Automatically
Loading Driver Class with Class.forName()
DriverManager.getConnection() and Connection URL
Enabling TCP/IP with SQL Server Configuration Manager
Specifying Port Number in Connection URL
Instance Name Better than Port Number
►Specifying Instance Name in Connection URL
Closing the Database Connection - con.close()
Specifying Database Name in Connection URL
Incorrect Database Name in Connection URL
Creating Connections with DataSource Class
Microsoft JDBC Driver - Query Statements and Result Sets
Microsoft JDBC Driver - DatabaseMetaData Object
Microsoft JDBC Driver - DDL Statements
Microsoft JDBC Driver - DML Statements
SQL Server - PreparedStatement
SQL Server CLOB (Character Large Object) - TEXT
SQL Server BLOB (Binary Large Object) - BLOB
JDBC-ODBC Bridge Driver - sun.jdbc.odbc.JdbcOdbcDriver
JDBC-ODBC Bridge Driver - Flat Text Files
JDBC-ODBC Bridge Driver - MS Access
JDBC-ODBC Bridge Driver - MS SQL Server
Summary of JDBC Drivers and Database Servers