Ver Mensaje Individual
  #15 (permalink)  
Antiguo 16/10/2009, 17:40
Avatar de HackmanC
HackmanC
 
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 3 meses
Puntos: 260
Sonrisa Respuesta: Conexion Cerrada ayuda

Hola,

Je.je .. mi estimado amigo, el problema está bastante extraño como lo presentas. Yo copie tu código en un proyecto con con Microsoft SQL Server 2005, NetBeans 6.7.1, Microsoft SQL Server JDBC Driver 2.0, JDK 6.algo, etc.

El problema es que funciona bien ... si elimino las partes que ya te mencioné anteriormente, es decir le elimino lo de 'static' a 'public void ingresarCliente', y comento la conexión duplicada que tienes, // Connection con = null;

De allí en adelante funciona perfectamente,
Este es el código que probé basado exclusivamente en el tuyo,

Código Java:
Ver original
  1. public static void main(String[] args) {
  2.         try {
  3.             ClienteDao c = ClienteDao.getClienteDao(Conexion.getConnection());
  4.             c.ingresarCliente(new Cliente("Prueba 1"));
  5.             c.ingresarCliente(new Cliente("Prueba 2"));
  6.             c.ingresarCliente(new Cliente("Prueba 3"));
  7.             c.ingresarCliente(new Cliente("Prueba 4"));
  8.         } catch (Exception ex) {
  9.             ex.printStackTrace();
  10.         }
  11.     }
  12.  
  13. ----------
  14.  
  15. import java.sql.Connection;
  16. import java.sql.DriverManager;
  17.  
  18. public class Conexion {
  19.     public static Connection getConnection() throws Exception {
  20.         Connection con = null;
  21.         String url = "jdbc:sqlserver://localhost:2403;databaseName=Test";
  22.         String usuario = "HackmanC";
  23.         String clave = "1";
  24.         Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
  25.         con = DriverManager.getConnection(url, usuario, clave);
  26.         return con;
  27.     }
  28. }
  29.  
  30. ----------
  31.  
  32. import java.sql.Connection;
  33. import java.sql.PreparedStatement;
  34. import java.sql.SQLException;
  35.  
  36. public class ClienteDao {
  37.  
  38.     private Connection con;
  39.  
  40.     public ClienteDao(Connection con) {
  41.         this.con = con;
  42.     }
  43.  
  44.     public void ingresar(Object object) throws SQLException {
  45.         Cliente cliente = (Cliente) object;
  46.         String Sql = "INSERT INTO PRUEBA(NOMBRE) VALUES(?)";
  47.         PreparedStatement pst = con.prepareStatement(Sql);
  48.         pst.setString(1, cliente.getNombre());
  49.         pst.executeUpdate();
  50.     }
  51.  
  52.     public void ingresarCliente(Cliente cliente) throws Exception {
  53.         // Connection con = null;
  54.         try {
  55.             con = Conexion.getConnection();
  56.             ClienteDao clienteDaos = getClienteDao(con);
  57.             clienteDaos.ingresar(cliente);
  58.         } catch (Exception e) {
  59.             e.printStackTrace();
  60.             throw e;
  61.         } finally {
  62.             if (con != null) {
  63.                 con.close();
  64.             }
  65.         }
  66.     }
  67.     private static ClienteDao clienteDao;
  68.  
  69.     public static ClienteDao getClienteDao(Connection con) {
  70.         if (clienteDao == null) {
  71.             clienteDao = new ClienteDao(con);
  72.         }
  73.         return clienteDao;
  74.     }
  75. }
  76.  
  77. ----------
  78.  
  79. public class Cliente {
  80.     private String nombre;
  81.     public Cliente(String nombre) {
  82.         this.nombre = nombre;
  83.     }
  84.     public String getNombre() {
  85.         return nombre;
  86.     }
  87.     public void setNombre(String nombre) {
  88.         this.nombre = nombre;
  89.     }
  90. }

Si tu código es realmente diferente, puedes subirlo a algún lugar y lo revisamos, pero es muy probable que el problema sea de tu configuración de JDBC y MSSQL, ya hice todas las pruebas necesarias y el código así como está anteriormente, basado en el tuyo funciona perfectamente.

Saludos,

ps:

Si deseas puedes subir el código que mencionas para revisarlo, pero supongo que ha de ser el mismo que pusiste aquí anteriormente.