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.
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.
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
This policy contains information about your privacy. By posting, you are declaring that you understand this policy:
- Your name, rating, website address, town, country, state and comment will be publicly displayed if entered.
- Aside from the data entered into these form fields, other stored data about your comment will include:
- Your IP address (not displayed)
- The time/date of your submission (displayed)
- Your email address will not be shared. It is collected for only two reasons:
- Administrative purposes, should a need to contact you arise.
- To inform you of new comments, should you subscribe to receive notifications.
- A cookie may be set on your computer. This is used to remember your inputs. It will expire by itself.
This policy is subject to change at any time and without notice.
These terms and conditions contain rules about posting comments. By submitting a comment, you are declaring that you agree with these rules:
- Although the administrator will attempt to moderate comments, it is impossible for every comment to have been moderated at any given time.
- You acknowledge that all comments express the views and opinions of the original author and not those of the administrator.
- You agree not to post any material which is knowingly false, obscene, hateful, threatening, harassing or invasive of a person's privacy.
- The administrator has the right to edit, move or remove any comment for any reason and without notice.
Failure to comply with these rules may result in being banned from submitting further comments.
These terms and conditions are subject to change at any time and without notice.
- Data Science
- Android
- React Native
- AJAX
- ASP.net
- C
- C++
- C#
- Cocoa
- Cloud Computing
- HTML5
- Java
- Javascript
- JSF
- JSP
- J2ME
- Java Beans
- EJB
- JDBC
- Linux
- Mac OS X
- iPhone
- MySQL
- Office 365
- Perl
- PHP
- Python
- Ruby
- VB.net
- Hibernate
- Struts
- SAP
- Trends
- Tech Reviews
- WebServices
- XML
- Certification
- Interview
categories
Related Tutorials
Handling Duplicate Form Submissions in Struts
Guidelines for Struts Application Development
Configuring JDBC DataSources in Struts
When is the best time to validate input in Struts
Simple example of using the requiredif Validator rule in Struts
How to prepopulate a form in Struts
Using JavaScript to submit a form in Struts
FAQ: Why are my checkboxes not being set from ON to OFF?
FAQ: Why was reload removed from Struts (since 1.1)?
Comments