Datasource Struts 1.2.x proyecto web eclipse

3

Por admin | Para la categoría de struts | noticia del 14-12-2009

Tutorial de Struts

Enlace al proyecto struts Datasource

El datasource, se utiliza para establecer un pool de conexiones que implementan la interface javax.sql.DataSource. Permitiendo establecer una configuración para las bases de datos utilizadas en las aplicaciones de struts, y solamente desde las clases de negocio llamar a esta configuración para poder utilizarlas.

Este tipo de configuración es válido para las versiones de struts 1.1 hasta la versión 1.2.9. Este ejemplo a diferencia de los anteriores de struts en el que se utilizaba la versión 1.3.10, está realizado con la 1.2.9.

Datasource Struts

La declaración del datasource va dalante de los beans para la dtd struts-config_1_2.dtd

1
2
3
4
5
6
7
8
<!DOCTYPE struts-config PUBLIC
          "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN"
          "http://jakarta.apache.org/struts/dtds/struts-config_1_2.dtd">
 
<struts-config>
 
<!-- ============================================ Data Source Configuration -->
<data-sources>

Configuración del archivo struts-config.xml para el datasource

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<data-sources>
 
   <data-source type="org.apache.tomcat.dbcp.dbcp.BasicDataSource">
 
   <set-property property="driverClassName"   value="com.mysql.jdbc.Driver" />
 
 
   <set-property property="url" value="jdbc:mysql://localhost:3306/libros_jdbc" />
 
   <set-property property="username" value="root"/>
 
   <set-property property="password" value="root"/>
 
   <set-property property="maxActive" value="10"/>
 
   <set-property property="defaultReadOnly"  value="false" />
 
   <set-property property="defaultAutoCommit" value="true" />
 
   <set-property property="validationQuery" value="SELECT COUNT(*) FROM libros" />
 
   </data-source>
 
</data-sources>

configuración de los actions para el struts-config.xml

Creamos los actions para el ejemplo, simplemente redireccionamos la acción Welcome.do a la acción ‘conexión’. Si se establece la conexión correctamente se redirecciona a la página

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<!-- =========================================== Action Mapping Definitions -->
 
    <action-mappings>
            <!-- Default "Welcome" action -->
            <!-- Forwards to Welcome.jsp -->
        <action
            path="/Welcome"
            forward="/conexion.do"/>
 
        <action 
 
           path="/conexion"
           type="accion.accionBaseDatos"
           scope="request">
           <forward name="satisfactoria" path="/pages/registroSatisfactorio.jsp"/>
           <forward name="fallida" path="/pages/fallida.jsp"/>
 
        </action>

Código de la página fallida.jsp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
<%@taglib uri="/tags/struts-html" prefix="html" %>
<%@taglib uri="/tags/struts-bean" prefix="bean" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Conexion Fallida</title>
<html:base/>
<link rel="stylesheet" type="text/css" href="../css/estilo.css"/>
</head>
<body>
  <div id="contenedor">
   <div id="contenido">
      <p> conexion fallida </p>
   </div>
   <div id="pie">
    <p> www.railsymas.com </p>
   </div>
  </div>
</body>
</html>

Código de la página registro satisfactorio

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
<%@taglib uri="/tags/struts-html" prefix="html" %>
<%@taglib uri="/tags/struts-bean" prefix="bean" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html:html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Consulta a la base de datos</title>
<html:base/>
<link rel="stylesheet" href="../css/estilo.css" type="text/css"/>
</head>
<body>
<div id="contenedor">
  <div id="contenido">
  <p> Establecemos conexion </p>
  </div>
  <div id="pie">
    <p> www.railsymas.com </p>
  </div>
</div>
</body>
</html:html>

resultado de la ejecución por pantalla

strut1.2datasource

Código de la clase java accionBaseDatos dentro del package de acciones

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
package accion;
 
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;
 
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.Statement;
import java.sql.ResultSet;
import java.sql.SQLException;
 
public class accionBaseDatos extends Action {
 
	private DataSource datasource;
	private Connection conexion;
	private String devolucion;
	private Statement sentenciaSql;
	private ResultSet resultado;
 
	public ActionForward execute ( ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response )
	{
 
		try
		{
			datasource = getDataSource(request);
			conexion = datasource.getConnection();
 
			sentenciaSql = conexion.createStatement();
 
			resultado = sentenciaSql.executeQuery("Select * From libros");
 
			while (resultado.next())
			{
				System.out.println(resultado.getString("autor"));
			}
 
			if (conexion !=null)
			{
				devolucion="satisfactoria";
 
 
			}
 
			conexion.close();
		}
 
		catch (SQLException e)
		{
 
		  devolucion="fallida";
		}
 
 
 
		return mapping.findForward(devolucion);
 
	}		
 
}

resultado en consola de la ejecucion, los autores de la base de datos de libros_jdbc para la tabla libros

1
2
3
4
5
6
7
8
9
10
11
12
INFO: Tiles definition factory found for request processor ''.
autor1
autor2
autor3
autor4
autor5
autor6
autor7
autor7
autor8
autor9
autor10

Comentarios (3)

Muy bueno el ejemplo!!!, lo que quisiera saber es como hago para:
Datasource Struts 1.3.x proyecto web eclipse??
han colgado una manual pero sale un error al ingresar a la página, saludos.

En los próximos dias se colgará un tutorial sobre datasource en 1.3.10

ok!! muchas gracias, estaré al pendiente. Una vez felicitaciones!!! muy didáctico todo….saludos


Comentarios cerrados automáticamente al pasar más de un año