jsp中的有两个js时间控件,通过两个时间控件选择的时间如:2011-07-07 - 2011-07-08 然后将这两个参数传递给java中专门处理数据查询的函数,将再将查询结果返回给jsp显示出来,
可是页面报这行错:Collection arr = list.selectCollection2(begintime,endtime);
哦,我怀疑是arr没有得到数据
报错中还指出:
java.lang.NullPointerException
java.text.SimpleDateFormat.parse(SimpleDateFormat.java:1214)
        .....
所以我怀疑是数据转换的问题,另外,我还有一个问题,我的mysql查询语句这样写稳妥吗?
望有高人指点啊
数据库是:mysql
mysql中时间的格式是:2011/6/13 0:00:00jsp关键代码如下://////以下是两个js时间控件,id分别是time1和time2/////////////
 <form action="test2.jsp" method="post">
           <input name="time1" id="time1".....> —
           <input name="time2" id="time2" .....>
        <input type="submit" value="查询" >
  </form>  ......
  <jsp:useBean id="list" class="com.fit.jfc.impl.Jdbc" scope="page"/>  //Jdbc类是专门处理数据的
  <% 
       String begintime = request.getParameter("time1");
       String endtime = request.getParameter("time2");
       Collection arr = list.selectCollection2(begintime,endtime);
       Iterator it = arr.iterator();
       while(it.hasNext()){ 
       //DailyNewUserCount是一个javabean
       DailyNewUserCount form = (DailyNewUserCount)it.next();
   %> Jdbc.java关键代码如下: public Collection selectCollection2(String t1,String t2) throws ParseException{
Collection list = null;
DateFormat format= new SimpleDateFormat("yyyyMMdd hh:mm:ss");         
Date begin=format.parse(t1);
Date end=format.parse(t2);
//Date begin = java.sql.Date.valueOf(t1);
//Date end = java.sql.Date.valueOf(t2);
   

//List list =new ArrayList();
PreparedStatement pstmt=null;
ResultSet rs=null;
String sql="select DateTime,Login,UserNum from count where DateTime>=begin and   DateTime<=end";
try{
pstmt=getConnection().prepareStatement(sql);
rs=pstmt.executeQuery();
list = new ArrayList();
while(rs.next()){
DailyNewUserCount dnuc=new DailyNewUserCount();
dnuc.setDateTime(rs.getDate("DateTime"));
........

list.add(dnuc);
}
.......
return list;
}
   

解决方案 »

  1.   

    把 mysql中时间的格式是:2011/6/13 0:00:00
    mysql中实践格式改为:2011/06/13 00:00:00
     
      

  2.   

    DateFormat format= new SimpleDateFormat("yyyyMMdd hh:mm:ss");   
    改成
    SimpleDateFormat format= new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");   
      

  3.   

    这个格式是Told For MySql中自动添加的
      

  4.   

    SimpleDateFormat format= new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); 试过,无用啊
      

  5.   

    一直报错:java.lang.NullPointerException