您的位置:首页 > 编程语言 > Java开发

java使用jdbc ipv6方式连接数据库

2016-11-18 20:50 806 查看
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Properties;

/**
*
* @author qyf
*
*/
public class IPv6JdbcUtil {

public static void main(String[] args) {
try {
boolean ipv6 = true;
testDb2Connection(ipv6);
testMySQLConnection(ipv6);
testOracleConnection(ipv6);
testSqlServerConnection(ipv6);
testSybaseConnection(ipv6);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
}

/**
*	ipv4 Driver URL:
*		jdbc:mysql://127.0.0.1:3306/database
*	ipv6 Driver URL:
*		jdbc:mysql://address=(protocol=tcp)(host=2001:470:23:13::6)(port=3306)/database
*
*  Deiver package version 5.1.31 以上
*
* @throws ClassNotFoundException
* @throws SQLException
*
*/
public static void testMySQLConnection(boolean ipv6) throws ClassNotFoundException, SQLException {
Class.forName("com.mysql.jdbc.Driver");
String jdbcIpv4Url = "jdbc:mysql://127.0.0.1:3306/databaseName";
String jdbcIpv6Url = "jdbc:mysql://address=(protocol=tcp)(host=2001:470:23:13::6)(port=3306)/database";
String jdbcUrl = ipv6 ? jdbcIpv6Url : jdbcIpv4Url;
Properties jdbcProperties = new Properties();
jdbcProperties.put("user", "dbuser");
jdbcProperties.put("password", "db_password");
Connection connection = DriverManager.getConnection(jdbcUrl);
System.out.println(connection);
}

/**
* jdbc:db2://[fec0:ffff:ffff:8000:20e:cff:fe50:39c8]:50000/sample
* jdbc:db2://192.168.10.10:50000/sample
*
*  Deiver package version
* <dependency>
*  <groupId>com.ibm.db2</groupId>
*  <artifactId>db2jcc4</artifactId>
*  <version>10.1</version>
* </dependency>
*/
public static void testDb2Connection(boolean ipv6) throws ClassNotFoundException, SQLException {
Class.forName("com.ibm.db2.jcc.DB2Driver");
String jdbcIpv4Url = "jdbc:db2://192.168.10.10:50000/sample";
String jdbcIpv6Url = "jdbc:db2://[2001:470:23:13::6]:50000/sample";
String jdbcUrl = ipv6 ? jdbcIpv6Url : jdbcIpv4Url;
Properties jdbcProperties = new Properties();
jdbcProperties.put("user", "dbuser");
jdbcProperties.put("password", "db_password");
Connection connection = DriverManager.getConnection(jdbcUrl);
System.out.println(connection);
}

/**
*
* ipv4 Driver URL:
* 		jdbc:oracle:thin:@//127.0.0.1:3306/orcl
*
* ipv6 Driver URL:
* 		jdbc:oracle:thin:@(DESCRIPTION=
(ADDRESS=(PROTOCOL=tcp)(HOST=[fe80::5cf:72])(PORT=1521))
(CONNECT_DATA=(SERVICE_NAME=fnstdb1)))
*
* @see http://stackoverflow.com/questions/10647845/does-oracle-11gr2-actually-support-ipv6 *
*  Deiver package version
*  <dependency>
*   <groupId>com.oracle</groupId>
*   <artifactId>ojdbc14</artifactId>
*   <version>10.2.0.3.0</version>
*  </dependency>
*/
public static void testOracleConnection(boolean ipv6) throws ClassNotFoundException, SQLException {
Class.forName("oracle.jdbc.OracleDriver");
String jdbcIpv4Url = "jdbc:oracle:thin:@//127.0.0.1:3306/orcl";
String jdbcIpv6Url = "jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=[fe80::5cf:72])(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=fnstdb1)))";
String jdbcUrl = ipv6 ? jdbcIpv6Url : jdbcIpv4Url;
Properties jdbcProperties = new Properties();
jdbcProperties.put("user", "dbuser");
jdbcProperties.put("password", "db_password");
Connection connection = DriverManager.getConnection(jdbcUrl);
System.out.println(connection);
}

/**
*	ipv4 Driver URL:
*		jdbc:jtds:sqlserver://127.0.0.1:1433/master
*	ipv6 Driver URL:
*		jdbc:jtds:sqlserver://
*
*	Deiver package version
* <dependency>
* 	<groupId>net.sourceforge.jtds</groupId>
* 	<artifactId>jtds</artifactId>
* 	<version>1.2.4</version>
* </dependency>
*
*/
public static void testSqlServerConnection(boolean ipv6) throws ClassNotFoundException, SQLException {
Class.forName("net.sourceforge.jtds.jdbc.Driver");
String jdbcIpv4Url = "jdbc:jtds:sqlserver://127.0.0.1:1433/master";
String jdbcIpv6Url = "jdbc:jtds:sqlserver://";
String jdbcUrl = ipv6 ? jdbcIpv6Url : jdbcIpv4Url;
Properties jdbcProperties = new Properties();
jdbcProperties.put("user", "dbuser");
jdbcProperties.put("password", "db_password");
if (ipv6) {
jdbcProperties.put("portNumber", 1433);
jdbcProperties.put("instanceName ", "master");
jdbcProperties.put("serverName", "2001:470:23:13::6");
}
Connection connection = DriverManager.getConnection(jdbcUrl);
System.out.println(connection);
}

/**
*	ipv4 Driver URL:
*		jdbc:jtds:sybase://127.0.0.1:1433/master
*	ipv6 Driver URL:
*		jdbc:jtds:sybase://
*
*	Deiver package version
* <dependency>
* 	<groupId>net.sourceforge.jtds</groupId>
* 	<artifactId>jtds</artifactId>
* 	<version>1.2.4</version>
* </dependency>
*
*/
public static void testSybaseConnection(boolean ipv6) throws ClassNotFoundException, SQLException {
Class.forName("net.sourceforge.jtds.jdbc.Driver");
String jdbcIpv4Url = "jdbc:jtds:sybase://127.0.0.1:1433/master";
String jdbcIpv6Url = "jdbc:jtds:sybase://";
String jdbcUrl = ipv6 ? jdbcIpv6Url : jdbcIpv4Url;
Properties jdbcProperties = new Properties();
jdbcProperties.put("user", "dbuser");
jdbcProperties.put("password", "db_password");
if (ipv6) {
jdbcProperties.put("portNumber", 1433);
jdbcProperties.put("instanceName ", "master");
jdbcProperties.put("serverName", "2001:470:23:13::6");
}
Connection connection = DriverManager.getConnection(jdbcUrl);
System.out.println(connection);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  tcp mysql ipv6 jdbc