08 octubre, 2007

JAFramework

.
Acceso a Bases de Datos

JAF incluye una factory de DataSources JDBC a través de la cual podemos establecer conexiones contra una base de datos. Lo configuramos de la siguiente manera:

descriptor.xml
   1:
2:<jaframework xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="jaframework.xsd">
3:
4: <jdbc>
5: <data-source name="HSQL"
6: driver="org.hsqldb.jdbcDriver"
7: url="jdbc:hsqldb:hsql://localhost/xdb"
8: user="sa"
9: password=""
10: pool-size="4" />
11: </jdbc>
12:
13:</jaframework>
14:

Dentro del tag jdbc definimos uno o varios data-source. Un data-source especifica los parámetros para establecer la conexión JDBC con la base de datos. El parámetro pool-size indica la cantidad de conexiones que serán pre-instanciadas al momento de crear el data-source. Es el tamaño del pool de conexiones.

Si en el descriptor tuviésemos también tags <driver> entonces el tag <jdbc> debe ir a continuación de estos.


Para probar el data-source lo haremos con el siguiente programa.

TestConnection.java
   1:
2:package demo;
3:
4:import java.sql.Connection;
5:import java.sql.ResultSet;
6:import java.sql.Statement;
7:
8:import javax.sql.DataSource;
9:
10:import framework.JAConnectionFactory;
11:import framework.JAFactory;
12:
13:public class TestConnection
14:{
15: public static void main(String[] args)
16: {
17: JAConnectionFactory factory = JAFactory.getConnectionFactory();
18:
19: // levanto el descriptor
20: factory.load("descriptor.xml");
21:
22: Connection con = null;
23: Statement stm = null;
24: ResultSet rs = null;
25:
26: try
27: {
28: // pido el data-source
29: DataSource ds = factory.getDataSource();
30:
31: // ahora le pido la conexion
32: con = ds.getConnection();
33:
34: // la utilizo
35: String sql = "";
36: sql+="SELECT deptno,dname,loc ";
37: sql+="FROM dept ";
38:
39: stm = con.createStatement();
40: rs = stm.executeQuery(sql);
41:
42: while( rs.next() )
43: {
44: System.out.print(rs.getInt("deptno") + ", ");
45: System.out.print(rs.getString("dname") + ", ");
46: System.out.println(rs.getString("loc"));
47: }
48: }
49: catch( Exception ex )
50: {
51: ex.printStackTrace();
52: throw new RuntimeException(ex);
53: }
54: finally
55: {
56: try
57: {
58: if( rs != null ) rs.close();
59: if( stm != null ) stm.close();
60:
61: // debo cerrar la conexion ya que al
62: // cerrarla la estoy devolviendo al
63: // pool de conexiones
64: if( con != null ) con.close();
65: }
66: catch( Exception ex )
67: {
68: ex.printStackTrace();
69: throw new RuntimeException(ex);
70: }
71: }
72: }
73:}
74:



..............................................



.

No hay comentarios.: