【JavaサンプルWebアプリ#2】サーブレットでMySQLに接続する

今回の記事はこちらの記事の続きとなっております。前回はEclipseでプロジェクトを作成し、MySQL側でデータベースの準備を行いました。今回はMySQLに接続するための準備を行なっていきます。

データベース接続準備

今回作るWebでは何度もデータベースとやりとりしたいので、共通する部分を一つのクラスにまとめておきます。前回作成したプロジェクトのsrcフォルダにmodelパッケージを作成してください。そしてmodelのなかにDBConnectionというJavaクラスを作成します。

DBConnectionはgetConnectionというstaticなメソッドを持ちます。staticにしておくことでDBConnectionをインスタンス化しなくてもgetConnectionメソッドを使えるようになります。getConnectionの戻り値はConnectionです。

package model;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class DBConnection {

	public static Connection getConnection() throws SQLException, ClassNotFoundException {
		final String URL = "jdbc:mysql://localhost:3306/tododb";
		final String USER = "sampleUser";
		final String PASSWORD = "samplePass";

		Class.forName("com.mysql.jdbc.Driver");
		Connection con = DriverManager.getConnection(URL, USER, PASSWORD);

		return con;
	}
}

定数としてMySQLに接続するためのURL、接続するUSER、PASSWORDを宣言しておきます。

final String URL = "jdbc:mysql://localhost:3306/tododb";
final String USER = "sampleUser";
final String PASSWORD = "samplePass";

一行目のClass.forNameは正直なところ何をしているのかわかりませんが、サーブレットでデータベースに接続する際は必須なようです。のちにDriverManagerのgetConnectionメソッドに引数として先ほど準備したURL、USER、PASSWORDを渡します。戻ってくるConnectionを受け取ってconという変数に格納しておきます。このConnectionオブジェクトであるconをreturnしてこのメソッドは終了です。

Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection(URL, USER, PASSWORD);
return con;

Class.forNameをしたときにClassNotFoundException、DriverManager.getConnectionをしたときにSQLExceptionが発生する可能性があるのでthrows宣言によって例外を呼び出し元に投げます。

throws SQLException, ClassNotFoundException

これでサーブレットを使ってMySQLに接続するための準備が完了です。

 



データを管理するためのクラスを準備

データベースとやりとりするにあたって一つ一つのTodoを管理するためのクラスを作っておくと後々便利なので先に作っておきます。先ほどのDBConnectionと同じくmodelパッケージのなかにTodoクラスを作成します。

中身は至ってシンプルです。今回扱うtodoTabelではid、todo、timeLimitという三つのカラムが存在するのでこのTodoクラスも同じようなフィールドを準備します。他に引数なしのコンストラクタと、引数三つのコンストラクタも準備し、それぞれのフィールドのgetterとsetterも作っておきます。

package model;

public class Todo {
	private int id;
	private String todo;
	private String timeLimit;

	public Todo () {

	}

	public Todo(int id, String todo, String timeLimit) {
		this.id = id;
		this.todo = todo;
		this.timeLimit = timeLimit;
	}

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public String getTodo() {
		return todo;
	}

	public void setTodo(String todo) {
		this.todo = todo;
	}

	public String getTimeLimit() {
		return timeLimit;
	}

	public void setTimeLimit(String timeLimit) {
		this.timeLimit = timeLimit;
	}

}

次回予告

今回はこれら二つのクラスを作るところで終わりにします。次回はいよいよ、データベースからデータを取得し、Webブラウザで一覧表示してみます。

おすすめの参考書

私はプログラミング学習はUdemyで行うのが以下のような理由で圧倒的におすすめです。

  • 動画で好きなときに学べる
  • 一流のエンジニアから教えてもらえる
  • 好きな技術を体系的に学べる
  • 実際に手を動かしながら学ぶことができる
  • セール時であれば1500円〜2000円ほどで購入できる(大半の技術書より安い)
  • 講座自体がアップデートされていくので情報が古くなりにくい
  • UdemyにはJava x MySQLでWebアプリの作り方が学べる講座 もあるので興味がある方は一度チェックしてみてください!

    また無料でJavaのWebアプリ開発が学べるプログラミングスクールもあります!説明会も行っているので、一度参加してJavaを学んでみるのもオススメです!

    コメント

    タイトルとURLをコピーしました