实际问题是,我要在添加奖惩信息的时候,只有它奖惩时间,而不一定有撤消时间, 
这时会报错。 
该如何解决这个问题啊? 
数据库:orracle,谢谢了。 
代码如下:
 
 <body>
    <% //解决提交时的中文乱码问题
     request.setCharacterEncoding("gb2312");
    %>
<%
int em_serialNumber = Integer.parseInt(request.getParameter("em_serialNumber"));
String em_name = request.getParameter("em_name");
String jc_rewardpunish = request.getParameter("jc_rewardpunish");
String jc_rewardcontent = request.getParameter("jc_rewardcontent");
String jc_reason = request.getParameter("jc_reason");
String jc_branch = request.getParameter("jc_branch");
String jc_handlename = request.getParameter("jc_handlename");

java.util.Date jc_startdate = new SimpleDateFormat("yyyy-mm-dd").parse       (request.getParameter("jc_startdate"));
                            //这个时间提交过来有的时候是空的
                   boolean flag =true;
          if(request.getParameter("jc_canceldate")==null||"".equals(request.getParameter("jc_canceldate"))){
flag=false;
}else{
java.sql.Date date = new java.sql.Date(new SimpleDateFormat("yyyy-mm-dd").parse(request.getParameter("jc_canceldate")).getTime());
String jc_cancelreason = request.getParameter("jc_cancelreason");
String jc_re = request.getParameter("jc_re");
%>
<center>
<h1>雇员表信息</h1>
<hr>

<%
String DBDRIVER="oracle.jdbc.driver.OracleDriver"; 
String DBURL="jdbc:oracle:thin:@localhost:1521:test";
String DBUSER="scott"; 
String DBPASS="test"; 
%>
<%
Connection conn=null; 
PreparedStatement ps=null; 
ResultSet rs=null;
%>
<%
                  //这是SQL语句但是如果时间是空的时候就报错
                  String sql="insert into jc (em_serialNumber,em_name,jc_rewardpunish,jc_rewardcontent,jc_reason,jc_branch,jc_handlename,jc_startdate,jc_canceldate,jc_cancelreason,jc_re,jc_ID) values (?,?,?,?,?,?,?,?,?,?,?,jcseq.nextVal)";

try{
Class.forName(DBDRIVER); 
conn=DriverManager.getConnection(DBURL,DBUSER,DBPASS);
ps=conn.prepareStatement(sql);
ps.setInt(1,em_serialNumber);
ps.setString(2,em_name);
ps.setString(3,jc_rewardpunish);
ps.setString(4,jc_rewardcontent);
ps.setString(5,jc_reason);
ps.setString(6,jc_branch);
ps.setString(7,jc_handlename);
ps.setDate(8,new java.sql.Date(jc_startdate.getTime())); if(flag){

ps.setDate(9,date);//时间转换
}else{
ps.setDate(9,null);
}
ps.setString(10,jc_cancelreason);
ps.setString(11,jc_re);
ps.executeUpdate();  

解决方案 »

  1.   

    if(空){
    ps.setDate(8,null);
    }
    else{
     ……
    }
      

  2.   

    两个字段:createDate(非NUll)和cancelDate(可以为null)
      

  3.   


    数据库是这样写的没有错,但是问题出在插人当中,插入cancelDate没有值,数据库插不了,就算我做出判断只要是null就不行
      

  4.   

    按理说只要不是Notnull、插入null应该就可以
      

  5.   

    if(request.getParameter("jc_canceldate")==null||"".equals(request.getParameter("jc_canceldate"))){
    flag=false;
    }
    改成
    if(null==request.getParameter("jc_canceldate")||"".equals(request.getParameter("jc_canceldate"))){
    flag=false;
    }
    试试看,不知道可以不?