CodeCamp(コードキャンプ)のJavaマスターコースレビュー・感想|9日目

こんにちは。コードキャンプ株式会社が運営するプログラミングスクール「CodeCamp(コードキャンプ)」でプログラミングを学習している高橋です。

高橋吾郎
プログラミング初心者の高橋吾郎です!

現在は全く別の業界で働いていますが、今後はシステムエンジニアとしてのキャリアに進もうと思っています。その準備として、JavaマスターOLコースでJava開発の基礎を学んでいきます!

私が受けているコースは「Javaマスターコース」。Javaは、数あるプログラミング言語の中でも、日本国内において、特に求人案件数が多い言語です。CodeCamp(コードキャンプ)の「Javaマスターコース」では、Javaエンジニアには必須の「オブジェクト指向」から、「JSP/サーブレット」「データベース連携」まで、Javaを用いてWebアプリケーションを開発するために必要な知識を基礎から実践まで学びます。

受講回数は2ヶ月(20回)、4ヶ月(40回)、6ヶ月(60回)の3つから選べます(今回は2ヶ月間受講します)。

それでは、2018年11月17日に受講した、Codecamp(コードキャンプ)「Javaマスターコース」第*回目の学習内容をレビューします

Javaマスターコース9日目|CodeCamp(コードキャンプ)

本日の講師:勝田郁郎先生

普段はSOHOにてWEB系、ソーシャルゲーム関連の開発を行っております。
実務に基づいた使えるスキルを丁寧に解りやすくお伝えいたします。

現在学んでいる箇所では無い箇所の質問も、是非して下さい。
どんな質問を何度して頂いても構いません。
理解し、使いこなせるようになるまで、お手伝いさせて頂きます。
いっしょに頑張りましょう。

引用:CodeCamp(コードキャンプ)

第9回目のレッスンで学んだことは以下の内容です。

CodeCamp(コードキャンプ)Javaマスターコース第9回目のレッスン内容

  1. 環境の整備

  2. SQLの書き方

1.環境の整備

高橋吾郎
本日はよろしくお願いします。

今回は最終課題でも必要になるデータベースについて勉強しようと思うのですが、教科書で使われているh2がうまく導入できませんでした。まず初歩的な質問なのですが、クラスパスを追加するというのはどういうものなんでしょうか。

勝田郁郎先生
WindowsがJavaのプログラムからh2を起動する時に、どこのフォルダのh2という言い方はしたくありませんね。

なので、h2と言えばこれ、と教えるみたいな作業のことをクラスパスを通すと言います。

高橋吾郎
そういうことなんですね。

サイトをみながら見よう見まねでやっていましたが、何の為にやっているのかわからなかったので勉強になりました。

さて、今回教科書のコードを入れてみましたが動作しません。一体何故なのでしょうか。

勝田郁郎先生
コードを見てみましょう。

29行目のコネクターがサンプルになっていますね。

 

勝田郁郎先生
これをh2コンソールに表示されているものに変えましょう。

高橋吾郎
ここは環境によって変えなければいけなかったのですね。

高橋吾郎
お、ちゃんと動きました!

無事にデータベースに接続させることができてよかったです。

勝田郁郎先生
ところで、データベースの章は実はJavaの話ではありません。

データベース、っていうのは言ってみれば一つの言語なんですね。これからは「データベース」と「Java」を組み合わせて使うという感じになります。

高橋吾郎
Javaだけでも大変でしたが、これから新しい言語をやるのですか?!大変だ(笑)
勝田郁郎先生
Javaではifだとかforだとか文法をいろいろやってきましたね。

ところがそれと比べると、データベースはすごく簡単で、構文が四つしかないんですね。

高橋吾郎
ほっ(笑)
勝田郁郎先生
SELECTのことを「参照系の命令」といってそれ以外のものを「更新系の命令」と言います。SELECTだけちょっと複雑で、何故ならいろんな条件で検索できるからですね。これを使えば好きな条件「平均したい」「合計したい」などを行ってデータを絞り出すことができます。

それ以外の更新系は本当に単純で、例えばINSERTなどは一種類しか書き方がありません。UPDATEやDELETEも「どれを」という指定が入るだけで書き方はそう変わりません。

それでは順番に教科書をみてみましょう。

JDBC(Java Database Connectivity)というものがあります。これがどんなものかっていうと、「Java用の、データベースに接続してくれる便利なやつ」です。

データベースっていうのはJavaからしたら外部のプログラムですね。これを正直に使おうと思うと、すごいめんどくさい手順がいっぱい必要になってくるんですね。それを簡単にしてくれているのがJDBCです。これはh2以外のMySQLやOracleなどに接続する際にも利用することができます。

高橋吾郎
そうなんですね。

