JDBC URL格式简介及使用实例

1,124 阅读4分钟

JDBC URL Format

JDBC URL格式简介

JDBC URL格式用于建立与各自数据库的连接,你将使用java语言编写的应用程序来存储数据。Java数据库连接API需要一个独特的URL来连接到数据库,其中包含所有关于数据库服务器的信息。这因你将使用的数据库而异。在这篇文章中,我们将讨论JDBC中数据库URL格式的形成,这三种最广泛使用的数据库,如Microsoft SQL Server、MySQL和Oracle。我们将了解它的语法,以及它是如何在实现和例子的帮助下工作的。

Oracle中的URL格式

当你试图将java应用程序与oracle数据库进行连接时,你应该确保oracle瘦数据库的驱动已经安装在我们的机器上,并且在同一个classpath中。在使用maven进行项目依赖性管理的情况下,你应该在项目的pox.xml文件中添加odbc8依赖性标签。oracle精简版驱动程序提供的JDBC的URL有多种格式,具体如下-- 1.

连接到oracle SID的数据库。

语法

Jdbc:oracle:thin:[<name of user>/ <associated password>]@<name of host>[:<address of port>]:<SID>

例子

@Test
public void createJDBCconnectionSID() {
String oracleJdbcUrl = "jdbc:oracle:thin:@databaseOfOracle.db.server:1521:myEDUCBADatabase";
String sampleUser = "educbaPayal";
String samplePassword = "payal@123";
try (Connection myConnection= DriverManager.getConnection(oracleJdbcUrl, sampleUser, samplePassword )) {
System.log("Connection Established Successfully!");
assertNotNull(myConnection);
} catch (SQLException sampleException) {
System.err.format("State of SQL : %s\n%s", sampleException.getSQLState(), sampleException.getMessage());
}
}

如果通过使用JDBC中的SID建立连接,上述代码的输出如下所示。

JDBC URL Format 1

oracle的第二种方法是连接到oracle数据库的服务名称,其语法规定如下-

jdbc:oracle:thin:[<name of user>/<associated password>]@//<name of host>[:<address of port>]/<name of service>

下面的例子向我们展示了同样的实现方式。

@Test
public void createJDBCconnectionOracleService() {
String sampleURLJDBCOfEDUCBA = "jdbc:oracle:thin:@//databaseOfOracle.db.server:1521/educbaServiceName";
...
try (Connection educbaConnection = DriverManager.getConnection(sampleURLJDBCOfEDUCBA , educbaPayal, payal@123)) {
System.log("Connection with oracle Database established by using specified service name!");
assertNotNull(educbaConnection );
...
}
...
}

通过使用JDBC建立与oracle数据库的连接的第三种方法是使用tnsnames.ora条目。这些条目可以通过使用下面的语法包含在JDBC的URL中-

jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=<name of host>)(PORT=<address of port>))(CONNECT_DATA=(SERVICE_NAME=<name of your service>)))

让我们考虑通过使用下面的代码摘录来指定这种格式的URL的例子-

@Test
public void establishJDBCConnectionByUsingTNSNames() {
String sampleEducbaJDBCConn= "jdbc:oracle:thin:@" +
"(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)" +
"(HOST=educbaPayal.db.server)(PORT=1521))" +
"(CONNECT_DATA=(SERVICE_NAME=educbaJDBCService)))";
...
try (Connection conn = DriverManager.getConnection(sampleEducbaJDBCConn, payal, payal@123)) {
System.log("Connection with oracle Database established by using TNS names!");
assertNotNull(conn);
...
}
...
}

上述代码的输出如下所示 -

JDBC URL Format 2

MySQL JDBC URL格式

现在,让我们研究一下用于在java应用程序和MySQL数据库之间建立连接的URL格式。为此,需要在Maven项目的pom.xml文件中指定MySQL-connector-java的依赖关系,如下所示。

<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.22</version> </dependency>

MySQL数据库的URL格式的语法如下所示

Protocol being used // [name of host][/ name of database][? properties]

让我们考虑一个例子,以了解上述MySQL数据库的URL语法的实现,代码摘录如下

@Test
public void createJDBCConnectionForMySQL() {
String MySQLDatabaseURL= "jdbc:mysql://mysql.db.server:3306/educbaDatabase?useSSL=false&serverTimezone=UTC";
String nameOfUser = "Payal";
String associatedPassword = "Payal@123";
try (Connection sampleConnection = DriverManager.getConnection(MySQLDatabaseURL, nameOfUser , associatedPassword )) {
System.log("Connection with MySQL Database established!");
assertNotNull(sampleConnection);
} catch (SQLException sampleException) {
System.err.format("State of SQL: %s\n%s", sampleException.getSQLState(), sampleException.getMessage());
}
}

如果与MySQL数据库建立了连接,上述代码的输出如下所示-

JDBC URL Format 3

用于MySQL的JDBC URL格式在其语法中具有以下指定的术语,在本例中是 --

Protocol being used – jdbc:mysql
name of host – mysql.db.server:3306
name of database – educbaDatabase
properties – useSSL=false&serverTimezone=UTC
Microsoft SQL Server URL format for JDBCIn order to establish the connection with SQL server, we have to install the dependency of mysql-jdbc dependency in our maven project’s pom.xml file as shown below –
<dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>mssql-jdbc</artifactId>
<version>8.4.1.jre11</version>
</dependency>

与我们的微软SQL数据库服务器建立连接的语法如下所示-

jdbc:sqlserver://[nameOfServer[\nameOfInstance][:numberOfPort]][;property=value[;property=value]]

上述语法中使用的术语描述如下 -

nameOfServer - 为了与服务器连接,我们将指定服务器的地址,可以是域名或属于数据库服务器位置的相关IP地址。

nameOfInstance - 这是一个可选字段,它将有助于指定我们需要连接的服务器的名称。如果我们没有指定这个字段的值,那么就会考虑默认的实例。

numberOfPort - 我们必须连接到服务器名称的地址或端口的数量,默认值为1433。

properties - 这包含可选的属性,指定与连接相关的额外的附加属性。在有多个属性的情况下,我们可以使用分号的分隔符来分隔所有的属性。请注意,URL中不允许重复相同的属性。

例子

让我们考虑一个例子,它将帮助我们实现与MS SQL数据库的连接,从java应用程序 -

@Test
public void creationOfMSSQLConnectionJDBC() {
String jdbcUrl = "jdbc:sqlserver://mssql.db.server\\instanceOfMsSQL;databaseName=educba";
String nameOfUser = "Payal";
String associatedPassword = "Payal@123";
try (Connection sampleConnection = DriverManager.getConnection(jdbcUrl, nameOfUser, associatedPassword )) {
assertNotNull(sampleConnection);
} catch (SQLException sampleException) {
System.log ("Connection Established with MS SQL Database Server!");
System.err.format("State of SQL : %s\n%s", sampleException.getSQLState(), sampleException.getMessage());
}
}

执行上述代码摘录的输出结果如下图所示

JDBC URL Format 4

总结

JDBC的URL格式根据你试图从你的java应用程序连接到的数据库而不同。在这篇文章中,我们学习了语法,所需的依赖性,以及使用JDBC URL连接到一些流行的数据库的例子,如Microsoft SQL,MySQL和Oracle。