Donde tengo el fallo?

Me ingresa 10 veces el registro al igual que los mismos codigo que introduzco en el campo de la tabla

¿Por que puede ser?

import java.sql.*;
public class registro_usuario {

       static String login = "root";
      static String password = "";
       static String url = "jdbc:mysql://localhost/Acceso";

  public static  void mai(String ... args) throws Exception
      {
    Connection conn = null;
    try {
         Class.forName("com.mysql.jdbc.Driver").newInstance();
                conn = DriverManager.getConnection(url,login,password);
         if (conn != null)
         {

                int rows_updated = 0;

        PreparedStatement stmt1 = conn.prepareStatement("INSERT INTO profesores (nombre ,clave) "
          + "VALUES  (?,?)");

       
   
          stmt1.setString(1,"Pedro"); // Nombre
int [][] A= new int[2][5];
for(int i=0;i<A.length;i++)
{ for(int j=0;j<A[0].length;j++)
{
A[i][j]=(int)(Math.random()*1000);
}
}
for(int i=0;i<A.length;i++)
{ for(int j=0;j<A[0].length;j++)
{

    String matrizComoString = toString( A);
    stmt1.setString(2,matrizComoString); // Clave
    rows_updated = stmt1.executeUpdate();
             }
            }}
    }
    catch(SQLException ex) {
         System.out.println(ex);
    }
    catch(ClassNotFoundException ex) {
    System.out.println(ex);  }
    }

        public static void ma( String ... args ) {

      String matrizComoString = toString( m );
    System.out.println( matrizComoString );

    int [][] resort = new int[3][3];
    fromString( matrizComoString, resort );

    System.out.println(  toString( resort) );
        }

  public static String toString( int [][] m ) {
    StringBuilder sb = new StringBuilder();
    for( int i = 0 ; i < m.length ; i++ ) {
      for( int j = 0 ; j < m[i].length ; j++ ) {
        sb.append( m[i][j] );
        sb.append( "," );
      }
    }
    return sb.toString();
  }

  public static void fromString( String matrizComoString, int [][] resort ) {
    int i = 0;
    int j = 0;
    for( String numero : matrizComoString.split(",")) {
    System.out.printf( "(%d,%d) = %s%n",i,j,numero );
      resort[i][j++] = Integer.parseInt( numero );
      if( j > 2 ) {
        i++;
        j = 0;
      }
    }
    }}

Comentarios

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.

Tomáte un tiempo en darle

Tomáte un tiempo en darle formato a tu código, es muy difícil de entenderlo así. Si estás usando un IDE decente debe de tener alguna opción para formatear automáticamente ( File > Codigo > Autoformato o algo asi )

No uses Math.random()*1000 utiliza Random r = new Random(); random.nextInt( 1000 );

Te está apareciendo el registro 10 veces ... pues porque lo está insertando 10 veces!! ... quizá como tu mismo no le entendías a tu código por falta de formato no lo puedes ver pero está ahí:

for(int i=0;i<A.length;i++)
{ for(int j=0;j<A[0].length;j++)
{
    String matrizComoString = toString( A);
    stmt1.setString(2,matrizComoString); // Clave
    rows_updated = stmt1.executeUpdate(); //<--  AQUÍ
             }

Bueno quizá no 10 veces pero sí A[0].length veces.

Por cierto no nombres tus variables con mayúsculas y ponles un nombre más significativo aunque parezca que escribes más. Cuando escribes más y más código te vas a terminar preguntando "Que diablos hace la variable "A" mejor es  matrizSeguridad, o arregloClaves

Saludos.

Imagen de Payan

Lo del formato lo hize pero

Lo del formato lo hize pero no me cambio nada el hacerlo.
rows_updated = stmt1.executeUpdate(); // aqui es donde ejecuta la insercion del registro ¿ no?

Pero esto no entendi lo que me quisistes decir ---> Bueno quizá no 10 veces pero sí A[0].length veces.

Dices que lo inserto 10 veces pero yo genero diez numeros aleatorios atraves de una matriz que paso a String y lo inserto en el 2 campo del registro? no es eso? quizas si puedes explicarmelo te lo agradeceria xD

Saludoss Amigoo!

Imagen de Payan

Alguien me eXa una mano!!! xD

Alguien me eXa una mano!!! xD

Lo del formato lo hize pero

Lo del formato lo hize pero no me cambio nada el hacerlo. ... ¬¬ no por algo es formato, pero al menos podias leerlo bien y ya que lo hiciste porque no actualizas tu código y lo copias con el formato correcto.


Pero esto no entendi lo que me quisiste decir ...

¿Que hace este código? ( responde con solo verlo, no lo ejecutes )

String x = "Hola";
for( int i = 0 ; i < 100 ; i++ ) {
    System.out.println( x );
}

???

Pues algo así estás haciendo con tu código de executeUpdate...

Imagen de Payan

amm ok ya entendi graciass

amm ok ya entendi graciass

:)

:)