kiyo_hikoのブログ

メモ+日記?

きよツール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にした。

WEB-INF/libにJDBCのjarコピーしとく。

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.');

MySQLに「\. ファイル名.sql」で投入

で、データベース&テーブルができてるの確認したら、試しにドノーマルな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で作る掲示板とブログ

Java + MySQL + Tomcatで作る掲示板とブログ

  • あと自分でかじった知識少々