Buscar
Social
Ofertas laborales ES

Foro sobre Java SE > Problemas al conectar java con mysql

Buenas, estoy haciendo un proyecto en java para manejar una base de datos, utilizo ubuntu 12.04 con gnome classic, oracle-java8 y netbeans 7.2. En realidad la conexion a mysql me funcionaba perfectamente pero un dia dejo de funcionar anexo el error q arroja netBeans y el codigo q utilizo para la conexion; esta parte es simplemente para revisar el usuario que quiere ingresar al sistema.

De antemano muchas gracias

Clase que realiza la conexion


public class bdMain
{
private String Usuario;
private String Clave;
private String Cadenaconexion1;
private String Driver;
private Connection Conex1;
private Connection conex;
private Statement stingresar;
private ResultSet rsingresar;

public Connection conexion()
{
Usuario="root";
Clave="111";

Cadenaconexion1 ="jdbc:mysql://localhost/USUARIOS?user=" + Usuario
+ "&password=" + Clave;

Driver ="com.mysql.jdbc.Driver";

// error del driver
try
{
Class.forName(Driver);
}
catch (ClassNotFoundException ex) {
Logger.getLogger(bdMain.class.getName()).log(Level.SEVERE, null, ex);
}

// error de la conexion
try
{
Conex1 = DriverManager.getConnection(Cadenaconexion1);
}
catch (SQLException ex)
{
Logger.getLogger(bdMain.class.getName()).log(Level.SEVERE, null, ex);
}
return Conex1;
}

public int ingresar(String usuario,String contraseña){
int tipo=5;
conex=conexion();
try{
stingresar=conex.createStatement();
rsingresar=stingresar.executeQuery("Select tipo from USUARIO where user='"+usuario+"' and pass='"+contraseña+"'");
if(rsingresar.next()){
tipo=rsingresar.getShort("tipo");
}

}
catch (SQLException ex)
{
Logger.getLogger(bdMain.class.getName()).log(Level.SEVERE, null, ex);
}
return tipo;
}


}


Clase de interfaz Grafica


public class main extends JFrame implements ActionListener, KeyListener {
public int tipoUsuario;
private bdMain bd1=new bdMain();
private JLabel lusuario,lcontraseña;
private JTextField tusuario;
private JPasswordField tcontraseña;
private String usuario,contraseña;
private JButton bingresar;

public main(){
super("DIGASCOL SYSTEM");
setLayout(null);
lusuario=new JLabel("Usuario");
lusuario.setBounds(60, 10, 50, 18);
add(lusuario);
tusuario=new JTextField();
tusuario.setBounds(50, 30, 80, 20);
add(tusuario);

lcontraseña=new JLabel("Contraseña");
lcontraseña.setBounds(55, 55, 70, 18);
add(lcontraseña);
tcontraseña=new JPasswordField();
tcontraseña.setBounds(50, 75, 80, 20);
add(tcontraseña);

bingresar=new JButton("Ingresar");
bingresar.setBounds(45, 100, 90, 20);
add(bingresar);
bingresar.addActionListener(this);
bingresar.addKeyListener(this);
}
public void menu(){
menu m1=new menu(tipoUsuario);
m1.setVisible(true);
m1.setExtendedState(JFrame.MAXIMIZED_BOTH);
dispose();
}
public void ingresar(){
int tipo;
contraseña=new String(tcontraseña.getPassword());
usuario=tusuario.getText();
tipo=bd1.ingresar(usuario, contraseña);
switch (tipo){
case 1:
tipoUsuario=1;
menu();
dispose();
break;
case 2:
tipoUsuario=2;
menu();
dispose();
break;
case 3:
tipoUsuario=3;
menu();
dispose();
break;
default:
JOptionPane.showMessageDialog(null, "ERROR", "Contraseña y/o usuario invalido", 1);
break;
}
}

public void actionPerformed(ActionEvent e){
if(e.getSource()==bingresar){
ingresar();
}

}

public static void main(String[] ar)throws Exception{
main m1=new main();
//menu m1=new menu();
m1.setVisible(true);
m1.setBounds(500, 300, 200, 200);
//m1.setExtendedState(JFrame.MAXIMIZED_BOTH);
// menu m1=new menu(1);
m1.setVisible(true);
//m1.setExtendedState(JFrame.MAXIMIZED_BOTH);


}

public void keyTyped(KeyEvent e) {

}

public void keyPressed(KeyEvent e) {
if(bingresar.hasFocus() && e.getKeyCode()==KeyEvent.VK_ENTER){
ingresar();
}
}

public void keyReleased(KeyEvent e) {

}

}

