方法执行后返回一个整形,我接收到之后输出为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(); }
}

解决方案 »

  1.   

    执行之后不报错,i的值为1.1001是checkinno的值,Fieldsurveypk的值是在前面直接传过来的
    e88ad68e-f776-473d-94f0-0e769837f0e6
    -------------------1001
    --------------------------------------------1但数据库中的数据没变化,表名是没错的
    这个实在是令人费解
      

  2.   

    插入数据后,事务没有commit,数据回滚了,当然没有数据
      

  3.   

    可能是你那个getDBConnection(),每次获取都不是同一个Connection。
    你试试看这样做:
    Connection con = getDBConnection();
    在这里执行insert操作。
    con.close();
    不要用你的getDBConnection().closePreparedStatement(pstmt)和getDBConnection().closeConnection();用con对象关闭。
      

  4.   

    我全部的Dao都是这么写的,其他都可以提交的,但是就这个不行,这与事务有关吗?