確かに、環境が変わってもこのドライバを変えるだけでいいのは便利ですね。

18行目の”org.h2.Driver”の部分を変えることで、
他のデータベースを利用することができる

高橋吾郎
ちなみに、h2などのプログラムの中ではどれがよく使われているのでしょうか。
勝田郁郎先生
MySQLとOracleが二強でしょうか。MySQLは無料なので、安く導入できるという点も人気があります。

教科書では導入が簡単ということでh2が紹介されていますが、現場で運用しているというのはあまり聞いたことがありません。

高橋吾郎
そうなんですね。

それでは将来MySQLを使うことになるかなとも思うので、近々触ってみたいと思います!

2.SQLの書き方

高橋吾郎
実際にはどのようにしてsql文を書いていくのでしょうか。
勝田郁郎先生
教科書のサンプルコードを見てみましょう。

勝田郁郎先生

と書いてある部分がありますね。これはこういう書き方なのだということで覚えてしまいましょう。

”?”と書いてある部分がありますね。ここは「あとで埋め込むからよろしく」っていう状態です。

どうしてこういう書き方をするのかというと、最終的にはセキュリティの問題が出てきます。我々エンジニアが気にしなければならないことの一つに「SQLインジェクション」というものがあります。

高橋吾郎
インジェクション……「注射」、でしょうか。

プログラムの中に不正なデータを入れるということですか?

勝田郁郎先生
そうですね。

ユーザーからの受付をする際にユーザーがそもそもSQLを入力してくることで、思わぬSQLが実行されてしまうという悪いことを考えるやつがいます。このPrepared Statementを用いることでサニタイズ(消毒)した上で実行してくれます。これがこういう形で書く一番の理由です。

高橋吾郎
エンジニアとして活動していくにそういったことも考えなければいけないのですね。

さて、この”?の中にはどのように値を入れるのでしょうか。

勝田郁郎先生

という部分がありますね。第一引数でクエスチョンの何個目に入るかを指定します。

高橋吾郎
この書き方だと(id,”ユーザー”+id)という形で入る訳ですね。
勝田郁郎先生

このようにしてセットした値を「int cnt = pstmt.executeUpdate();」といった形でデータベースの更新を行います。

その後、データベースが何件更新されたのかを返す、っていうのがデータベースの一般的な流れになります。

ツイッターなんかで例えますと、”?”の部分に「誰が」「いつ」「何を」呟いたのかという情報を入れることで、INSERT文でツイッターのようなデータベースを作ることができますね。

間違ったツイートを削除したいからDELETE、編集したいからUPDATE、を使うことでそれぞれの機能を追加することもできそうですね。検索したい時にはSELECTを利用すればいいでしょう。

高橋吾郎
確かに……!

データベースの利用のイメージを掴むことができました!

勝田郁郎先生
データベースの書き方っていうのは誰が書いても同じような書き方になります。

データベースのテーブル名とか、”?”の数が変わるだけなので、エンジニアがオリジナリティを出しにくいところですね(笑)

Javaマスターコース9日目の感想|CodeCamp(コードキャンプ)

今回は新しいプログラムを使うため環境を整えるのに時間がかかってしまいました。独学だとこういった面で挫折しやすいかなと思うので、先生を頼ることができて良かったです(笑)

また、今回のデータベースの話でもあったように、新しい技術を学ぶ度にどういった形で利用するのかを紹介していただけるのでイメージが湧きやすく実際に必要になった時にどの機能が必要なのか、連想しやすいと思いました!今後のプログラミングに活かしていけたらと思っています!

CodeCamp(コードキャンプ)の「Javaマスターコース」とは

CodeCamp(コードキャンプ)の「Javaマスターコース」は、Javaエンジニアになるために必要な知識を基礎から実践まで学べるコースです。

>>無料体験レッスン受講で10,000円OFFクーポンプレゼントキャンペーン実施中

CodeCamp(コードキャンプ)「Javaマスターコース」の料金

2ヶ月
  • 料金:148,000円(税抜)
  • レッスン回数:20回
  • 受講期間:60日間
  • 週の学習時間目安:20〜25時間
4ヶ月
  • 料金:248,000円(税抜)
  • レッスン回数:40回
  • 受講期間:120日間
  • 週の学習時間目安:10〜15時間
6ヶ月
  • 料金:298,000円(税抜)
  • レッスン回数:60回
  • 受講期間:180日間
  • 週の学習時間目安:5〜10時間

LINE@無料相談

無料で相談する

編集部がプログラミングスクール選びのアドバイスをさせていただきます。「スクールがたくさんあり過ぎてどれを選べば良いのか分からない」「どの言語を勉強すれば良い?」「転職に有利なスクールはどこ?」など、どんな質問でもOKです!気軽にご連絡ください★