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

insertar el ultimo codigo generado. a una base de datos

Estas en el tema de insertar el ultimo codigo generado. a una base de datos en el foro de Java en Foros del Web. que tal amigos si alguien me puede decir como grabar el ultmo codigo y de manera secuencial originado de manera automatica e realizado una clase ...
  #1 (permalink)  
Antiguo 07/01/2015, 13:58
 
Fecha de Ingreso: diciembre-2014
Ubicación: cali
Mensajes: 9
Antigüedad: 9 años, 4 meses
Puntos: 0
Pregunta insertar el ultimo codigo generado. a una base de datos

que tal amigos si alguien me puede decir como grabar el ultmo codigo y de manera secuencial originado de manera automatica e realizado una clase que me genera el codigo de manera secuencial, y la instancio en un formulario que es el que me le enlaza a la base de datos la informacion. El problema es que me genera el primer codigo pero no me genera el segundo, el problema es de programacion ya que la base de datos esta bien normalizada envio la clase y parte del codigo que me permite generar el ultimo codigo, al ejecutar el programa me sale este error < For input string: "n001">.
clase para generar secuencia de codigo.
public class generarcodigo {
private int dato;
private int cont=1;
private String num="";

public void generar(int dato){
this.dato=dato;

if ((this.dato>=1000) ||(this.dato<10000))
{

int can=cont+this.dato;
num="cp"+can;
}
if ((this.dato>=100) ||(this.dato<1000))
{
int can=cont+this.dato;
num="cp0"+can;
}
if ((this.dato>=9) &&(this.dato<100))
{
int can=cont+this.dato;
num="cp00"+can;
}
if ((this.dato>=1)&&(this.dato<9))
{
int can=cont+this.dato;
num="cp000"+can;
}
if (this.dato==0)
{
int can=cont+this.dato;
num="cp000"+can;

}

}

public String serie(){
return this.num;
}

}

metodo que insatacia la clase .
void codigobanco() {
int j;
String c = "";
conexionmysql mysql = new conexionmysql();
Connection con = mysql.conectar();

String sql = "SELECT MAX(`id_banco`) AS `id_banco` FROM `banco`";

try {
Statement st = con.createStatement();
ResultSet rs = st.executeQuery(sql);
if (rs.next()) {
c = rs.getString("id_banco");
}
if (c == null) {
txtcod.setText("ban001");
} else {
char r1 = c.charAt(2);
char r2 = c.charAt(3);
char r3 = c.charAt(4);
char r4 = c.charAt(5);
String juntar = "" + r1 + r2 + r3 + r4;
int var = Integer.parseInt(juntar);
generarcodigo gen = new generarcodigo();
gen.generar(var);
txtcod.setText(gen.serie());

}

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

}

metodo para registrar el e insertar a la base de datos la informacion.

private void btnregistraActionPerformed(java.awt.event.ActionEv ent evt) {
numerocuenta num = new numerocuenta();
Menus.escritorio.add(num);
num.toFront();
num.setVisible(true);

conexionmysql mysql = new conexionmysql();
Connection con = mysql.conectar();
String sql = "";
String banco,cod;

banco = txtbanco.getText();
cod=txtcod.getText();


sql = "INSERT INTO `banco`( `id_banco`,`nombre`) VALUES (?,?)";

try {
PreparedStatement pst = con.prepareStatement(sql);

pst.setString(1, cod);
pst.setString(2, banco);
int n = pst.executeUpdate();


} catch (SQLException ex) {
Logger.getLogger(bancos.class.getName()).log(Level .SEVERE, null, ex);
}
this.dispose();

}

private void btnsaleActionPerformed(java.awt.event.ActionEvent evt) {
this.dispose();
}

private void btncancelaActionPerformed(java.awt.event.ActionEve nt evt) {
txtbanco.setText("");
}


de antemano Muchas gracias por decime donde esta el error
  #2 (permalink)  
Antiguo 07/01/2015, 15:25
 
Fecha de Ingreso: diciembre-2014
Ubicación: cali
Mensajes: 9
Antigüedad: 9 años, 4 meses
Puntos: 0
Respuesta: insertar el ultimo codigo generado. a una base de datos

resuelto el problema pero quedo a medias que mas adelante adquiriendo experiencia lograre hacerlo y es el de aplicar al codigo letras por ejemplo <cp0001> la cual la clase no me permite hacerlo de todos modos tengo que seguir avanzando y no quedarme dias enteros en una sola cosa alli envio la clase ya resuelta para alguien que quizas lo nesecite ah si alguien sabe algo al respecto se los agradeceria bastante codigo con letras <cp001> que se genere de manera automatica.

clase...
public class generarcodigo {
private int dato;
private int cont=1;
private String num="";

public void generar(int dato){

this.dato = dato;

if((this.dato>=1000) || (this.dato<10000))
{
int can=cont+this.dato;
num = "" + can;
}
if((this.dato>=100) || (this.dato<1000))
{
int can=cont+this.dato;
num = "0" + can;
}
if((this.dato>=9) || (this.dato<100))
{
int can=cont+this.dato;
num = "00" + can;
}
if (this.dato<9)
{
int can=cont+this.dato;
num = "000" + can;
}

}

public String serie()
{
return this.num;
}
}



metodo.

int j;
String c = "";
conexionmysql mysql = new conexionmysql();
Connection con = mysql.conectar();

String sql = "SELECT MAX(`id_banco`) AS `id_banco` FROM `banco`";
try {
Statement st = con.createStatement();
ResultSet rs=st.executeQuery(sql);
if(rs.next())
{
c=rs.getString(1);
}


if(c==null){
txtcod.setText("0001");
}
else{
j=Integer.parseInt(c);
generarcodigo gen= new generarcodigo();
gen.generar(j);
txtcod.setText(gen.serie());


}

} catch (SQLException ex) {
Logger.getLogger(numerocuenta.class.getName()).log (Level.SEVERE, null, ex);
}
}
  #3 (permalink)  
Antiguo 09/01/2015, 05:29
Avatar de loncho_rojas
Colaborador
 
Fecha de Ingreso: octubre-2008
Ubicación: En el mejor lugar del mundo
Mensajes: 2.704
Antigüedad: 15 años, 6 meses
Puntos: 175
Respuesta: insertar el ultimo codigo generado. a una base de datos

Por amor al dios del javascript, usa resaltador de código o highlight...
__________________
Ayudo con lo que puedo en el foro, y solo en el foro.. NO MENSAJES PRIVADOS.. NO EMAILS NI SKYPE u OTROS.

Antes de hacer un TOPICO piensa si puedes hallarlo en Google o en el Buscador del Foro...

Etiquetas: clase, mysql, programa, string, ultimo
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 21:45.