Programming Tutorials

Configuring JDBC DataSources in Struts

By: Barbara in Struts Tutorials on 2008-12-10  

You can define any number of JDBC javax.sql.DataSource objects for the application in the configuration file under the element <data-sources>. Every data source is defined within the <data-sources> element using the <data-source> element. The <data-source> element defines a number of attributes, the most important of which are listed in Table below.

<data-source> Attributes

Element Attribute

Description

key

The name used by Action classes for looking up this connection. The default is org.apache.struts.action.DATA_SOURCE (defined in the constant org.apache.struts.Globals.DATA_SOURCE_KEY).

type

The name of the actual class that implements the DataSource interface.

You supply any further configuration information using nested <set-property> tags. You can use these tags to set JavaBeans properties on the DataSource; they take property and value attributes to specify the property to set and the value to which to set it.

The default attribute values for <data-source> cause it to instantiate a GenericDataSource and give it the key. The GenericDataSource class wraps an ordinary JDBC Driver and turns it into a DataSource with a database connection pool. This class has a number of JavaBean properties to configure, the most important of which are listed in Table below.

<data-source> Attributes

Element Attribute

Description

description

A description of this DataSource.

driverClass

The fully qualified JDBC Driver class used to access the database.

url

The JDBC URL used to access the database.

user

The username used to log into the database.

password

The password used to log into the database.

maxCount

The maximum number of connections in the connection pool.

readOnly

If true, the Connections returned by the DataSource re read-only; this has performance advantages with some databases.

autoCommit

If true, the Connections returned by the DataSource automatically commit the transaction after every SQL statement.

The following excerpt illustrates how you'll use these attributes to define a DataSource for the pizza MySQL database:

<data-sources>
  <data-source key="pizza">
    <set-property property="driverClass"
                   value="com.mysql.jdbc.Driver" />
    <set-property property="url"
                   value="jdbc:mysql://localhost/pizza" />
  </data-source>
</data-sources>

The DataSource will be bound in the application context under the name pizza. You can use it in the JSTL <sql:query>, <sql:update>, and <sql:transaction> tags:

<sql:query var="myobject"
            dataSource="${applicationScope.pizza}">

You can also retrieve it from within a Struts action using the getDataSource() method:

DataSource ds = getDataSource(request, "pizza");
Connection con = ds.getConnection();





Add Comment

* Required information
1000

Comments

No comments yet. Be the first!

Most Viewed Articles (in Struts )

Latest Articles (in Struts)