Foros del Web » Programación para mayores de 30 ;) » Java »

Conectar BD+Servlet y mostrar BD (Netbeans)

Estas en el tema de Conectar BD+Servlet y mostrar BD (Netbeans) en el foro de Java en Foros del Web. Hola!! no se mucho de Java pero me han pedido esto y no se como hacerlo D:!!! En el trabajo ando revisando unas bases y ...
  #1 (permalink)  
Antiguo 22/02/2011, 10:43
 
Fecha de Ingreso: febrero-2011
Mensajes: 10
Antigüedad: 13 años, 2 meses
Puntos: 0
Exclamación Conectar BD+Servlet y mostrar BD (Netbeans)

Hola!! no se mucho de Java pero me han pedido esto y no se como hacerlo D:!!!
En el trabajo ando revisando unas bases y me estan pidiendo que se muestren por ejemplo mi base es de codigos y nombres y quiero esa base la quiero mostrar en el localhost, he intentado haciendolo con un servlet pero no llega a mostrar la base, estoy 100% segura de que lo ando haciendo mal XD.

No se si me puedan guiar como hacer eso ya que todos los manuales de consultas que reviso me indican como hacer una consulta en el servidor y me muestra la base de datos que pido, pero nunca encuentro que solo muestre toda la base de datos.
Agradezco su ayuda
  #2 (permalink)  
Antiguo 22/02/2011, 12:08
 
Fecha de Ingreso: octubre-2008
Mensajes: 118
Antigüedad: 15 años, 7 meses
Puntos: 2
Respuesta: Conectar BD+Servlet y mostrar BD (Netbeans)

Quieres mostrar TODO el contenido de la base de datos? si es asi esto implicara una consulta que relacione todas las tablas o una consulta por tabla.

Para realizar las consultas simplemente tines que realizar la conexion (teniendo el driver de la bd que utilices adjunto en el proyecto, en mi caso mysql) y ejecutar al consulta.

Mas o menso seria esto:

Código:
Class.forName("com.mysql.jdbc.Driver").newInstance();
Connection conexion = DriverManager.getConnection("jdbc:mysql://"+servidor+":"+puerto+"/"+bd, usu, pass);
// en mi caso utilizo preparedStatement
PreparedStatement psQuery1=null;
String strQuery1="CONSULTA SQL";

psQuery1 = (PreparedStatement) conexion.prepareStatement(strQuery1);
ResultSet rs = psQuery1.executeQuery();
while (rs.next()){
// tratamos los datos
//rs.getString, rs.getXXX
}
Espero haberte sido de ayuda.
Un Saludo,
Dani.
  #3 (permalink)  
Antiguo 22/02/2011, 13:29
Avatar de sivadmp  
Fecha de Ingreso: febrero-2011
Ubicación: La Paz - Bolivia
Mensajes: 293
Antigüedad: 13 años, 2 meses
Puntos: 20
Respuesta: Conectar BD+Servlet y mostrar BD (Netbeans)

Hola, puedes utilizar un framework para conectarte y mostrar la información de la base de datos, los frameworks que puedes utilizar son: Spring, Ibatis, Hibernate

en esta dirección encontraras información de como configurar ibatis

[URL="http://mpdeveloper.blogspot.com/2011/02/swing-e-ibatis-framework.html"]http://mpdeveloper.blogspot.com/2011/02/swing-e-ibatis-framework.html[/URL]

o si no tambien puedes utilizar JSTL sql, pero no se recomienda utilizarlo ya que no cumple con la arquitectura MVC
pero por si acaso aqui tienes una pagina donde te explica como configurarlo

[URL="http://mpdeveloper.blogspot.com/2011/02/jstl-parte-iv.html"]http://mpdeveloper.blogspot.com/2011/02/jstl-parte-iv.html[/URL]

espero haberte ayudado
  #4 (permalink)  
Antiguo 22/02/2011, 14:12
 
Fecha de Ingreso: febrero-2011
Mensajes: 10
Antigüedad: 13 años, 2 meses
Puntos: 0
Respuesta: Conectar BD+Servlet y mostrar BD (Netbeans)

