JAVA EE6的DataSourceDefinition注释

许多Java EE 6的新功能之一,就是为DataSourceDefinition的注释提供支持。

 

DataSourceDefinition注释提供了一种方法来定义一个DataSource和它的JNDI注册。注释提供了常用的DataSource属性的注释内容。更多的标准和供应商特定的属性也是可以指定的。

 

先看看下面的例子:

@DataSourceDefinition(name = "java:global/MyApp/myDS",
className = "org.apache.derby.jdbc.ClientDataSource",
portNumber = 1527,
serverName = "localhost",
databaseName = "testDB",
user = "lance",
password = "secret",
properties = {"createDatabase=create"}) )

 

数据源将被注册使用name元素指定的值,这可以在任何有效的Java EE的名称空间中定义,这将决定从什么组件的数据源获取。

 

对于properties属性用于指定较少用的DataSource属性的标准,以及供应商指定的属性使用格式:

{"property1=value", "property2=value" ...}

 

使用数据源:

@Resource(lookup = "java:global/MyApp/myDS")
private DataSource ds;

 

你还可以定义使用DataSourceDefinitions注释多个数据源:

 

@DataSourceDefinitions({
  @DataSourceDefinition(name = "java:global/MyApp/myDS",
  className = "org.apache.derby.jdbc.ClientDataSource",
  portNumber = 1527,
  serverName = "localhost",
  databaseName = "testDB21",
  user = "lance",
  password = "secret",
  properties = {"createDatabase=create"}),


  @DataSourceDefinition(name = "java:global/MyApp/myDS2",
  className = "com.mysql.jdbc.jdbc2.optional.MysqlDataSource",
  portNumber = 3306,
  serverName = "localhost",
  databaseName = "dogDB",
  user = "luckyDog",
  password = "shhh",
  properties = {"pedantic=true"})
})

 

在web项目中,你还可以通过在web.xml中添加设置覆盖你原来指定的DataSourceDefinition数据源注释。例如你把原来使用的Java数据库改为MySQL数据库,你可以在web.xml中添加如下属性:

 

<data-source>
        <description>DataSource for MySQL</description>
        <name>java:global/MyApp/myDS</name>
        <class-name>com.mysql.jdbc.jdbc2.optional.MysqlDataSource</class-name>
        <server-name>localhost</server-name>
        <port-number>3306</port-number>
        <database-name>testDB</database-name>
        <user>lance</user>
        <password>secret</password>
        <property>
            <name>x</name>
            <value>y</value>
        </property>
        <property>
            <name>y</name>
            <value>x</value>
        </property>
        <login-timeout>500</login-timeout>
        <transactional>false</transactional>
        <isolation-level>TRANSACTION_READ_COMMITTED</isolation-level>
        <initial-pool-size>2</initial-pool-size>
        <max-pool-size>5</max-pool-size>
        <min-pool-size>1</min-pool-size>
        <max-idle-time>500</max-idle-time>
        <max-statements>100</max-statements>
    </data-source>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值