javax.annotation.sql
注释类型 DataSourceDefinition


@Target(value=TYPE)
@Retention(value=RUNTIME)
public @interface DataSourceDefinition

Annotation used to define a container DataSource and be registered with JNDI. The DataSource may be configured by setting the annotation elements for commonly used DataSource properties. Additional standard and vendor-specific properties may be specified using the properties element.

The data source will be registered under the name specified in the name element. It may be defined to be in any valid Java EE namespace, and will determine the accessibility of the data source from other components.

A JDBC driver implementation class of the appropriate type, either DataSource, ConnectionPoolDataSource, or XADataSource, must be indicated by the className element. The availability of the driver class will be assumed at runtime.

The url property should not be specified in conjunction with other standard properties for defining the connectivity to the database. If the url property is specified along with other standard DataSource properties such as serverName and portNumber, the more specific properties will take precedence and url will be ignored.

Vendors are not required to support properties that do not normally apply to a specific data source type. For example, specifying the transactional property to be true but supplying a value for className that implements a data source class other than XADataSource may not be supported.

Vendor-specific properties may be combined with or used to override standard data source properties defined using this annotation.

DataSource properties that are specified and are not supported in a given configuration or cannot be mapped to a vendor specific configuration property may be ignored.

Examples:

   @DataSourceDefinition(name="java:global/MyApp/MyDataSource",
      className="com.foobar.MyDataSource",
      portNumber=6689,
      serverName="myserver.com",
      user="lance",
      password="secret"
   )
 
 

Using a URL:

  @DataSourceDefinition(name="java:global/MyApp/MyDataSource",
    className="org.apache.derby.jdbc.ClientDataSource",
    url="jdbc:derby://localhost:1527/myDB",
    user="lance",
    password="secret"
 )
 

An example lookup of the DataSource from an EJB:

 @Stateless
 public class MyStatelessEJB {
   @Resource(lookup="java:global/MyApp/myDataSource")
    DataSource myDB;
      ...
 }
 

从以下版本开始:
Common Annotations 1.1
另请参见:
DataSource, XADataSource, ConnectionPoolDataSource

必需元素摘要
 String className
          DataSource implementation class name which implements: javax.sql.DataSource or javax.sql.XADataSource or javax.sql.ConnectionPoolDataSource.
 String name
          JNDI name by which the data source will be registered.
 
可选元素摘要
 String databaseName
          Name of a database on a server.
 String description
          Description of this data source
 int initialPoolSize
          Number of connections that should be created when a connection pool is initialized.
 int isolationLevel
          Isolation level for connections.
 int loginTimeout
          Sets the maximum time in seconds that this data source will wait while attempting to connect to a database.
 int maxIdleTime
          The number of seconds that a physical connection should remain unused in the pool before the connection is closed for a connection pool.
 int maxPoolSize
          Maximum number of connections that should be concurrently allocated for a connection pool.
 int maxStatements
          The total number of statements that a connection pool should keep open.
 int minPoolSize
          Minimum number of connections that should be allocated for a connection pool.
 String password
          Password to use for connection authentication.
 int portNumber
          Port number where a server is listening for requests.
 String[] properties
          Used to specify Vendor specific properties and less commonly used DataSource properties such as: dataSourceName networkProtocol propertyCycle roleName Properties are specified using the format: propertyName=propertyValue with one property per array element.
 String serverName
          Database server name.
 boolean transactional
          Set to false if connections should not participate in transactions.
 String url
          A JDBC URL.
 String user
          User name to use for connection authentication.
 

元素详细信息

name

public abstract String name
JNDI name by which the data source will be registered.

从以下版本开始:
1.1

className

public abstract String className
DataSource implementation class name which implements: javax.sql.DataSource or javax.sql.XADataSource or javax.sql.ConnectionPoolDataSource.

从以下版本开始:
1.1

description

public abstract String description
Description of this data source

从以下版本开始:
1.1
默认值:
""

url

public abstract String url
A JDBC URL. If the url property is specified along with other standard DataSource properties such as serverName and portNumber, the more specific properties will take precedence and url will be ignored.

从以下版本开始:
1.1
默认值:
""

user

public abstract String user
User name to use for connection authentication.

从以下版本开始:
1.1
默认值:
""

password

public abstract String password
Password to use for connection authentication.

从以下版本开始:
1.1
默认值:
""

databaseName

public abstract String databaseName
Name of a database on a server.

从以下版本开始:
1.1
默认值:
""

portNumber

public abstract int portNumber
Port number where a server is listening for requests.

从以下版本开始:
1.1
默认值:
-1

serverName

public abstract String serverName
Database server name.

从以下版本开始:
1.1
默认值:
"localhost"

isolationLevel

public abstract int isolationLevel
Isolation level for connections. The Isolation level must be one of the following:

Default is vendor-specific.

从以下版本开始:
1.1
默认值:
-1

transactional

public abstract boolean transactional
Set to false if connections should not participate in transactions.

Default is to enlist in a transaction when one is active or becomes active.

从以下版本开始:
1.1
默认值:
true

initialPoolSize

public abstract int initialPoolSize
Number of connections that should be created when a connection pool is initialized.

Default is vendor-specific

从以下版本开始:
1.1
默认值:
-1

maxPoolSize

public abstract int maxPoolSize
Maximum number of connections that should be concurrently allocated for a connection pool.

Default is vendor-specific.

从以下版本开始:
1.1
默认值:
-1

minPoolSize

public abstract int minPoolSize
Minimum number of connections that should be allocated for a connection pool.

Default is vendor-specific.

从以下版本开始:
1.1
默认值:
-1

maxIdleTime

public abstract int maxIdleTime
The number of seconds that a physical connection should remain unused in the pool before the connection is closed for a connection pool.

Default is vendor-specific

从以下版本开始:
1.1
默认值:
-1

maxStatements

public abstract int maxStatements
The total number of statements that a connection pool should keep open. A value of 0 indicates that the caching of statements is disabled for a connection pool.

Default is vendor-specific

从以下版本开始:
1.1
默认值:
-1

properties

public abstract String[] properties
Used to specify Vendor specific properties and less commonly used DataSource properties such as:

Properties are specified using the format: propertyName=propertyValue with one property per array element.

从以下版本开始:
1.1
默认值:
{}

loginTimeout

public abstract int loginTimeout
Sets the maximum time in seconds that this data source will wait while attempting to connect to a database. A value of zero specifies that the timeout is the default system timeout if there is one; otherwise, it specifies that there is no timeout.

Default is vendor-specific.

从以下版本开始:
1.1
默认值:
0


Copyright © 2013. All Rights Reserved.