Hola Gracias por contestarme!!!!, pero una consulta mas =P como no se mucho de netbeans eso que me dices tengo que hacerlo en un servlet osea lo que yo hago es crear un web application, agrego la libreria de MYSQL y le agrego un servlet, esta bien asi? porque al tratar de poner el codigo dentro del try{ me salen errores "Unreported exception java.lang.ClassFoundException; must be caught al igual que con java.lang.InstantiationException"
Apreciaria mucho tu ayuda
Saludos
  #5 (permalink)  
Antiguo 22/02/2011, 14:27
 
Fecha de Ingreso: octubre-2008
Mensajes: 118
Antigüedad: 15 años, 7 meses
Puntos: 2
Respuesta: Conectar BD+Servlet y mostrar BD (Netbeans)

Cita:
Iniciado por gabz Ver Mensaje
Hola Gracias por contestarme!!!!, pero una consulta mas =P como no se mucho de netbeans eso que me dices tengo que hacerlo en un servlet osea lo que yo hago es crear un web application, agrego la libreria de MYSQL y le agrego un servlet, esta bien asi? porque al tratar de poner el codigo dentro del try{ me salen errores "Unreported exception java.lang.ClassFoundException; must be caught al igual que con java.lang.InstantiationException"
Apreciaria mucho tu ayuda
Saludos
Para hacerlo de forma correcta, utilizando las 3 capas (presentacion, logica, acceso a datos) deberiamos de tener almenos 3 clases. La primera sera la vista (donde mostraremos los datos) esta llamara al servlet (logica) y este deberia de llamar a otra clase donde debes hacer las consultas (acceso a datos) y esta le tendria que devolver los datos obtenidos al servlet ya sea en una entidad (si los datos son sobre 1 registro), o en un arrayList (u otra estructura). Luego clase del servlet debera tratar estos datos (si es que necesitan tratamiento) y esta debera de devolver los datos a la clase de vista para que los pueda mostrar.

Si pasamos un poco de todo esto en la misma clase del servlet se tendria que poder hacer las consultas sin ningun problema.

el control de errores que necesitas es el SQLException, puedes hacer un try, catch o un throw

Edito: El proyecto lo estas creando bien, Java Web Application, agregas la libreria y en el paquete source boton derecho->nuevo->Otro->Java Web -> Servlet

Un Saludo

Última edición por nosek159; 22/02/2011 a las 14:28 Razón: Me falto decir una cosa
  #6 (permalink)  
Antiguo 22/02/2011, 14:30
Avatar de sivadmp  
Fecha de Ingreso: febrero-2011
Ubicación: La Paz - Bolivia
Mensajes: 293
Antigüedad: 13 años, 2 meses
Puntos: 20
Respuesta: Conectar BD+Servlet y mostrar BD (Netbeans)

lo que tienes que hacer es crear una clase donde te vas a conectar a la base de datos

Código java:
Ver original
  1. public ConnectDB() {
  2.         server = "jdbc:postgresql://localhost:5432/db";
  3.         user = "xxx";
  4.         pass = "xxx";
  5.     }
  6. public void connect() {
  7.         try {
  8.             Class.forName("org.postgresql.Driver");
  9.             conn = DriverManager.getConnection(server, user, pass);
  10.         } catch (ClassNotFoundException e) {
  11.             e.printStackTrace();
  12.         } catch (SQLException e) {
  13.             System.out.println("ConnectDB " + e.getMessage());
  14.         }
  15.     }
  16. public void disconnet() {
  17.         if (conn != null) {
  18.             try {
  19.                 conn.close();
  20.             } catch (SQLException ex) {
  21.                 System.out.println("ConnectDB " + ex.getMessage());
  22.             }
  23.         }
  24.     }
  25.  
  26.     public Connection getConnect() {
  27.         return conn;
  28.     }

y desde tu servlet llamas haces la conexión y la consulta SQL

Código java:
Ver original
  1. public void list() throws SQLException {
  2.         ConnectDB connect = new ConnectDB();
  3.         connect.connect();
  4.         Connection conn = connect.getConnect();
  5.         Statement sta = conn.createStatement();
  6.  
  7.         String query = "SELECT * FROM users";
  8.         ResultSet rs = sta.executeQuery(query);
  9.             while (rs.next()) {
  10.            
  11.         }
  12.         rs.close();
  13.         sta.close();
  14.         connect.disconnet();
  15.     }
  #7 (permalink)  
Antiguo 22/02/2011, 14:43
 
Fecha de Ingreso: enero-2011
Ubicación: la paz
Mensajes: 53
Antigüedad: 13 años, 3 meses
Puntos: 3
Respuesta: Conectar BD+Servlet y mostrar BD (Netbeans)

bueno yo creo que deberias utilizar un framework, para desarrollar un sitio utilizando la arquitectura 3 capas MVC Modelo Vista Controlador, la mejor solucion para ello es Spring Framework para los controladores, para el acceso a la base de datos IBATIS, y la vista JSP o JSF java server faces.

utilizar servlets ya ha pasado a la historia, utiliza un framework
  #8 (permalink)  
Antiguo 22/02/2011, 16:14
 
Fecha de Ingreso: febrero-2011
Mensajes: 10
Antigüedad: 13 años, 2 meses
Puntos: 0
Respuesta: Conectar BD+Servlet y mostrar BD (Netbeans)

Cita:
Iniciado por sivadmp Ver Mensaje
lo que tienes que hacer es crear una clase donde te vas a conectar a la base de datos

Código java:
Ver original
  1. public ConnectDB() {
  2.         server = "jdbc:postgresql://localhost:5432/db";
  3.         user = "xxx";
  4.         pass = "xxx";
  5.     }
  6. public void connect() {
  7.         try {
  8.             Class.forName("org.postgresql.Driver");
  9.             conn = DriverManager.getConnection(server, user, pass);
  10.         } catch (ClassNotFoundException e) {
  11.             e.printStackTrace();
  12.         } catch (SQLException e) {
  13.             System.out.println("ConnectDB " + e.getMessage());
  14.         }
  15.     }
  16. public void disconnet() {
  17.         if (conn != null) {
  18.             try {
  19.                 conn.close();
  20.             } catch (SQLException ex) {
  21.                 System.out.println("ConnectDB " + ex.getMessage());
  22.             }
  23.         }
  24.     }
  25.  
  26.     public Connection getConnect() {
  27.         return conn;
  28.     }

y desde tu servlet llamas haces la conexión y la consulta SQL

Código java:
Ver original
  1. public void list() throws SQLException {
  2.         ConnectDB connect = new ConnectDB();
  3.         connect.connect();
  4.         Connection conn = connect.getConnect();
  5.         Statement sta = conn.createStatement();
  6.  
  7.         String query = "SELECT * FROM users";
  8.         ResultSet rs = sta.executeQuery(query);
  9.             while (rs.next()) {
  10.            
  11.         }
  12.         rs.close();
  13.         sta.close();
  14.         connect.disconnet();
  15.     }
Sorry si mi pregunta es muy tonta pero al poner eso me salen errores que dicen "illegal start of expression" "invalid method declaration; return type required" quisiera saber que estoy haciendo mal. Gracias
Saludos
  #9 (permalink)  
Antiguo 23/02/2011, 12:34
Avatar de sivadmp  
Fecha de Ingreso: febrero-2011
Ubicación: La Paz - Bolivia
Mensajes: 293
Antigüedad: 13 años, 2 meses
Puntos: 20
Respuesta: Conectar BD+Servlet y mostrar BD (Netbeans)

hola, por que no revisas que el driver de la base de datos este dentro de tu proyecto, puede que sea el problema.
por si acaso coloco de nuevo el codigo
Código java:
Ver original
  1. public class ConnectDB {
  2.     private String server;
  3.     private String user;
  4.     private String pass;
  5.     private Connection conn;
  6.    
  7.     public ConnectDB() {
  8.         server = "jdbc:postgresql://localhost:5432/db";
  9.         user = "xx";
  10.         pass = "xx";
  11.     }
  12.  
  13.     public void connect() {
  14.         try {
  15.             Class.forName("org.postgresql.Driver");
  16.             conn = DriverManager.getConnection(server, user, pass);
  17.         } catch (ClassNotFoundException e) {
  18.             e.printStackTrace();
  19.         } catch (SQLException e) {
  20.             System.out.println("ConnectDB " + e.getMessage());
  21.         }
  22.     }
  23.  
  24.     public void disconnet() {
  25.         if (conn != null) {
  26.             try {
  27.                 conn.close();
  28.             } catch (SQLException ex) {
  29.                 System.out.println("ConnectDB " + ex.getMessage());
  30.             }
  31.         }
  32.     }
  33.  
  34.     public Connection getConnect() {
  35.         return conn;
  36.     }
  37. }
Código java:
Ver original
  1. public class ListUsuarios extends HttpServlet {
  2.    
  3.     public void list(PrintWriter pw) throws SQLException {
  4.         ConnectDB connect = new ConnectDB();
  5.         connect.connect();
  6.         Connection conn = connect.getConnect();
  7.         Statement sta = conn.createStatement();
  8.  
  9.         String query = "SELECT * FROM user";
  10.         ResultSet rs = sta.executeQuery(query);
  11.             while (rs.next()) {
  12.                 out.printf(rs.getString("id_user"));
  13.                 out.printf(rs.getString("firstname"));
  14.         }
  15.         rs.close();
  16.         sta.close();
  17.         connect.disconnet();
  18.     }
  19.    
  20.     protected void processRequest(HttpServletRequest request,
  21.             HttpServletResponse response) throws ServletException, IOException {
  22.         response.setContentType("text/html;charset=UTF-8");
  23.         PrintWriter out = response.getWriter();
  24.  
  25.         try {
  26.             list(out);
  27.         } catch (SQLException e) {
  28.             e.printStackTrace();
  29.         }
  30.     }
  31. }

te dejo mi correo si tienes dudas

[email protected]

saludos

Etiquetas: mysql, netbeans, servlet, bases-de-datos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:26.