2009年11月9日月曜日

"Servlet & DbUtils & JSONIC"でDBデータをJSON出力

スズキです。

縁あって、作ってみました。

--------【Java】--------
@Override
public void doGet(HttpServletRequest req, HttpServletResponse resp)
throws IOException {
  Connection connection = null;
  try {
    Class.forName("com.mysql.jdbc.Driver");
    String url =
"jdbc:mysql://localhost/test?useUnicode=true&characterEncoding=UTF8";
    connection = DriverManager.getConnection(url, "root", "");
    QueryRunner runner = new QueryRunner();
    String sql = "SELECT * FROM SUZ_LAB";
    List<Map<String, Object>> list = (List<Map<String, Object>>)runner.query(
      connection, sql, new MapListHandler()
    );
    resp.setContentType("text/javascript");
    resp.setCharacterEncoding("UTF-8"); // 無いと文字化け
    JSON.encode(list, resp.getOutputStream(), true);
  } catch(Exception e) {
    e.printStackTrace();
  } finally {
    DbUtils.closeQuietly(connection);
  }
}
--------

▼ DbUtils
http://commons.apache.org/dbutils/

▼ JSONIC
http://jsonic.sourceforge.jp/

JSONにしてしまえば、後はjQueryで...

--------
http://www.suz-lab.com

0 コメント: