37
53

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

JDBCドライバでMySQLに接続

Last updated at Posted at 2016-08-30

新人SEだった頃に勉強した、JavaからDB接続するための基本的なコード。
実際の業務で生jdbcを使う機会はたぶん無いでしょうが、一応忘れないようメモしておきます。

UseJdbc.java

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

/**
* localhost上のデータベースと接続し、取得したデータをコンソール出力する。
*/
public class UseJdbc {

	public static void main( String args[] ) throws Exception {

	    /*接続先サーバー名を"localhost"で与えることを示している*/
	    String servername     = "localhost";
	    
	    /*接続するデータベース名をsenngokuとしている*/
	    String databasename   = "senngoku";

	    /*データベースの接続に用いるユーザ名をrootユーザとしている*/
	    String user = "root";

	    /*データベースの接続に用いるユーザのパスワードを指定している*/
	    String password = "password";

	    /*取り扱う文字コードをUTF-8文字としている*/
	    String serverencoding = "UTF-8";
	  
	    /*データベースをあらわすURLを設定している*/
	    String url =  "jdbc:mysql://localhost/" + databasename;
	    
	    /*MySQLの場合、URLの形式は次のようになります。
	      jdbc:mysql://(サーバ名)/(データベース名)*/

	    /*↑データベースをあらわすURL(データベースURL)は、データベースに接続する場合に
	    必要となる情報をセットした文字列である。
	    この文字列の構造は、"jdbc"、サブプロトコル、サブネームの3つの部分から構成される。*/

	    /*接続を表すConnectionオブジェクトを初期化*/
	    Connection con = null;

		try{

			/*クラスローダによりJDBCドライバを読み込んでいることを示している。
			引数は、データベースにアクセスするためのJDBCドライバのクラス名である。*/
			Class.forName( "com.mysql.jdbc.Driver" ).newInstance();

			/*DriverManagerクラスのgetConnectionメソッドを使ってデータベースに接続する。*/
			con = DriverManager.getConnection( url, user, password );

			System.out.println( "Connected...." );

			/*データベースの接続後に、sql文をデータベースに直接渡すのではなく、
			sqlコンテナの役割を果たすオブジェクトに渡すためのStatementオブジェクトを作成する。*/
			Statement st = con.createStatement();

			/*SQL文を作成する*/
			String sqlStr = "SELECT * FROM busyou";

			/*SQL文を実行した結果セットをResultSetオブジェクトに格納している*/
			ResultSet result = st.executeQuery( sqlStr );

			/*クエリ結果を1レコードずつ出力していく*/
			while( result.next() )
			{
				/*getString()メソッドは、引数に指定されたフィールド名()の値をStringとして取得する*/
				String str1 = result.getString( "code" );
				String str2 = result.getString( "name" );
				String str3 = result.getString( "syozoku" );
				String str4 = result.getString( "born_era" );
				System.out.println( str1 + ", " + str2 + ", " + str3 + "," + str4);
			}
			
			/*ResultSetオブジェクトを閉じる*/
			result.close();
			
			/*Statementオブジェクトを閉じる*/
			st.close();
			
			/*Connectionオブジェクトを閉じる*/
			con.close();
	    }
		catch( SQLException e ){
		
			/*エラーメッセージ出力*/
			System.out.println( "Connection Failed. : " + e.toString() );
			
			/*例外を投げちゃうぞ*/
			throw new Exception();
			
		}catch (ClassNotFoundException e){
			
			/*エラーメッセージ出力*/
			System.out.println("ドライバを読み込めませんでした " + e);
		}
		finally{
			try{
				if( con != null ){ 
					con.close();
				}
      		}
			catch(Exception e){
			
				/*エラーメッセージ出力*/
				System.out.println( "Exception2! :" + e.toString() );
				
				/*例外を投げちゃうぞ*/
				throw new Exception();
			}
		}
	}
}
37
53
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
37
53

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?