Batch processing JDBC

Posted by Wai Hein on Stack Overflow See other posts from Stack Overflow or by Wai Hein
Published on 2013-11-11T02:53:18Z Indexed on 2013/11/11 3:53 UTC
Read the original article Hit count: 294

Filed under:
|
|
|

I am practicing JDBC batch processing and having errors:

error 1: Unsupported feature error 2: Execute cannot be empty or null

Property files include:
itemsdao.updateBookName = Update Books set bookname = ? where books.id = ?
itemsdao.updateAuthorName = Update books set authorname = ? where books.id = ?

I know I can execute about DML statements in one update, but I am practicing batch processing in JDBC.

Below is my method

public void update(Item item) {
            String query = null;

        try {
            connection = DbConnector.getConnection();
            property = SqlPropertiesLoader.getProperties("dml.properties");
            connection.setAutoCommit(false);

            if ( property == null )
            {
                Logging.log.debug("dml.properties does not exist. Check property loader or file name is spelled right");
                return;
            }

            query = property.getProperty("itemsdao.updateBookName");
            statement = connection.prepareStatement(query);
            statement.setString(1, item.getBookName());
            statement.setInt(2, item.getId());
            statement.addBatch(query);

            query = property.getProperty("itemsdao.updateAuthorName");
            statement = connection.prepareStatement(query);
            statement.setString(1, item.getAuthorName());
            statement.setInt(2, item.getId());
            statement.addBatch(query);

            statement.executeBatch();
            connection.commit();

        }catch (ClassNotFoundException e) {
            Logging.log.error("Connection class does not exist", e);
        } 
        catch (SQLException e) {
            Logging.log.error("Violating PK constraint",e);
        }

        //helper class th
        finally {

            DbUtil.close(connection);
            DbUtil.closePreparedStatement(statement);

        }

© Stack Overflow or respective owner

Related posts about java

Related posts about jdbc