Error

Exception in thread "AWT-EventQueue-0" java.lang.VerifyError: (class: com/mysql/jdbc/ResultSet, method: updateObject signature: (Ljava/lang/String;Ljava/lang/Object;Ljava/sql/SQLType;)V) Illegal use of nonvirtual function call
at com.mysql.jdbc.MysqlIO.buildResultSetWithUpdates(MysqlIO.java:1990)
at com.mysql.jdbc.MysqlIO.readResultsForQueryOrUpdate(MysqlIO.java:1879)
at com.mysql.jdbc.MysqlIO.readAllResults(MysqlIO.java:1347)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1667)
at com.mysql.jdbc.Connection.execSQL(Connection.java:2370)
at com.mysql.jdbc.Connection.configureClientCharacterSet(Connection.java:3033)
at com.mysql.jdbc.Connection.initializePropsFromServer(Connection.java:3215)
at com.mysql.jdbc.Connection.createNewIO(Connection.java:1780)
at com.mysql.jdbc.Connection.(Connection.java:430)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:268)
at java.sql.DriverManager.getConnection(DriverManager.java:619)
at java.sql.DriverManager.getConnection(DriverManager.java:271)
at Usuarios.bdMain.conexion(bdMain.java:55)
at Usuarios.bdMain.ingresar(bdMain.java:66)
at Usuarios.main.ingresar(main.java:56)
at Usuarios.main.actionPerformed(main.java:81)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2346)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6513)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3322)
at java.awt.Component.processEvent(Component.java:6278)
at java.awt.Container.processEvent(Container.java:2229)
at java.awt.Component.dispatchEventImpl(Component.java:4869)
at java.awt.Container.dispatchEventImpl(Container.java:2287)
at java.awt.Component.dispatchEvent(Component.java:4691)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4834)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4494)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4424)
at java.awt.Container.dispatchEventImpl(Container.java:2273)
at java.awt.Window.dispatchEventImpl(Window.java:2721)
at java.awt.Component.dispatchEvent(Component.java:4691)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:722)
at java.awt.EventQueue.access$200(EventQueue.java:103)
at java.awt.EventQueue$3.run(EventQueue.java:681)
at java.awt.EventQueue$3.run(EventQueue.java:679)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:86)
at java.awt.EventQueue$4.run(EventQueue.java:695)
at java.awt.EventQueue$4.run(EventQueue.java:693)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:692)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:244)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:163)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:147)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:139)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:97)

febrero 11, 2013 | Registered Commentertavo94

¿Con JavaSE 1.7 te funciona bien?.
Me suena a un problema pendiente con JavaSE 1.8 y JDBC 4.2
Si quieres probar JavaSE 1.8, ¿Estás usando el último build, el 76?.

febrero 11, 2013 | Registered Commenterchoces

Es un bug de JavaSE 1.8
Lo acabo de probar con MySQL y me lanza la misma excepción.

febrero 11, 2013 | Registered Commenterchoces

Si tu conexion es correcta (cosa que parece) prueba con algo similar a esto esto:

Connection c = null;
String sql = "SELECT idLP, nombre FROM languaje";
PreparedStatement pstm = null;
ArrayList<Languaje> list = new ArrayList<Languaje>();
try {
c = Access.getSLiteConnection("c:\\kiwi.db"); // aca acambia por el //metodo que te da la conexion
pstm = c.prepareStatement(sql);

ResultSet rs = pstm.executeQuery();
while (rs.next()) {
Languaje bean = new Languaje();
bean.setId(rs.getInt(1));
bean.setName(rs.getString(2));
list.add(bean);
}
} finally {
pstm.close();
c.close();
}

return (List<Languaje>) list;

febrero 12, 2013 | Unregistered CommenterCarlos

Buenas Carlos,

c = Access.getSLiteConnection("c:\\kiwi.db");

Estoy perplejo ¿Que demonios es eso? ¿Es Java? ¿Desde cuando una MySQL esta en un fichero?

Un saludo,

febrero 12, 2013 | Unregistered CommenterUnoPorAhi

Muchas gracias a todos efectivamente era un bug de java 8 basto con desinstalar e instalar java 7 para que funcionara

febrero 14, 2013 | Unregistered CommenterGustavo

Yo encontré la solución en otra página, no es tan largo y me funcinó muy bien http://pymesoftmexico.com/blogs/?page_id=16

junio 18, 2013 | Unregistered CommenterOsiris