※ ChatGPTを利用し、要約された質問です(原文:JSPからMysqlへの接続)
JSPからMysqlへの接続
このQ&Aのポイント
JSPからMysqlデータベースに接続する方法について説明します。
JSPでMysqlデータベースに接続し、データを表示する方法を解説します。
JSPとMysqlを連携してデータを取得し、表示する手順を説明します。
タイトルどおり、以下のようなコードでMysqlデータベースに接続しようとしました。
<%@ page contentType="text/html; charset=Shift_JIS" import="java.sql.*" %>
<html>
<head>
<title>データを表示する</title>
</head>
<body>
<%
//データベース設定
String sv = "localhost"; //サーバ名
String db = "test"; //データベース名
String user = "feifei"; //ユーザ名
String pass = "feifei"; //パスワード
String encode = "EUC_JP"; //文字コード
//データベースに接続する
Class.forName("org.gjt.mm.mysql.Driver");
String url = "jdbc:mysql://" + sv + "/" + db
+ "?user=" + user
+ "&password=" + pass
+ "&useUnicode=true&characterEncoding=" + encode;
Connection conn = DriverManager.getConnection(url);
//データを取得する
Statement st = conn.createStatement();
String sql = "SELECT * FROM table1"; //実行するSQL
ResultSet rs = st.executeQuery(sql);
//データを全件表示する
out.println("<table border=0>");
while(rs.next()){
out.println("<tr>");
out.println("<td>" + rs.getInt("id") + "</td>");
out.println("<td>" + rs.getString("name") + "</td>");
out.println("<td>" + rs.getInt("point") + "</td>");
out.println("</tr>");
}
out.println("</table>");
//データベース接続を閉じる
conn.close();
%>
</body>
</html>
しかし、なぜかわかりませんが、表示した内容のうち日本語はすべて[?]と文字化けしてしまいます。
ちゃんとディレクティブで「charset=Shift_JIS」と指定しているのになぞです。
どうか教えてください。よろしくお願いします。
お礼
ありがとうございました。 EUC_JPをShift_JISに変更することで解決しました。