0

要连接到执行的数据库: 1.-创建一个 conexionX 类,我在其中放置数据连接(无连接池) 2.-在 DAO 类中从 conexionX 类获取连接,以便操作数据库。

我的问题是如何使用连接池来做到这一点?

我尝试了以下方法,但不起作用

PoolConexiones.java

不是一个 servlet 是一个普通的类

package Modelo;

import java.sql.*;
import javax.sql.*;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.naming.*;

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

public class PoolConexiones extends HttpServlet {

    private  DataSource sourceDb = null;
    private  Connection con=null;
    @Override
    public void init(ServletConfig config) throws ServletException {
        // TODO Auto-generated method stub
        super.init(config);

        try {
            // recuperamos el contexto inicial y la referencia a la fuente de
            // datos
            Context ctx = new InitialContext();
            sourceDb = (DataSource) ctx.lookup("java:comp/env/jdbc/Practica5");
        } catch (Exception e) {
            throw new ServletException(
                    "Imposible recuperar java:comp/env/jdbc/tutoriales", e);
        }
    }

    public  Connection getConnection() {

        try {
            synchronized (sourceDb) {
                con=sourceDb.getConnection();
            }
            if(con==null){
                  throw new ServletException("Problemas con la conexion");
            }
        } catch (SQLException e) {
            e.printStackTrace();
        } catch (ServletException e) {


    // TODO Auto-generated catch block
        e.printStackTrace();
    }
    return con;
}
public void CerraConexion(){

    try {
        con.close();
    } catch (SQLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}

}

4

0 回答 0