0

postgres で「日付」列を含むテーブルを表示しようとしています。これまでの文字列の解析と関係があると思います。単純な日付形式を使用してみましたが、うまくいきません。

私は実際に以前に同様の質問を投稿し、与えられた提案を試みましたが、まだ成功していません. 以下の私のコードを使用して、誰かが私にサンプルを提供してくれれば幸いです。

現在までの文字列を解析してデータを表示することはできません...以下は私のコードです。

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;
    }
}

私のサーブレット

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);
        }
    }

}
4

1 に答える 1

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>

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

具体的な問題とは関係なく、 Java 命名規則にも取り組みます。クラス名は大文字で始める必要があります。に名前を変更parseBeanParseBeanます。

于 2012-05-21T14:18:53.867 に答える