перехват ошибок, связанных с sql, с try - catch в java (для регистрации ошибок) - PullRequest
0 голосов
/ 26 сентября 2011

Я использую log4j для регистрации сообщений в настольном приложении java (работаю над созданием этого приложения в Eclipse).

Одна часть работы заключается в массовой вставке данных csv (значения, разделенные запятыми) вБаза данных сервера sql с использованием JDBC.

Я хочу перехватить любую ошибку во время массовых вставок и записать сведения о конкретной записи, для которой произошла ошибка, а затем возобновить работу массовой вставки.

Соответствующий код, который выполняет массовую вставку, приведен ниже. Как мне кодировать обработку исключений, чтобы делать то, что я хочу?Еще один вопрос - в настоящее время трассировка стека выводится на консоль, я хочу записать это в файл журнала (используя Log4j) ... Как мне это сделать?

public void insertdata(String filename)
{
    String path = System.getProperty("user.dir");
    String createString = "BULK INSERT Assignors FROM  '" + path + "\\" +filename+ ".txt' WITH (FIELDTERMINATOR = ',')";   
    System.out.println(" Just before try block...");

    try  
       { 
            // Load the SQLServerDriver class, build the 
            // connection string, and get a connection 
            Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); 
            String connectionUrl = "jdbc:sqlserver://ARVIND-PC\\SQLEXPRESS;" + 
                                    "database=test01;" + 
                                    "integratedSecurity=true;"; 
            Connection con = DriverManager.getConnection(connectionUrl); 
            System.out.println("Connected."); 

            // Create and execute an SQL statement that returns some data.  
            String SQL = "BULK INSERT dbo.Assignor FROM  '" + path + "\\" +filename+ ".txt' WITH (FIELDTERMINATOR = ',')";

            Statement stmt = con.createStatement();  
            //ResultSet rs = stmt.executeQuery(SQL);
            Integer no_exec;
            no_exec=stmt.executeUpdate(SQL);
            // Iterate through the data in the result set and display it.  
            //while (rs.next())  
            //{  
            // //System.out.println(rs.getString(1) + " " + rs.getString(2));
            //  System.out.println(" Going through data");
            //}

            System.out.println("Number of rows updated by the query=" + no_exec);
       }  
       catch(Exception e)  
       { 
            System.out.println(e.getMessage()); 
            e.printStackTrace(); 
            System.exit(0);  
       } 
}

1 Ответ

1 голос
/ 26 сентября 2011

Вы читали Краткое введение в log4j ?Вам нужен экземпляр журнала, а оттуда остальное - торт.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...