Académique Documents
Professionnel Documents
Culture Documents
Por ciertos motivos recientemente me cambie de trabajo y con ello ya no seguí con el
desarrollo en Java, pero como no me gusta dejar las cosas a medias durante mis ratos libres
seguiré escribiendo sobre java y NetBeans. En esta ocasión como acceder a una base de datos
Mysql.
Lo primero que necesitamos es el driver para que java se pueda entender con Mysql, ese
driver lo pueden descargar desde este enlace: http://dev.mysql.com/downloads/connector/j/
Al descomprimir el paquete notaran varios archivos pero el que realmente nos interesa es
este .jar mysql-connector-java-x.xx.x-bin.jar dependiendo del directorio de instalación de
java ese archivo se debe guardar en una carpeta parecida a esta: C:\Program Files
(x86)\Java\jdk1.6.0_21\jre\lib\ext en esa carpeta ya hay otros .jar
El siguiente paso será crear una pequeña base en mysql, mi base de ejemplo se llama java y
contiene una sola tabla llamada usuario que a su vez solo tiene 3 campos, usuario, contra y
status. Le agregué un registro y quedó de esta manera:
package conexion;
import java.sql.*;
public class conexion {
public String bd = "java";
//asegurate de cambiar esto por el nombre tu usuario en mysql
public String login = "root";
//aqui escribe la contraseña de ese usuario
public String password = "root";
public String url = "jdbc:mysql://localhost/"+bd;
public Statement conectar() {
Connection conn = null;
Statement st=null;
try {
Class.forName("org.gjt.mm.mysql.Driver");
conn = DriverManager.getConnection(url, login, password);
if (conn != null)
{
System.out.println("Yeah, hemos conectado con "+url+" ... Ok");
st=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_READ_ONLY);
//conn.close();
}
}
catch(SQLException ex) {
System.out.println("Rayos!!! Hubo un problema al conectar con la base
"+url);
}
catch(ClassNotFoundException ex) {
System.out.println(ex);
}
return st;
}
}
La primera línea package conexion; puede variar según el nombre que le hayan dado a su
proyecto. En términos generales el código es fácil de comprender y como esta clase es
sencilla solo nos devolverá una variable Statement que es la que se encargara de enviar las
consultas a mysql la línea más importante aquí es:
st=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_READ_ONLY);
Con esto creamos la variable Statement, aunque puede utilizarse sin enviarle parámetros,
para este ejemplo es necesario enviarle estos dos:
ResultSet.TYPE_SCROLL_INSENSITIVE
ResultSet.CONCUR_READ_ONLY
CONCUR_READ_ONLY establece que los datos que se devuelven serán de solo lectura.
Si siguieron el ejemplo anterior recordaran que si se dejaba uno de los campos vacios el
formulario muestra un mensaje de error pero si se ingresan los datos nos deja ver el
formulario principal ahora nos vamos precisamente a esa sección del método para realizar la
consulta desde nuestra base; El código que se agregará cuando se introduzcan los datos de
usuario y contraseña será este:
try
{
//realizamos la consulta
ResultSet rs = st.executeQuery("SELECT * FROM usuario WHERE
usuario='"+usuario+"' AND contra ='"+password+"'");
//hay que posicionarse en el ultimo registro
rs.last();
Como vemos el código tampoco es tan complicado de entender. Aquí les pongo el código
completo del método ActionPerformed
try
{
int encontrado=rs.getRow();
System.out.println(String.valueOf(encontrado));
if(encontrado==1)
{
this.setVisible(true);
dialog_login.setVisible(false);
}
else
{
JOptionPane.showMessageDialog(null, "Sus datos son incorrectos,
reviselos");
}
rs.close();
st.close();
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
Ejecuten el formulario y si todo sale bien se podrán ver los mensaje en la consola de java…
y si nada sale bien pues… arremetan sin piedad contra mí en sus comentarios. Quizá lo que
les resulte incomodo es trabajar con un form creado en una lección anterior y no con uno
hecho desde cero; de cualquier manera aquí les dejo la lección para que la descarguen y
prueben en sus maquinas.