oracle更新表没有抛出出错误,但表中数据没有改变!求高人指点啊

oracle更新表没有抛出出异常,但表中数据没有改变!求高人指点啊!!!本帖最后由 yuanye348623610 于 2013-03-

oracle更新表没有抛出出异常,但表中数据没有改变!求高人指点啊!!!
本帖最后由 yuanye348623610 于 2013-03-23 12:38:55 编辑 oracle更新表没有抛出出异常,但表中数据没有改变!

Java 代码:
@Test
public void testUpdateTea()
{
        Connection conn = ConnectionFactory.getConnection();
        String sql = "update teacher "+"set tName=?,tTel=? "+"where tid=?";
        try
        {
                conn.setAutoCommit(false);
                PreparedStatement pstmt = conn.prepareStatement(sql);
                pstmt.setString(1, "唐三藏");
                pstmt.setString(2, "010000");
                pstmt.setString(3, "2013100");
                pstmt.execute();
                conn.commit();
                JdbcUtil.close(pstmt, conn);
        } catch (SQLException e)
        {
                e.printStackTrace();
        }

}
/* ConnectionFactory和JdbcUtil是我自己写的两个工具类,经测试没问题 */

teacher表:
CREATE TABLE  "TEACHER"(
"TID" CHAR(8), 
"TNAME" VARCHAR2(30) NOT NULL ENABLE, 
"TSEX" CHAR(4), 
"TTEL" CHAR(13), 
FOREIGN KEY ("TID") REFERENCES  "USERS" ("USERID") ON DELETE CASCADE ENABLE
);

通过命令提示行,连接oracle数据库后执行:update teacher set tName="唐三藏",tTel="010000" where tid="2013100"; 是没问题的,能够成功更新数据!

另外,我通过如下代码:
public Boolean updateStu(Student stu)
{
        conn = ConnectionFactory.getConnection();
        String sql = "update student " + " set sName =? , sAge =? "+ " where sid = ?";
        try
        {
                conn.setAutoCommit(false); 
                pstmt = conn.prepareStatement(sql);
                pstmt.setString(1, stu.getsName());
                pstmt.setString(2, stu.getsAge());
                pstmt.setString(3, stu.getsId());
                pstmt.executeUpdate();
                conn.commit();


                JdbcUtil.close(pstmt, conn);
                return true;
        } catch (SQLException e)
        {
                try
                {
                        conn.rollback();
                } catch (SQLException e1)
                {
                        e1.printStackTrace();
                }
                e.printStackTrace();
                return false;
        }
}

student表:
CREATE TABLE  "STUDENT"(
"SID" CHAR(8), 
"SNAME" VARCHAR2(30) NOT NULL ENABLE, 
"SSEX" CHAR(4), 
"SAGE" VARCHAR2(3), 
 FOREIGN KEY ("SID") REFERENCES  "USERS" ("USERID") ON DELETE CASCADE ENABLE
 );
是能够成功更新student表中的数据的呀!!

但通过前面的java代码却为什么就无法更新teacher表呢,却也不报任何异常!!!???这是为什么呢???

望高人指点啊!!! oracle update 数据 没有改变 jdbc
[解决办法]
pstmt.setString(3, "2013100       ");
[解决办法]
 pstmt.setString(3, "2013100");用日本话说是问题大大的有,
换成
pstmt.setInt(3, 2013100);
[解决办法]
这个是一个jdbc直连数据库的程序,LZ在学习的吧?