Ah a small comment... The Struts DataSource should not be used, I agree;
the J2EE container DataSource should be used; but it will not be
removed for a while AFIAK.
(Deprecated just means it might be removed in some futre version. Just
like hopefully bean, logic and html:link get deprecated in 2.0 in favor
of JSTL. It's just a nudge from developers (of which I am not one) for
you to start considering the better alternatives. I even think Java
should deprecate Connection , ResultSet and java.util.Date in favor of
DataSource, RowSet and Calendar)
Poolman is very, very nice... I used it before 2001; when I switched to
RowSet (before I started using a SQL based DAO). DAO is best thing to do
now, and all the DB issues would disapper.
.V
Edgar P Dollin wrote:
Don't spend the time to get DataSource working. It is deprecated and will
be removed from struts in 1.2. I use Poolman at sourceforge (I highly
reccomend it for non-j2ee projects). Most others use the DataSource
supplied with the container.
Edgar
-Original Message-
From: Caroline Jen [mailto:[EMAIL PROTECTED]
Sent: Monday, December 08, 2003 4:29 PM
To: Struts Users Mailing List
Subject: Re: HELP: about to get datasource of struts and pass to logic
beans...
There are lots of classes involved. I will give you
an example:
1. my LogonAction calls EditorService.java (business
delegate)
2. EditorService.java calls MySQLEditorDAO.java (data
access object implements EditorDAO.java, which is a
data access interface)
3. the MySQLEditorDAO.java returns EditorBean.java (a
Java bean with three properties)
Here is my LogonAction.java:
package org.apache.artimus.logon;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionError;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionServlet;
import org.apache.artimus.lang.Tokens;
public final class LogonAction extends Action {
public ActionForward execute(ActionMapping
mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws java.lang.Exception {
// Obtain username and password from web tier
String username = ((LogonForm)
form).getUsername();
String password = ((LogonForm)
form).getPassword();
EditorService service = new EditorService();
EditorBean editor = service.findEditorData(
username );
HttpSession session = request.getSession();
session.setAttribute( "editor", editor );
// Log this event, if appropriate
if (servlet.getDebug() >= Tokens.DEBUG) {
StringBuffer message =
new StringBuffer("LogonAction: User
'");
message.append(username);
message.append("' logged on in session ");
message.append(session.getId());
servlet.log(message.toString());
}
// Return success
return (mapping.findForward(Tokens.VALID));
}
} // End LogonAction
Here is the EditorService.java:
package org.apache.artimus.logon;
import org.apache.artimus.logon.dao.*;
public class EditorService
{
EditorDAO ed = new MySQLEditorDAO();
public EditorBean findEditorData( String username )
{
return ed.findEditor( username );
}
}
Here is the EditorDAO.java:
package org.apache.artimus.logon.dao;
import org.apache.artimus.logon.EditorBean;
import
org.apache.artimus.logon.exceptions.EditorDAOSysException;
public interface EditorDAO.java
{
public EditorBean findEditor( String username )
throws EditorDAOSysException;
}
Here is the MySQLEditorDAO.java:
package org.apache.artimus.logon.dao;
import java.io.IOException;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import java.sql.SQLException;
import org.apache.artimus.logon.EditorBean;
import
org.apache.artimus.logon.exceptions.EditorDAOSysException;
import org.apache.artimus.ConnectionPool.DBConnection;
public class MySQLEditorDAO implements EditorDAO
{
// Here the return type is EditorBean
public EditorBean findEditor( String username )
throws EditorDAOSysException
{
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
try
{
conn = DBConnection.getDBConnection();
stmt = conn.createStatement();
String query = "SELECT user_role,
journal_category FROM members WHERE user_name = '" +
username + "'";
rs = stmt.executeQuery( query );
if (rs.next())
{
return new EditorBean( username,
rs.getString( "user_role" ), rs.getString(
"j