Je travail sur java avec mysql. Je n'arrive à insérer mes données !!!
Problème suremnt lié au primary key car il me sort une erreur de type "duplicate ..." alors ke
pas du tout (j'ai essayé avec INNODB, mais je connai pas gran chose là dessus !), et lorque
j'essaye de mettre un AUTO_INCREMENT ... ça me donne:
parameter index out of range (8 > number of parameters which is 7)
Voici ma table :
CREATE table HOMOLOGIE(UG Varchar(20), GID Varchar(20), IDoligo Varchar(20), score Float(4,1), percent Float(5,2), length Int(8), nbmeralign Int(3), primary key(IDoligo,UG));
Voici mon code pour insérer les données :
else {
String []tab = new String[10];
pstmt = connexion.prepareStatement
("SELECT COUNT(*) Number FROM HOMOLOGIE");
ResultSet rs = pstmt.executeQuery();
rs.next(); int idunik = rs.getInt("Number")+1;
// je m'en servait pour mettre un identifiant ... mais plus m1tenant !
do {
tab = Line.split("\t");
// tab contient :
// 0 ~ oligo / 1 ~ genbank / 2 ~ GI / 3 ~ UG / 4 ~ length / 5 ~ score / 6 ~ percent / 7 ~ align
try {
float floatscore = Float.parseFloat(tab[5]);
float floatpercent = Float.parseFloat(tab[6]);
int intalign = Integer.parseInt(tab[7]);
if (intalign == 70){
if (floatpercent >= 100.0){
if (floatscore >= 130.0){
if (tab[3].equals("null") == false){
test = true; System.out.println(floatscore+" "+floatpercent+" "+intalign);
}
}
}
}
}
catch (Exception exp){ }
if(test == true) {
pstmt = connexion.prepareStatement
("INSERT INTO HOMOLOGIE (UG,GID,IDoligo,score,percent,length,nbmeralign) VALUES (?,?,?,?,?,?,?)");
if(tab[3].equals("null")) pstmt.setNull(1, java.sql.Types.NULL);
else pstmt.setString(2, tab[3]);
if(tab[0].equals("null")) pstmt.setNull(1, java.sql.Types.NULL);
else pstmt.setString(3, tab[2]);
if(tab[2].equals("null")) pstmt.setNull(1, java.sql.Types.NULL);
else pstmt.setString(4, tab[0]);
if(tab[5].equals("null")) pstmt.setNull(1, java.sql.Types.NULL);
else pstmt.setFloat(5, Float.parseFloat(tab[5]));
if(tab[6].equals("null")) pstmt.setNull(1, java.sql.Types.NULL);
else pstmt.setFloat(6, Float.parseFloat(tab[6]));
if(tab[4].equals("null")) pstmt.setNull(1, java.sql.Types.NULL);
else pstmt.setInt(7, Integer.parseInt(tab[4]));
if(tab[7].equals("null")) pstmt.setNull(1, java.sql.Types.NULL);
else pstmt.setInt(8, Integer.parseInt(tab[7]));
rows = pstmt.executeUpdate();
pstmt = connexion.prepareStatement("INSERT INTO GENE (GI,GenBank) VALUES(?,?)");
f(!tab[2].equals("null")) pstmt.setString(1, tab[2]);
if(!tab[1].equals("null")) pstmt.setString(2, tab[1]);
rows = pstmt.executeUpdate();
}
test=false;
} while ((Line = buffR.readLine()) != null);
Si quelqu'un aurait la gentillesse de m'aider
Merci d'avance
