Hola
He estado buscando por el foro acerca del error que me salta en java pero no he encontrado algo similar.
Tengo dos tablas que pertenecen
a una misma base de datos(
datos):
jena_g1t1_stmt
Código:
+---------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+--------------+------+-----+---------+-------+
| Subj | varchar(100) | NO | MUL | NULL | |
| Prop | varchar(100) | NO | | NULL | |
| Obj | varchar(100) | NO | MUL | NULL | |
| GraphID | int(11) | YES | | NULL | |
+---------+--------------+------+-----+---------+-------+
y
jena_long_lit
Código:
+--------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------+--------------+------+-----+---------+----------------+
| ID | int(11) | NO | PRI | NULL | auto_increment |
| Head | varchar(100) | NO | MUL | NULL | |
| ChkSum | bigint(20) | YES | | NULL | |
| Tail | mediumblob | YES | | NULL | |
+--------+--------------+------+-----+---------+----------------+
Por otra parte tengo
otra base de datos (
resultados) donde quiero hacer inserciones en una tabla llamada
ontologia
Código:
+-------------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------------+--------------+------+-----+---------+-------+
| ID | int(11) | NO | | NULL | |
| Sujeto | varchar(100) | NO | | NULL | |
| Propiedad | varchar(100) | NO | | NULL | |
| Objeto | varchar(100) | NO | | NULL | |
| Comentario1 | varchar(100) | YES | | NULL | |
| Comentario2 | mediumblob | YES | | NULL | |
+-------------+--------------+------+-----+---------+-------+
Lo que quiero hacer es insertar el
Subj,
Prop y
GraphID de la tabla
jena_g1t1_stmt , en el caso del
Obj insertare un valor, dependiendo de si coincide o nocon el
ID de
jena_long_lit.
Comentario1 y
Comentario2 de
ontologia se corresponden con
Head y
Tail de
jena_long_lit respectivamente.
La cuestión es que he desarrollado el siguiente código:
Código:
private void tratarTablas(){
try
{
DriverManager.registerDriver(new com.mysql.jdbc.Driver());
Connection conexion1 = DriverManager.getConnection (
"jdbc:mysql://localhost:3306/datos","root", "xxx");
Connection conexion2 =DriverManager.getConnection(
"jdbc:mysql://localhost:3306/datos","root", "xxx");
Connection conexion3 = DriverManager.getConnection (
"jdbc:mysql://localhost:3306/resultados","root", "xxx");
Statement stat = conexion1.createStatement();
Statement stat2 =conexion2.createStatement();
ResultSet rs1 = stat.executeQuery ("select * from jena_g1t1_stmt");
ResultSet rs2 = stat2.executeQuery ("select * from jena_long_lit");
PreparedStatement stmt=null;
int id;
String sujeto;
String propiedad;
String objeto;
String comentario1;
Blob comentario2=null;
int buscado;
int intObjeto=0;
String objetoAux=new String();
boolean dentro;
while (rs1.next())
{
stmt = conexion3.prepareStatement
("INSERT INTO ontologia VALUES (?,?,?,?,?,?)");
id=(Integer)rs1.getObject(4); //primer campo
sujeto=rs1.getObject(1)); //segundo campo
propiedad=rs1.getObject(2)); //tercer campo
objeto=(String)rs1.getObject(3);
if (objeto.contains("Lr:")){
dentro=true;
while (dentro||rs2.next()){
objetoAux=tc.tratarCampo(objeto);//Obtengo un numero que está dentro de objeto
intObjeto=Integer.parseInt(objetoAux);//Convierto a int el número obtenido en la línea anterior
buscado=rs2.getInt(1);
if (intObjeto==buscado){//Aqui es donde falla, o eso creo
dentro=false;
comentario1=(String)rs2.getObject(2);
comentario2=rs2.getBlob(4);
}
}
}else{
comentario1=new String();
comentario2=null;
}
stmt.setInt(1,id);
stmt.setString(2,sujeto);
stmt.setString(3, propiedad);
stmt.setString(4, objeto);
stmt.setString(5, comentario1);
stmt.setBlob(6, comentario2);
stmt.executeUpdate();
}
conexion1.close();
conexion2.close();
conexion3.close();
}
catch (Exception e)
{
e.printStackTrace();
}
Y como error me aparece el siguiente:
Código:
java.sql.SQLException: Before start of result set
¿Alguien me podría decir porque ocurre?
Espero que alguien me pueda echar una mano con este código que me está jod..., también espero haberme explicado bien.
Gracias adelantadas.
Saludos.