MySQLを利用して英和辞書アプリケーションを作成してみよう。
準備
1.辞書データとして、クジラハンドさんが提供してくれている著作権フリーの英和辞書(TSVファイル)を準備する。(下から同一のものをダウンロードできる)
著作権フリーの英和辞書
1 ファイル 1.75 MB
2.解凍してejdic-hand-utf8.txtをテキストエディターで開いてみよう。
英単語と意味がタブ区切りで並ぶTSVファイルであることがわかる。
3.このファイルをもとにDBを作成しよう。まずはMySQLに以下のコマンド打ちejwordデータベースを作成する。
CREATE DATABASE ejword DEFAULT CHARACTER SET utf8;
4.wordsテーブルを以下のように作成。
CREATE TABLE words( id INT PRIMARY KEY AUTO_INCREMENT, title VARCHAR(255), body text );
5.エクリプスで新規動的プロジェクトを作成しプロジェクト名をejwordとする。
6.プロジェクトの直下にassetsフォルダを新規に作成し、そこにejdic-hand-utf8.txtを貼り付ける。
DBにインサート
7.WEB-INF/libの中にjdbcを貼り付ける(詳しくはこちらの記事参照)
8.Java Resources/srcフォルダの下にutilパッケージを作成し、その中にCreateDB.javaを以下のように作成する。(Servletではなく、mainメソッドのある普通のクラスである点に注意)
●util.CreateDB.java
package util; import java.io.BufferedReader; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStreamReader; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.SQLException; public class CreateDB { //メインメソッド public static void main(String[] args) { try { //ファイル読み込み FileInputStream fis = new FileInputStream("assets/ejdic-hand-utf8.txt"); InputStreamReader isr = new InputStreamReader(fis, "UTF-8"); BufferedReader br = new BufferedReader(isr); //データソースを利用せずダイレクトに接続する。 Class.forName("com.mysql.jdbc.Driver"); String url="jdbc:mysql://localhost:3306/ejword?useUnicode=true&characterEncoding=utf8"; String user = "root"; String pass = "root";//パスワード設定を指定ない人は""と空文字にする Connection db = DriverManager.getConnection(url, user, pass); //トランザクション処理開始 db.setAutoCommit(false); PreparedStatement ps = db.prepareStatement("INSERT INTO words(title,body) VALUES(?,?)"); String line; while ((line = br.readLine()) != null) { //1行毎にデータを登録していく String[] vals = line.split("\t"); ps.setString(1, vals[0]); ps.setString(2, vals[1]); ps.executeUpdate(); } //例外が発生しなければcommit(確定) db.commit(); db.close(); br.close(); //時間がかかる処理なのでコンソールで終了を伝える。 System.out.println("done!"); } catch (IOException | SQLException e) { e.printStackTrace(); } catch (ClassNotFoundException e) { e.printStackTrace(); } } }
9.ConnectDB.javaをJavaアプリケーションとして実行しよう。コンソールにdone!と表示され、DBにデータが入っていれば成功だ。
JSP & Servlet-15日目(英和辞書アプリの作成2)
英和辞書アプリの作成を前回の続きから行う。準備1.META-INFの直下にcontext.xmlを配置する。passwordのところはusernameとpasswardはDB接続時に必要な値を入れる。もし、パスワードの設定を指定にない人はp...
コメント