`

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

阅读更多
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);
	}
}

 

分享到:
评论

相关推荐

    Oracle的ipv4_v6连接及各个系统参数查询.zip

    以下是如何使用Java JDBC连接Oracle数据库的基本步骤: 1. 添加ojdbc.jar到项目类路径:确保你的Java项目可以访问到Oracle的JDBC驱动。 2. 创建数据库连接:使用`java.sql.DriverManager.getConnection()`方法,...

    DB2的ipv4_v6连接及各个系统参数查询.zip

    本文将深入探讨如何使用Java的JDBC(Java Database Connectivity)技术来连接DB2数据库,以及涉及的IPv4和IPv6网络连接方式。同时,我们也会介绍如何查询DB2的系统参数,以优化数据库性能。 首先,Java JDBC是Java...

    mysql8的ipv4_v6连接及各个系统参数查询.rar

    MySQL 8.0是当前广泛使用的数据库管理系统,它支持多种连接方式,包括IPv4和IPv6。本资源包提供了一个全面的指南,帮助用户理解如何使用这两种网络协议连接到MySQL服务器,同时也包含了JDBC驱动包和相关的Java源代码...

    mysql-connector-java-5.1.44

    jdbc 连接mysql数据库,支持ipv6访问 MySQL是目前十分流行的一种关系型数据库管理系统

    java常用代码

    7. **数据库连接方式**(java数据库的各种连接.txt):Java提供了多种方式连接数据库,包括JDBC-ODBC桥接,直接使用JDBC驱动,以及使用数据库连接池(如C3P0、DBCP、HikariCP等),后者在性能和资源管理上更优。...

    IDEA连接postgressql数据库操作

    2. 创建测试类,例如`JdbcTestApplicationTests.java`,使用Spring Boot的测试注解`@SpringBootTest`和`@RunWith(SpringRunner.class)`来启动整个应用上下文,并注入`DataSource`,以便进行数据库连接测试: ```java...

    ip存入数据库

    - Java:可以使用java.net.InetAddress类获取和解析IP地址,JDBC用于数据库操作。 ```java InetAddress addr = InetAddress.getByName("example.com"); String ip = addr.getHostAddress(); ``` 4. 工具使用:...

    Java SE 6.0基础及应用案例开发

    8. **数据库连接**:Java SE 6改进了JDBC(Java Database Connectivity),提供了更高效的数据库连接池,以及对存储过程的支持,简化了数据库操作。 9. **Swing GUI**:Swing是Java的图形用户界面库,Java 6对Swing...

    Java各版本特性一览-从Java1.0到Java12.docx

    1. **Java 1.0 (1996)**:这是Java的第一个正式版本,引入了JDBC(Java数据库连接)、内部类、RMI(远程方法调用)、反射和JIT(即时编译器),奠定了Java的基础。但此版本的性能较弱,依赖于外部JIT。 2. **Java ...

    Java发展史_&_Java9、10新特性

    例如,`java.base`模块包含了语言核心功能,而其他模块如`java.sql`则专注于数据库连接。 - **jlink工具** 新增的`jlink`工具允许用户根据应用程序的实际需求创建自定义的运行时镜像,仅包含所需的JDK模块。这...

    基于Java--Socket-网络编程.doc

    - **连接数据库**:使用JDBC API建立与数据库的连接。 - **执行SQL语句**:通过Statement或PreparedStatement对象执行SQL命令。 - **处理结果集**:使用ResultSet对象遍历查询结果。 通过上述知识点的学习,我们...

    Java面向对象程序设计面向对象程序设计_名词解释

    在Java编程语言中,API的应用尤为广泛,比如JDBC、JavaMail等API允许开发者进行数据库操作、发送电子邮件等。 AWT(Abstract Window Toolkit)是Java的一个图形用户界面工具包,它包含了一组丰富的组件(components...

    JAVA计算机毕业设计题目大全.pdf

    核心知识点包括Java的GUI设计(如Swing或JavaFX)、数据库连接(JDBC)和事务处理。 2. **打飞机游戏**:这类项目主要涉及游戏逻辑设计、动画效果实现、碰撞检测以及分数计算等。Java的图形库如Java2D或JavaFX可...

    平安Java开发面试题.pdf

    平安Java开发面试题的知识点涵盖广泛,从计算机网络到数据库,从设计模式到多线程编程等,体现了对Java开发者全面考察的要求。以下是根据给出的文件【部分内容】所提取的详细知识点: 1. **计算机网络与网络协议**...

    JDK 6.0.zip

    6. **数据库连接池**:JDBC 4.0引入了连接池的自动管理,简化了数据库连接的管理。 7. **元注解**:元注解的引入使得开发者可以在编译时或运行时处理注解,扩展了注解的使用范围。 8. **并发工具**:提供了一套新...

    jdk16_8002_20200815.dmg.zip

    3. **Java Database Connectivity (JDBC) 4.0**:引入了自动发现数据库驱动和更强的连接池管理。 4. **Java Management Extensions (JMX)**:改进了远程监控和管理功能。 5. **动态语言支持**:通过JSR 223引入了对...

    传智播客视频JavaSE学习笔记

    反射技术广泛应用于框架和库的开发中,如Spring框架依赖注入、JDBC数据库连接等。 ### 正则表达式 正则表达式是一种用于匹配字符串的强大工具,可用于验证输入数据格式、文本搜索和替换等,Java中的`Pattern`和`...

    JDK6API中文手册

    九、JDBC与数据库连接 JDBC API在JDK6中得到了进一步完善,支持预编译的PreparedStatement对象的批处理,提高了数据库操作的效率。 十、安全管理 JDK6的安全模型更加成熟,通过`java.security`包提供的类和接口,...

Global site tag (gtag.js) - Google Analytics