帮助别人就是帮助自己! 如果这里解决了您的问题,请您点一下推荐
奇葩!PreparedStatement.executeUpdate执行之后的问题
方法执行后返回一个整形,我接收到之后输出为1,证明已经有一行数据受影响,但是数据库里仍然没有数据。代码如下:public void insert(Object obj) throws DBException {
PreparedStatement pstmt = null;
try {
FieldSurveyBean bean = (FieldSurveyBean) obj;
String areno = bean.getAreno();
String statement = "";
statement += "INSERT INTO [dbo].TB_FieldSurvey";
statement += "([FieldSurveyPK]";
statement += ",[Creator]";
statement += ",[Create_Time]";
statement += ",[Update_Time]";
statement += ",[ProjectTypeNo]";
statement += ",[CheckInNo]";
statement += ",[ProspectNo]";
statement += ",[Proc_id]";
statement += ",[Step_id]";
statement += ",[UnitOfUsers]";
statement += ",[Address]";
statement += ",[ProspectContent]";
statement += ",[AreNo]";
statement += ",[Linkman]";
statement += ",[Tel]";
statement += ",[ApplyAccount]";
statement += ",[DeliveryInfo]";
statement += ",[Installation]";
statement += ",[SurveyDate1]";
statement += ",[SurveyDate2]";
statement += ",[SurveyDate3]";
statement += ",[Prospector] ";
statement += ",[Map]";
statement += ",[MapSummary]";
statement += ",[DesignIdeas]";
statement += ",[ProspectorIdeas]";
statement += ",[DesignForIdeas]";
statement += ",[ApprovalIdeas]";
statement += ",[projectpk])";
statement += " VALUES(?,?,getdate(),getdate(),?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
pstmt = getDBConnection().createPreparedStatement(statement);
System.out.println(statement);
System.out.println(bean.getFieldsurveypk());
System.out.println("-------------------"+bean.getCheckinno());
pstmt.setString(1, bean.getFieldsurveypk());
pstmt.setString(2, bean.getCreator());
pstmt.setString(3, bean.getProjecttypeno());
pstmt.setString(4, bean.getCheckinno());
pstmt.setString(5, bean.getProspectno());
pstmt.setString(6, bean.getProc_id());
pstmt.setString(7, bean.getStep_id());
pstmt.setString(8, bean.getUnitofusers());
pstmt.setString(9, bean.getAddress());
pstmt.setString(10, bean.getProspectcontent());
pstmt.setString(11, bean.getAreno());
pstmt.setString(12, bean.getLinkman());
pstmt.setString(13, bean.getTel());
pstmt.setInt(14, bean.getApplyaccount());
pstmt.setString(15, bean.getDeliveryinfo());
pstmt.setString(16, bean.getInstallation());
pstmt.setString(17, bean.getSurveydate1());
pstmt.setString(18, bean.getSurveydate2());
pstmt.setString(19, bean.getSurveydate3());
pstmt.setString(20, bean.getProspector());
pstmt.setString(21, bean.getMap());
pstmt.setString(22, bean.getMapsummary());
pstmt.setString(23, bean.getDesignideas());
pstmt.setString(24, bean.getProspectorideas());
pstmt.setString(25, bean.getDesignforideas());
pstmt.setString(26, bean.getApprovalideas());
pstmt.setString(27, bean.getProjectpk());
int i=pstmt.executeUpdate();
System.out.println("--------------------------------------------"+i);
} catch (SQLException e) {
throw new DBException(e);
} finally {
getDBConnection().closePreparedStatement(pstmt);
getDBConnection().closeConnection();
}
}
10 个回答
执行之后不报错,i的值为1.1001是checkinno的值,Fieldsurveypk的值是在前面直接传过来的
e88ad68e-f776-473d-94f0-0e769837f0e6
-------------------1001
--------------------------------------------1
但数据库中的数据没变化,表名是没错的
这个实在是令人费解
e88ad68e-f776-473d-94f0-0e769837f0e6
-------------------1001
--------------------------------------------1
但数据库中的数据没变化,表名是没错的
这个实在是令人费解
2011-11-23 00:41
推荐: 0 次
建议耐心调试,特别是查看数据那一块。不要使用第三方工具查看,尽量使用指令查看数据。
2011-11-23 00:55
推荐: 0 次
调试之后不报错,数据也是正确的,第一次遇见这问题
2011-11-23 01:04
推荐: 0 次
插入数据后,事务没有commit,数据回滚了,当然没有数据
2011-11-23 02:13
推荐: 0 次
事务回滚了。。。事务提交下
2011-11-23 02:27
推荐: 0 次
可能是你那个getDBConnection(),每次获取都不是同一个Connection。
你试试看这样做:
Connection con = getDBConnection();
在这里执行insert操作。
con.close();
不要用你的getDBConnection().closePreparedStatement(pstmt)和getDBConnection().closeConnection();用con对象关闭。
你试试看这样做:
Connection con = getDBConnection();
在这里执行insert操作。
con.close();
不要用你的getDBConnection().closePreparedStatement(pstmt)和getDBConnection().closeConnection();用con对象关闭。
2011-11-23 03:13
推荐: 0 次
事务提交一下再试试吧。
2011-11-23 03:33
推荐: 0 次
我全部的Dao都是这么写的,其他都可以提交的,但是就这个不行,这与事务有关吗?
2011-11-23 17:07
推荐: 0 次
单元测试下吧 或者专门把这个方法拿出来测试 有可能是事务 或者在别的方法调用失败 回滚
2011-11-23 17:20
推荐: 0 次
我勒个去,昨天怎么试都不行,今天一来,就行了,真蛋疼,问题处在哪儿都不知道
2011-11-23 18:11
推荐: 0 次