public static void Ins_INFO_test( String reg_time, String name, String id) throws Exception
{
Connection conn = null;
PreparedStatement pstmt = null;
String sql = \"\";
try
{
Class.forName(\"cubrid.jdbc.driver.CUBRIDDriver\");
conn = DriverManager.getConnection(\"jdbc:cubrid:localhost:33000:testDB:::\",\"dba\",\"\");
//
sql = \"insert into p_info (reg_time, name, reg_num) values (?, ?, \'1111111111111\') to :X \";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, reg_time );
pstmt.setString(2, name );
pstmt.executeUpdate();
pstmt.close();
//
sql = \"insert into m_in_info (p_info_oid, address, reg_time) values (:X, \'101-101\', ?) \";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, reg_time.substring(1, 14));
pstmt.executeUpdate();
pstmt.close();
//
sql = \"insert into m_info (id, passwd, personal_info_oid, use_yn) values(?, \'111\', :X, \'Y\') \";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, id );
pstmt.executeUpdate();
pstmt.close();
conn.commit();
conn.close();
}
catch (SQLException e)
{
System.err.println(e.getMessage());
pstmt.close();
conn.rollback();
conn.close();
}
}
위와 같이 해서 첫번째와 두번째 테이블에는 데이터가 입력이 되었습니다.
그런데 세번째 테이블에는 에러가 생겨 입력이 안되었습니다.
그러면 모두 rollback되어야 하는거 아닌가요?
그리고 세번째 테이블에 무슨 에러가 발생했는지 알수 가 없습니다.
큐브리드 메니저에서 로그에 아무것도 나타나지 않았습니다.
|