要连接到执行的数据库: 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();
}
}
}