RE: HELP: about to get datasource of struts and pass to logic bea ns...

2003-12-08 Thread Edgar P Dollin
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(
journal_category ) );
 }
 else
 {
System.out.println( invalid user name );
return null;
 }
  } 
  catch (SQLException se)
  {
 throw new
EditorDAOSysException(SQLException:  +
se.getMessage());
  }
  finally
  {
 if ( conn != null )
 {
try
{
   rs.close();
   rs = null;
   stmt.close();
   stmt = null;
   conn.close();
}
catch( SQLException sqlEx )
{
   System.out.println( Problem occurs
while closing  + sqlEx );
}
conn = null;
 }   
  }
   }
}

Here is the EditorBean.java:

package 

Re: HELP: about to get datasource of struts and pass to logic bea ns...

2003-12-08 Thread Vic Cekvenich
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(