2012-05-21 103 views
0

我想在postgres中顯示一個帶有「Date」列的表。 我想它與解析字符串到目前爲止有關。我嘗試使用簡單的日期格式,但我不成功。顯示數據從日期列 - 解析到日期

我以前實際上發佈過類似的問題,並嘗試過給出的建議,但我仍然不成功。如果有人能夠使用我的代碼給我一個樣本,我會很感激。

我無法解析字符串到日期並顯示數據...下面是我的代碼。

myDAO

package source; 

import java.sql.*; 
import java.sql.SQLException; 
import java.text.SimpleDateFormat; 
import java.util.*; 


public class parseDAO { 

    private Database database; 

    public parseDAO(Database database) { 
     this.database = database; 

    } 


    public List<parseBean> results() throws SQLException { 
     Connection connection = null; 
     PreparedStatement statement = null; 
     ResultSet resultSet = null; 

     String querystring = "select * from dateparse"; 
     List<parseBean> result_array = new ArrayList<parseBean>(); 

     try { 

      connection = database.getConnection(); 
      statement = connection.prepareStatement(querystring); 


      resultSet = statement.executeQuery(); 

      while (resultSet.next()) { 

       parseBean resultsarray = new parseBean(); 
        resultsarray.setDate(resultSet.getDate("date")); 
        resultsarray.setName(resultSet.getString("name")); 
        resultsarray.setAddress(resultSet.getString("address")); 

       result_array.add(resultsarray); 
      } 
     } finally { 
      try { resultSet.close(); } catch (SQLException logOrIgnore) {} 
      try { statement.close(); } catch (SQLException logOrIgnore) {} 
      try { connection.close(); } catch (SQLException logOrIgnore) {} 
     } 

     return result_array; 
    } 
} 

myServlet

package source; 

import java.io.IOException; 
import java.sql.SQLException; 
import java.util.*; 
import javax.servlet.ServletException; 
import javax.servlet.http.*; 


public class parseServlet extends HttpServlet { 

    private parseDAO parseDAO; 


    @Override 
    public void init() throws ServletException { 
     String driver = "org.postgresql.Driver"; 
     String url = "jdbc:postgresql://localhost/myDB"; 
     String username = "postgres"; 
     String password = "secret"; 


     Database database = new Database(driver, url, username, password); 
     this.parseDAO = new parseDAO(database); 
    } 


    @Override 
    protected void doGet(HttpServletRequest request, HttpServletResponse response) 
      throws ServletException, IOException { 




      try { 
      List<parseBean> result_array = parseDAO.results(); 

      request.setAttribute("result_array", result_array); 
      request.getRequestDispatcher("results.jsp").forward(request, response); 
     } 
      catch (SQLException e) { 
      throw new ServletException("Cannot retrieve areas", e); 
     } 
    } 

} 
+0

數據庫中的類型是什麼?如果是日期/時間類型,爲什麼要調用getString? –

+0

那麼你爲什麼要調用getString? –

+0

是這是一個日期...這就是我需要幫助..如果我使用日期來調用它,我得到一個錯誤。也許你可以用這個 – toink

回答

2

在你parseBean類,改變

private String date; 

private Date date; // Note: java.util.Date, NOT java.sql.Date! 

和更改

resultsarray.setDate(resultSet.getString("date")); 

resultsarray.setDate(resultSet.getDate("date")); 

當JSP呈現這一點,使用JSTL<fmt:formatDate>與指定pattern

<fmt:formatDate value="${parseBean.date}" pattern="yyyy-MM-dd" /> 

相依的具體問題,以及您的Java Naming Conventions以及。類名應以大寫字母開頭。將parseBean重命名爲ParseBean

+0

感謝BalusC,我很高興你的回覆現在正在工作...順便說一句我有一個後續問題..使用相同的情況下,我怎麼能從文本字段添加「日期」參數... – toink