Ich versuche, eine Verbindung zu einer Datenbank herzustellen, eine Abfrage auszuführen und die Abfrage auszudrucken. Bisher, was ich habe funktioniert, aber ich brauche, um die Ausgabe zu erhalten und einen bestimmten Teil davon zu einem I String
Abfrage von PreparedStatement von Derby erhalten
public static void main(String args[]) {
BasicConfigurator.configure();
Logger.getGlobal().setLevel(Level.INFO);
PreparedStatement preparedStatement = null;
try {
connect();
String sql = "SELECT * FROM foo WHERE ID = ?";
preparedStatement = connection.prepareStatement(sql);
preparedStatement.setInt(1, 1);
try (ResultSet resultSet = preparedStatement.executeQuery()) {
while (resultSet.next()) {
break;
}
}
//String usedSql = "query should go here";
} catch (SQLException ex) {
Logger.getLogger(Test.class.getName()).log(Level.SEVERE, null, ex);
} finally {
if (preparedStatement != null) {
try {
preparedStatement.close();
} catch (SQLException ex) {
Logger.getLogger(Test.class.getName()).log(Level.SEVERE, null, ex);
}
}
disconnect();
}
}
zuweisen bin log4jdbc mit auf meine Fragen spionieren.
Im Moment bekomme ich protokollierte Ausgabe wie:
594 [main] DEBUG jdbc.foo - 1. Connection.new Connection returned java.sql.DriverManager.getConnection(DriverManager.java:664)
608 [main] DEBUG jdbc.foo - 1. PreparedStatement.new PreparedStatement returned com.example.Test.main(Test.java:63)
608 [main] DEBUG jdbc.foo - 1. Connection.prepareStatement(SELECT * FROM foo WHERE ID = ?) returned [email protected] com.example.Test.main(Test.java:63)
608 [main] DEBUG jdbc.foo - 1. PreparedStatement.setInt(1, 1) returned com.example.Test.main(Test.java:64)
608 [main] DEBUG jdbc.foo - 1. PreparedStatement.setMaxRows(1) returned com.example.Test.main(Test.java:65)
609 [main] DEBUG jdbc.sqlonly - com.example.Test.main(Test.java:66)
1. SELECT * FROM foo WHERE ID = 1
Ich mag SELECT * FROM foo WHERE ID = 1
zu usedSql
zuzuzuweisen. Wie kann ich das tun?
Was bedeutet 'preparedStatement.toString()' Sie geben? – Berger
@Berger: 'net.sf.log4jdbc.PreparedStatementSpy @ 7d70d1b1' – Hooli
Ich denke, das ist bereits [hier] beantwortet (http://stackoverflow.com/questions/2382532/how-can-i-get-the-sql- of-a-preparedstatement) – soufrk