きよツールWeb:環境導入
眠すぎて1日じゅうほとんど寝ていた(←だめ人間)が、Web開発環境だけでも作っとくことにした。
環境はLet'sNote上のWindows7/32bitProである。
できたものについてメモル
Eclipse
Pleiades All-in-one Javaを取得して展開した
Java8とか使いたいし、Lunaをふつうにインストールした。で、環境変数JAVA_HOMEをJDK8に、PATHをJAVA_HOMEのbinに。
ふつうに起動して、色とフォントとか自分好みに変えて、BlueWindに登録した。
MySQL
フリーCommunityEdition(?)ってGPLか。デスクトップ版のきよツール(クイズ予習)みたいに難読化して秘密だようっへっへーってことはできないな。この辺は習熟したらPostgresとかSQLiteに逃げりゃいいかな?
MySQL :: Download MySQL Installer
から、mysql-installer-web-communityなんちゃらをインストールする。当初mysql-serverみたいなものをDLして使い方がさっぱりわからなかったが、こちらなら特に問題なかった。
あとJDBC(Connector/J)入れとく。
これはMSIを起動すると立ち上がって無言で終わってくれるが、MYSQL HOMEのサブパスにjarが入るみたいだ。
で、mysql -u root -pしてrootパスワード設定しとく。
SET PASSWORD FOR root@localhost=PASSWORD('uryyyyy');
サンプルWebApp作る
Eclipse立ち上げて、適当にTomcatサーバー作る。そのあと、新規>動的Webプロジェクト>名前つけて作成
プロジェクトプロパティ>ビルドパスでclassファイルの出力先がBuild/ClassesになってるのWebContent/WEB-INF/classesにした。
MySQLから、
create database testdb; grant all on testdb.* to dbuser@localhost identified by 'password'; use testdb;
あとSQLかいとく。
create table bbs ( id int AUTO_INCREMENT PRIMARY KEY, time BIGINT, user VARCHAR(24), subject VARCHAR(255), body TEXT ); insert into bbs (time,user,subject,body) values (0, 'Someone', 'hello', 'nice tomeet you.');
で、データベース&テーブルができてるの確認したら、試しにドノーマルなJavaで接続してみる。
import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class ConnTest { public static void main(String[] args) { new ConnTest().connect(); } public void connect() { try { Class.forName("com.mysql.jdbc.Driver"); } catch (ClassNotFoundException e) { e.printStackTrace(); } String s = "jdbc:mysql://localhost/testdb" + "?user=dbuser&password=password" + "&useUnicode=true&characterEncoding=UTF-8"; try { Connection conn = DriverManager.getConnection(s); Statement stmt = conn.createStatement(); String sql = "SELECT * FROM bbs ORDER BY id"; ResultSet rs = stmt.executeQuery(sql); while (rs.next()) { int id = rs.getInt("id"); long t = rs.getLong("time"); String user = rs.getString("user"); String subj = rs.getString("subject"); String body = rs.getString("body"); System.out.println(id); System.out.println(t); System.out.println(user); System.out.println(subj); System.out.println(body); } conn.close(); } catch (SQLException e) { e.printStackTrace(); } } }
特に問題なければ、これを新規JSPにコピペしてJSPに沿ったものに変える。
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="java.sql.Connection" %> <%@ page import="java.sql.DriverManager" %> <%@ page import="java.sql.ResultSet" %> <%@ page import="java.sql.SQLException" %> <%@ page import="java.sql.Statement" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>掲示板</title> </head> <body> <% Class.forName("com.mysql.jdbc.Driver"); String s = "jdbc:mysql://localhost/testdb" + "?user=dbuser&password=password" + "&useUnicode=true&characterEncoding=UTF-8"; Connection conn = DriverManager.getConnection(s); Statement stmt = conn.createStatement(); String sql = "SELECT * FROM bbs ORDER BY id"; ResultSet rs = stmt.executeQuery(sql); while (rs.next()) { int id = rs.getInt("id"); long t = rs.getLong("time"); String user = rs.getString("user"); String subj = rs.getString("subject"); String body = rs.getString("body"); %> id:<%=id %><br /> time:<%=t %><br /> user:<%=user %><br /> subject:<%=subj %><br /> body:<%=body %><br /> <% } conn.close(); %> </body> </html>
実行>サーバーで実行
自分の場合特に問題なさげだった。
参考にしたもの
- 本
Java + MySQL + Tomcatで作る掲示板とブログ
- 作者: 竹形誠司
- 出版社/メーカー: ラトルズ
- 発売日: 2005/06/01
- メディア: 単行本
- 購入: 3人 クリック: 85回
- この商品を含むブログ (4件) を見る
- あと自分でかじった知識少々