データベースとJavaをつなげよう! ~JDBC~

Slides:



Advertisements
Similar presentations
セッション管理 ソフトウェア特論 第 8 回. ここでの内容 セッション管理の基本を知る。 HttpSession の使い方を知る。
Advertisements

ASP 入門2 ー授業でアンケート集計ー. ねらい 総合実習等で、相互評価を行った際の集計を ASP + AccessDB で行う。 相互評価の点数部分は見られないように、感 想部分(テキスト)は見えるようにする。 ( 発表直後のフィードバック ) AccessDB に蓄積した得点は、 Excel.
DB(データベース)のおはなし 作成者:小野正広 DBと言っても、  ドラゴンボール ではないですぞ! 3/1/2017.
SQLite3
情報理工学部 情報システム工学科 ラシキアゼミ 3年 H 井奈波 和也
知能機械工学科 担当:長谷川晶一 TA:新・後藤・ナンバ
情報理工学部 情報システム工学科 3年 H 井奈波 和也
JPAを利用した RESTful Webサービスの開発
2006年11月15日 植田龍男 Webサービス II (第8回) 年11月15日 植田龍男.
3-1 MySQLについて 発表者:藤村元彦 自然言語処理研究室.
PHPエディタによる 情報システム演習 01.
情報理工学部 情報システム工学科 ラシキアゼミ3年 H 岡田 貴大
Servlet J2EE I 第8回 /
アプレット (Applet)について.
SQL J2EE I 第3回 /
JavaServlet&JSP入門 01K0018 中村太一.
RDBMSについて 2年7組  小鹿 慎太郎.
HTTPプロトコルとJSP (1) データベース論 第3回.
Curlの仕組み.
09 06/23 PHP と SQL (MySQL) の連携 その2
(B2) 親: minami, kazuki 多様な認証機器に対応する 認証システム (B2) 親: minami, kazuki.
SAP & SQL Server テクニカルアーキテクチャ概要 マイクロソフト株式会社 SAP/Microsoft コンピテンスセンター
14.テーブル定義,一対多の関係,多対多の関係, 外部キー,索引(インデックス),データベース操作
ServletによるWebアプリ作成 入門
ネットワークプログラミング論 平成28年12月12日 森田 彦.
マイクロソフト Access での SQL 演習 第1回 SQL問い合わせ(クエリ)
基幹理工学研究科 情報理工学専攻 後藤研究室 修士1年 魏 元
RMI ソフトウェア特論 第6回 /
Javaによる Webアプリケーション入門 第9回
データベースを使ったプログラミング ~JDBCを使ってみよう~
サブゼミ第9回 実装編③ 永続化とjava.ioパッケージ.
ネットワークプログラミング論 平成28年12月26日 森田 彦.
JDBC J2EE I 第4回 /
第2回.リレーショナルデータベース入門 SQL を用いたテーブルへの行の挿入 SQL 問い合わせの発行と評価結果の確認.
3-10. MySQLシステムの管理  2004年6月10日  大北高広                01T6010F.
第1回.リレーショナルデータベースを使ってみよう
第1回.リレーショナルデータベースを使ってみよう
第2回.リレーショナルデータベース入門 SQL を用いたテーブルへの行の挿入 SQL 問い合わせの発行と評価結果の確認.
理学部 情報科学科 指導教官 千葉 滋 助教授 学籍番号 03_03686 内河 綾
第3回.テーブルの結合 結合条件 SQL を用いた結合問い合わせ.
第3回.テーブルの結合 結合条件 SQL を用いた結合問い合わせ.
EclipseでWekaのAPIを呼び出す
Javaによる Webアプリケーション入門 第6回
JDBC データベース論 第12回.
Javaによる Webアプリケーション入門 第7回
09 06/23 PHP と SQL (MySQL) の連携 その1
WEBアプリケーションの開発 2002年度春学期 大岩研究会2.
3-3.テーブルを更新する 2004年 4月22日(木) 01T6074X 茂木啓悟.
実物投影機の使い方 その① テレビにつないでみよう。.
ネットワークプログラミング (5回目) 05A1302 円田 優輝.
09 06/23 PHP と SQL (MySQL) の連携 その2
ネットワークプログラミング論 平成28年12月19日 森田 彦.
インタラクティブ・ゲーム制作 プログラミングコース 補足資料
データベース設計 第4回 DBMSの機能と操作方法(1) Access入門
JDBC J2EE I (データベース論) 第5回 /
Servlet J2EE I (データベース論) 第12回 /
JDBC ソフトウェア特論 第3回.
統計ソフトウエアRの基礎.
EntityManager と EJB QL EJB 3.0 コース 第8回 2006年8月5日.
Webアプリケーションと JSPの基本 ソフトウェア特論 第4回.
Javaによる Webアプリケーション入門 第8回
TableAdapterとSQLDependency 便利さを使い倒そう。 by えムナウ
CO-Client Opeartion 1.1 利用履歴データベースの設計 (スキーマ バージョン 対応)
ネットワークプロトコル.
データベース第3回目 意味ごとにテーブルを分ける
第2回.リレーショナルデータベース入門 SQL を用いたテーブルへの行の挿入 SQL 問い合わせの発行と評価結果の確認.
第1回.リレーショナルデータベースを使ってみよう
SQL J2EE I (データベース論) 第3回 /
クリエイティブ リサーチ 2019/05/20 日本工学院八王子専門学校 M.Katsube.
SQL データベース論 第11回.
Presentation transcript:

データベースとJavaをつなげよう! ~JDBC~ Presented by SFC-TYPE

今回の目標 データベースをJavaプログラムから使えるようになる JDBCとは何か、説明できる JDBCの使い方を知る

1.前回の復習 MySQLとお話をする

前回の復習のポイント データベースシステムとは何か SQLを使うと何が嬉しいか ーデータベースとDBMSのこと ーDBMSの種類に依存せずに  データベースの操作ができる

奥様WEBをデータベースにしよう! 奥様Webの投稿画面は、 オリジナルレシピ・投稿画面 お名前: 料理名: 作り方:

テーブルにするとこんな感じ データベース名:okusama テーブル名:toukoudata contributor title content ishihara tamago shio takeda cake sugar kawamura medama yowabi

やってみよう!(5分間) MySQLを使って先ほどのデータベースを作りましょう(ishiharaだけ作って下さい) データベース名:okusama  テーブル名:toukoudata contributor title content ishihara tamago shio

MySQLの起動 MySQLを起動させる(前回の復習) DOSプロンプトから >mysqld-max --standalone(win95&98) >mysqld-max-nt --standalone(win 2000&xp) クライアントを使ってお話しする >mysql (リターン)

データベースの作成 データベースの作成 mysql>create database okusama; 確認するなら... mysql>show databases; データベースの選択 mysql>use okusama

テーブルの作成 テーブル内の型の定義 mysql>create table toukoudata( >contributor text, >title text, >content text >); contributor title content Ishihara tagamgo shio takeda cake sugar kawamura medama yowabi

テーブル内のデータの作成 データの追加 mysql>insert into toukoudata(contributor,title,content) >values (’ishihara’,’tamago’,’shio’);

テーブル内のデータの表示 テーブル内のデータの表示 mysql> select * from toukoudata; +-------------+--------+---------+ | contributor | recipe | content | | ishihara | tamago | shio | 1 row in set (0.01 sec) mysql>

2.JDBC 2-1.JDBCとは? 2-2.JDBC解説

2-1.JDBCとは? JDBCを理解するために必要なもの 次のURLからダウンロードしてください。 mm.mysql-2.0.14(JDBC API) IchiranSQL.java(投稿データを一覧表示する) ToukouSQL.java(新しいレシピを投稿する) 次のURLからダウンロードしてください。 http://www.crew.sfc.keio.ac.jp/seminar/2002spring2/

実行してみよう! mm.mysql-2.0.14-bin.lzhを解凍する その中にあるmm.mysql-2.0.14-bin.jarファイルを, JDKをインストールしたディレクトリ/jre/lib/ext/ 以下に置く。 例)c:/jdk1.3.1/jre/lib/ext/

実行例 投稿データを一覧表示するIchiranSQL.javaプログラムの実行 %javac IchiranSQL.java (リターン) %java IchiranSQL (リターン) Connectiog to Database.... ishihara[tamago/shio] %

Javaプログラムとデータベースがつながった! JavaプログラムとデータベースをつなぐためにはJDBCドライバが必要です JDBCは、JavaからDBを操作するための部品群です(Connectionクラス,Statementクラス、ResultSetクラス等) それでは、図で理解してみましょう

Javaプログラム、JDBC、JDBCドライバ、DBMSの関係図 MySQL JDBCドライバ Java プログラム Oracle JDBC Access

