JDBC URL属性如何工作

时间:2011-01-26 23:10:32

标签: url jdbc properties

在我的应用程序架构中,一个URL指向一个公司数据源。因此,为了解决在同一个数据库中拥有多个公司的问题,我想探索为JDBC Url添加额外参数的可能性。

基本上我想做的是与以下网址建立连接。

  

JDBC:SQLSERVER://192.168.128.2:1433;的databaseName = businessesDB;的 companyId = 25

我测试了将该自定义参数添加到jdbc URL不会影响连接。但我的问题是如何在我的应用程序上访问companyId属性。

我可以使用从数据源获得的Connection对象检索该属性的值吗?

2 个答案:

答案 0 :(得分:0)

看起来您正在使用Microsoft SQL Server驱动程序。查看http://msdn.microsoft.com/en-us/library/ms378988.aspx,您应该能够使用 applicationName 属性来标识正在使用该连接的企业。这样做的好处是SQL Server分析和日志记录工具也将识别连接中的业务。

为了以编程方式获取applicationName,或者在您的情况下,您可以使用java.sql.Driver.getPropertyInfo(url,properties)。

答案 1 :(得分:0)

我将发布如何解决它。但我仍然觉得应该有一个更好的解决方案,无论实际的数据库如何都可以工作,因为Mysql Jdbc URL将它们的params分开,就像一个http URL和SQL Server JDBC驱动程序期望属性与;字符。毕竟那就是JDBC存在的原因。

使用应用于URL的正则表达式,我得到了这样的参数:

        String url = company.getJdbcUrl();

        Pattern p = Pattern.compile("companyId=(\\d+)");
        Matcher m = p.matcher(url);

        if (m.find()) {
            companyId = m.group(1);
            _logger.info("companyId found");
        } else {
            _logger.error("could not get companyId");
        }