Java Tutorial/Database/JDBC Logging

Материал из Java эксперт
Перейти к: навигация, поиск

Logging JDBC Driver Operations

   <source lang="java">

import java.io.PrintWriter; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.Statement; public class Main {

 public static void main(String[] args) throws Exception {
   Connection conn = getHSQLConnection();
   conn.setAutoCommit(false);
   Statement st = conn.createStatement();
   try {
     st.executeUpdate("create table survey (id int,name varchar(30));");
     st.executeUpdate("insert into survey (id,name ) values (1,"nameValue")");
     st.executeUpdate("insert into survey (id,name ) values (2,"nameValue")");
     // commits all the transactions
     conn.rumit();
   } catch (Exception e) {
     // cancel (roll back) all the transactions
     conn.rollback();
     // to see what went wrong
     e.printStackTrace();
   }
   st = conn.createStatement();
   ResultSet rs = st.executeQuery("SELECT * FROM survey");
   outputResultSet(rs);
   rs.close();
   st.close();
   conn.close();
 }
 private static void outputResultSet(ResultSet rs) throws Exception {
   ResultSetMetaData rsMetaData = rs.getMetaData();
   int numberOfColumns = rsMetaData.getColumnCount();
   for (int i = 1; i < numberOfColumns + 1; i++) {
     String columnName = rsMetaData.getColumnName(i);
     System.out.print(columnName + "   ");
   }
   System.out.println();
   System.out.println("----------------------");
   while (rs.next()) {
     for (int i = 1; i < numberOfColumns + 1; i++) {
       System.out.print(rs.getString(i) + "   ");
     }
     System.out.println();
   }
 }
 private static Connection getHSQLConnection() throws Exception {
   Class.forName("org.hsqldb.jdbcDriver");
   String url = "jdbc:hsqldb:mem:data/tutorial";
   
   DriverManager.setLogWriter(new PrintWriter("yourFileName.log"));
   
   return DriverManager.getConnection(url, "sa", "");
 }

}</source>



//Content in yourFileName.log
DriverManager.getConnection("jdbc:hsqldb:mem:data/tutorial")
    trying driver[className=org.hsqldb.jdbcDriver,org.hsqldb.jdbcDriver@19efb05]
getConnection returning driver[className=org.hsqldb.jdbcDriver,org.hsqldb.jdbcDriver@19efb05]