JDBC的URL是啥
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JDBC的URL是啥相关的知识,希望对你有一定的参考价值。
是跟数据库进行连接的时候,用来连接到指定远程数据库标识符。
可以在该URL中指定连接用户名和密码,同时,对于不同的数据库有不同的标示。例如连接一个本地机器上的SQLServer数据库的URL如下:
jdbc:sqlserver://localhost;user=MyUserName;password=*****;
然后建立连接:Connection con = DriverManager.getConnection("jdbc:sqlserver://localhost;user=MyUserName;password=*****;");
扩展资料:
常见的数据库连接的URL写法
1、—oracle—
驱动:oracle.jdbc.driver.OracleDriver
URL:jdbc:oracle:thin:@machine_name:port:dbname
注:machine_name:数据库所在的机器的名称;
port:端口号,默认是1521
2、—mysql—
驱动:com.mysql.jdbc.Driver
URL:jdbc:mysql://machine_name:port/dbname
注:machine_name:数据库所在的机器的名称;
port:端口号,默认3306
参考技术A 不同的数据库的URL不同。大致如下:1. Oracle url示例:"jdbc:oracle:thin:@localhost:1521:orcl"
2. Access url示例:"jdbc:odbc:HANFENG"
3. SQL Server url示例:"jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=pubs"
4. DB2 url示例:"jdbc:db2://localhost:5000/sample"
5. Informix url示例:"jdbc:informix-sqli://123.45.67.89:1533/testDB:INFORMIXSERVER=myserver"
6. Sybase url示例:"jdbc:sybase:Tds:localhost:5007/tsdata"
7. MySQL url示例:"jdbc:mysql://localhost/softforum?user=soft&password=soft1234&useUnicode=true&characterEncoding=8859_1"
8. PostgreSQL url示例:"jdbc:postgresql://localhost/soft" 参考技术B 那得看你连接的是啥数据库了,mysql的是:url="jdbc:mysql://主机地址:端口号:数据库名",如:url=url="jdbc:mysql://localhost:3306:mydatabase";sqlserver的是:url = "jdbc:sqlserver://主机地址:端口号:数据库名"; 参考技术C 我就来个补充吧,比如Oracle数据库的
String URL="jdbc:oracle:thin:@127.0.0.1(或者//localhost):1521(即端口号):Orl(即数据库名)"; 参考技术D 我数据库用的是oracle,对应的url是:jdbc:oracle:thin:@192.168.1.44(ip):1521(端口号):JSY(数据库名)
jdbc 中管理丢失连接的标准方法是啥?
【中文标题】jdbc 中管理丢失连接的标准方法是啥?【英文标题】:What the standard way in jdbc to manage lost connection?jdbc 中管理丢失连接的标准方法是什么? 【发布时间】:2012-01-25 02:07:13 【问题描述】:我的应用程序有时会失去与 MySQL 数据库的连接。 我认为好的解决方案是安排一些计时器在一段时间后尝试重新连接。 它可以做得更好吗?可能是尝试连接到数据库的单独线程?还是存在标准做法? 谢谢。
【问题讨论】:
您可能会找到合适的答案here。 使用像Apache DBCP这样的连接池 【参考方案1】:JDBC 是开始构建 java 数据库应用程序的好方法,但管理对象映射和连接/事务会很快导致大量样板文件和重写许多程序员已经多次编写的逻辑。
预计您应该正常丢失/关闭连接,除非您有一个高吞吐量的应用程序,在这种情况下,您可能会保持多个连接处于活动状态(这称为连接池)。
基本上有 3 种“高级”方法来维护有效的连接和事务:
1) 最简单的解决方案是检查您何时重用连接以确保它有效,或者每次都重新打开它。
2) 更复杂的解决方案是使用连接池机制,例如 apache http://commons.apache.org/dbcp/ dbcp 库。
3) 最后,在我看来,最可维护的解决方案是使用像 ibatis/hibernate 这样的 JDBC 框架,它将为您提供一个简单的、声明性的接口来管理对象关系映射/事务/数据库状态----同时也透明地为你维护连接逻辑。
ALSO:如果对象关系映射不是您的菜,那么您可以使用 Apache 的 DBUtils 等框架来管理查询和连接,而不会妨碍重量级的数据映射。
【讨论】:
【参考方案2】:JDBC 是一个简单的API,用于抽象不同数据库系统的操作。它使某些东西变得统一,例如与 java 类型不同的原生类型。
但是,丢失的连接是另一个大问题。使用连接池库比自己写一个新的要好。从零开始实现一个没有bug的连接池,细节太多了。
考虑使用成熟的库:
Commons-DBCP bonecp 等Commons DBCP 基于 Commons Pool。 您应该了解它们的可配置选项。 bonecp 是另一个新的连接池,没有锁是它的优势。
验证的 SQL 字符串对于检查连接是死是活很重要。 通过验证字符串集启用丢失连接检查。
这里是 dbcp 配置页面: http://commons.apache.org/dbcp/configuration.html
上面写着:
注意 - 要使 true 值产生任何影响,validationQuery 参数必须设置为非空字符串。
例如:
dataSource.setValidationQuery(isDBOracle() ? "select 1 from dual" : "select 1");
dataSource.setTestWhileIdle(true);
dataSource.setTestOnReturn(true);
dataSource.setRemoveAbandoned(true);
dataSource.setRemoveAbandonedTimeout(60 * 3 /* 3 mins */);
dataSource.setMaxIdle(30);
dataSource.setMaxWait(1000 * 20 /* 20 secs*/);
提醒:如果你在 weblogic 中使用 Common DBCP,不要忘记服务器中较旧的 Commons 库,它会驱动你的应用程序使用不同的版本。 prefer-web-inf-classes 设置将为您提供帮助。
【讨论】:
以上是关于JDBC的URL是啥的主要内容,如果未能解决你的问题,请参考以下文章
micronaut 中的 H2 默认 jdbc url 是啥