public void test_executeQuery() throws Exception {
        final Integer targetAuthorId = 3;
        Connection conn = null;
        PreparedStatement ps = null;
        ResultSet rs = null;
        try {
            conn = getConnection();
            ps = conn.prepareStatement("select * from MEMBER where MEMBER_ID = ?");
            ps.setInt(1, targetAuthorId); // 1 origin
            rs = ps.executeQuery();
            int count = 0;

            while (rs.next()) {
                count++;
                final String memberId = rs.getString("MEMBER_ID");
                final String memberName = rs.getString("MEMBER_NAME");
                log("- - - - - - - - - - - - - - - {" + count + "}");
                log("memberId   = " + memberId);
                log("memberName = " + memberName);
            }
        } catch (SQLException e) {
            throw new RuntimeException("Failed to execute the SQL statements.", e);
        } finally {
            if (rs != null) {
                try {
                    rs.close();
                } catch (SQLException ignored) {
                    ignored.printStackTrace();
                }
            }
            if (ps != null) {
                try {
                    ps.close();
                } catch (SQLException ignored) {
                    ignored.printStackTrace();
                }
            }
            if (conn != null) {
                try {
                    conn.rollback();
                } catch (SQLException ignored) {
                    ignored.printStackTrace();
                }
                try {
                    conn.close();
                } catch (SQLException ignored) {
                    ignored.printStackTrace();
                }
            }
        }
    }