|
Hello,
i have to set a little MySql database (only
two tables) in my portal.
I have created these two tables in the "Turbine"
already existing database context.
Is it a good choice ?
To connect, i use the following code portion in my
Java programs:
<
db = TurbineDB.getConnection();
con = db.getConnection(); >
It works well, but is it a correct way to do
it ?
Then when i want to query the db, i use :
<
stmt = con.createStatement(); rs = stmt.executeQuery("SELECT * FROM <mytable> WHERE <mycondition>"); while (rs.next()) {
<get and process data...>
}
rs.close();
stmt.close();
con.close();
>
It works fine for one query, but it fails
(NullPointerException) if i try to make two queries one after the
other like that:
<
db = TurbineDB.getConnection();
con = db.getConnection(); stmt = con.createStatement();
rs = stmt.executeQuery("<first query>"); while (rs.next()) {
<get and process 1st query data...>
}
rs.close();
stmt.close();
con.close();
con = db.getConnection();
stmt = con.createStatement();
rs = stmt.executeQuery("<second query>"); while (rs.next()) {
<get and process 2nd query data...>
}
rs.close();
stmt.close();
con.close();
db.close();
>
I don't understand why.
The only way i could have it worked was by not closing the "connection
objects" between queries, like that:
<
db = TurbineDB.getConnection();
con = db.getConnection(); stmt = con.createStatement();
rs = stmt.executeQuery("<first query>"); while (rs.next()) {
<get and process 1st query data...>
}
rs = stmt.executeQuery("<second query>"); while (rs.next()) {
<get and process 2nd query data...>
}
rs.close();
stmt.close();
con.close();
>
Is it the correct way to make multiple queries on same or different tables
of one database ?
Should i better use different objects for each db statement (con1,
con2,..., stmt1, stmt2,..., rs1, rs2,...) to achieve it ?
does it work similarly for other db statements than the select one
(update, insert, delete,...) ?
thanks for your help,
St�phane |