2-2.JDBCの解説 それではIchiranSQL.javaのソースコードを見ながら、Javaプログラムとデータベースがどのようにしてお話ししているか理解しましょう。

JDBCドライバを読み込む Class.forNameメソッドでJDBCドライバを読み込みます。今回はMySQLのJDBCドライバを使います。 //JDBCドライバを選択する String jdbcDriver = "org.gjt.mm.mysql.Driver"; Class.forName(jdbcDriver);

JDBC URL DBMSとの接続にはDBMS URLを指定する必要があります。URLの指定方法はデータベースの種類によって異なります。 MySQLの書式 jdbc:mysql://[サーバ名]/[データベース名] 例)jdbc:mysql://localhost/okusama/

データベースの接続 データベースの接続にはConnectionクラスを使います。 DriverManager.getConnection()を使ってデータベースに接続する。以後は、Connectionオブジェクトを通してデータベースにアクセスします。 Connection conn =  DriverManager.getConnection(url,user,password)

データベースの接続の終了 使い終わったらclose()メソッドを実行します。接続を閉じることで、データベースのメモリ等のリソースが解放され、速度が速くなります。 conn.close();

SQL文を投げるステートメントを作る SQL文を投げて結果を受け取るには、Statementクラスを使います。ConnectionクラスのcreateStatement()からStatementオブジェクトを取得します。 //SQL文を実行するステートメントの作成 Statement statement = conn.createStatement();

SQL文を投げるステートメントを閉じる statement.close

SQL文を投げて結果を受け取る(1/3) StatementクラスのexecuteQetry()は、投げたSQL文の結果をResultSetオブジェクトを返します。 //SQL文の実行 ResultSet toukoudata = statement.executeQuery(sqlString);

ResultSetとは 表です。 yowabi medama kawamura sugar cake takeda shio tamago ishihara content title contributor こんなの

ResultSet ResultSetクラスは表を保持して、必要に応じて、欲しい情報を出してくれます。 例)next()メソッド この列の表があるかをTrue/Falseで返し、 Trueならこの列の情報を保持する。 contributor title content ishihara tamago shio takeda cake sugar kawamura medama yowabi ここを見る next()で次は、 ここを見る

ResultSet ResultSetクラスは表を保持して、必要に応じて、欲しい情報を出してくれます。 例)getString()メソッド 例えば、 ResultSetが 現在ここを 指していたら、 getString(“content”) でshioが得られる contributor title content ishihara tamago shio takeda cake sugar kawamura medama yowabi

SQL文を投げて結果を受け取る(2/3) IchiranSQL.javaではSelect文を実行してみましたが、今度はInsert文を使ってデータの追加をします。 ToukouSQL.javaではデータの追加をするために、StatementクラスのexecuteUpdate()を使います。

実行してみよう! >javac ToukouSQL.java >java ToukouSQL Connecting to Database…. result of executeUpdate(): 1

ToukouSQL.javaがしたこと ToukouSQLプログラムの実行により、データの追加をしました さっそく追加されていたか、IchiranSQL.javaプログラムを実行して確認しましょう

result = statement.executeUpdate(sqlString); executeUpdate()は、投げかけられたinsert文,delete文の結果を整数で返します。 //SQL文の実行 result = statement.executeUpdate(sqlString);

整理 JDBCは主要なつのクラスを持っていました Connectionーデータベースと接続するクラス StatementーSQL文を投げかけて結果を受け取るクラス executeQuery()メソッド executeUpdate()メソッド ResultSetー結果を受け取るクラス

確認 JDBCとは何ですか? JDBCドライバとは何ですか? ー主要な3つのクラスの働きは?

ディスカッション(1/2) Statementクラスには、executeQuery()メソッドとexecuteUpdate()メソッドがありました。この二つのメソッドの違いはなんですか?

ディスカッション(2/2) ConnectionクラスとStatementクラスの違いは?

コーヒーブレイク♪ (Classpathの話) MySQLのJDBCドライバを〜jre/lib/ext/以下に置きました。ここに置かれるクラスは、javacやjavaを実行するときに参照されます。 Servletが実行されるときに参照したいクラスがある場合(例えば、JDBCドライバをServletで使う場合)、WEB-INF/lib/以下のディレクトリに置きましょう。

おわりに 今回はJavaプログラムからDBを操作する方法について学びました。来週は、DBのもっと高度な操作、機能について学びます。

課題 コンソールに対してSQL文を打つことによってDBに要求を発行できるようにする