Javaから以前インストールしていたMySQLに接続してみる。
使用したバージョン
MySQL Server 5.0
MySQLをインストールしたフォルダにあった"mysql-connector-java-5.0.4-bin.jar"を
Tomcate5.5\shared\libへコピー。
コピー元
2.DBアクセスクラスを作成
package info.searchman; import java.sql.*; public class DatabaseAccess { private String driver; private String url; private String user; private String passwd; private Connection con; private Statement stmt; private ResultSet rs; /** * コンストラクタ */ public DatabaseAccess() { driver = "org.gjt.mm.mysql.Driver"; //接続情報の定義 url = "jdbc:mysql:///lab?useUnicode=true&characterEncoding=SJIS"; user = "root"; passwd = "****"; } /** * データベースに接続 */ public synchronized void open() throws Exception { // ドライバクラスをロード Class.forName(driver); // データベースへ接続 con = DriverManager.getConnection(url,user,passwd); // ステートメントオブジェクトを生成 stmt = con.createStatement(); } /** * データベースから切断 */ public synchronized void close() throws Exception { if (stmt!=null) { stmt.close(); } if (con!=null) { con.close(); } } /** * クエリーを実行(検索) */ public ResultSet executeQuery(String sql) throws Exception { return stmt.executeQuery(sql); } /** * クエリーを実行(新規、更新、削除) */ public int executeUpdate(String sql) throws Exception { return stmt.executeUpdate(sql); } }
labのところはスキーマ名を記述。あとはユーザとパスワードを各環境に合わせて修正すること。
ちなみに今回のlocalhostで接続したけどDBサーバの指定はどうすれば?
これでよいみたい↓(未検証)
jdbc:mysql://サーバ名:ポート/スキーマ?useUnicode=true&characterEncoding=sjis
3.呼び出し元クラスの作成
package info.searchman; import java.io.*; import javax.servlet.*; import javax.servlet.http.*; import java.sql.*; public class HelloWorld extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { response.setContentType("text/html"); PrintWriter out = response.getWriter(); out.println("<html>"); out.println("<head>"); out.println("<title>Hello World</title>"); out.println("</head>"); out.println("<body>"); out.println("<h1>Hello World!?</h1>"); DatabaseAccess db = new DatabaseAccess(); // // データベースに接続 try{ db.open(); ResultSet rs =db.executeQuery("SELECT * FROM items"); //カラム"description"を出力 while(rs.next()){ out.println("<h1>" + rs.getString("description") + "</h1>"); } } catch (Exception e) { } out.println("</body>"); out.println("</html>"); } }
4.以下のurlにアクセスして正常に動作するか確認
参考にしたサイト