基礎からのMySQL②

はい!イノマーです! まずは基本的な所から データベースの作成 dbという名前のデータベースを作ります。 で作成されたデータベースを確認します。 すると このように作成出来たことが確認できました。 このなかで使用するデータベースを選択します。 で現在使っているデータベースを表示させ確認出来たらテーブルを作ります。 テーブルの作成 お次はデータベース内にテーブルを作っていきます。 これも同じように CREATE TABLE テーブル名 VALUES(カラム名 データ型、カラム名 データ型、・・・); と設定してやるだけ 今回は任意の番号に名前と年齢のテーブルを作成しました。 確認します。 カラムの構造の確認もしたいので DESC テーブル名; テーブルにデータを入れていきます。 INSERT INTO tb VALUES(データ1, データ2, …); 確認すると うまく入りました! ここらへんは難なく出来ています!ただ覚える内容が多そうだ、、、あとは慣れだな思います。

Hibernate + MySQL をはじめます

こんにちは!よしときです。 前回は心折れて残念な感じでしたが、今回は気持ちを入れ替えてHibernateというフレームワークをはじめたいと思います。 まずはいつも通りHibernateをダウンロードしました。 そして、このフレームワークではMySQLを使うので折角の機会なので今後やる予定であったMySQLを同時にはじめます! というわけで今回は こちらを使って勉強していきます。 そしてMySQLをダウンロードします! 今回は推奨されているXAMPP(ザンプ?)をダウンロード! ApacheとMySQL、PHPが一緒になっているものらしい?ですね とにかくこちらをダウンロードしてみました。 そして最初は初期設定! 本に書いてあるのはWindows用のやり方なので今回は http://www.php-labo.net/tutorial/ready/xampp_mac.html を参考に設定してみました。多少バージョンは違いますが、なんとかセキュリティ系は終了。 次に文字コードを変更はこちらを参考に http://ortk.main.jp/blog/?p=67 http://cocoa.ultrahidex.com/2011/11/mac%E7%89%88xampp%E3%81%AEmysql%E3%82%92%E6%97%A5%E6%9C%AC%E8%AA%9E%E3%81%A7%E6%96%87%E5%AD%97%E5%8C%96%E3%81%91%E3%81%97%E3%81%AA%E3%81%84%E3%82%88%E3%81%86%E3%81%AB/ やはり多少バージョンが違ったので my.cnfの[mysqld]の default-character-set = utf8 を character-set = utf8 とかえました 次にターミナルからパスを設定し、起動しやすくするために少々てこ入れ http://blog.doli.jp/blog/2012/post616/ ここを参考に行いました。 これで無事にMySQLをターミナルで起動することができました! バージョンが違ったりOSが違うと本当大変なんですねー。。 ということで今日はここまで! 今日は全然進まなかったなぁ(時間だけはすごい食いました)

挫折:JSF

こんにちはよしときです。 本日は失敗談となりますのでご注意。 というのも、前回Struts2が終わり意気揚々と次のJSFに入ったのですが、完全にちんぷんかんぷん。 とことんうまくいきませんでした。 そもそもMacでEclipseで運用じたいが・・・もごもご 今回は最終的に躓くところまでを箇条書き形式で、問題点、解決した方法を合わせて書いていきます。

GrassFishを使えるようにしてJSFをつかおう!

  1. ダウンロードをする
    • 問題点:どれをダウンロードする?
    • 解決:とりあえず、ファイル系をzipでダウンロードして解凍。
    • 解決:その後Eclipseのマーケットプレイスよりインストール(インストール先は先ほどの解凍したファイル)
  2. EclipseのサーバーにGlassFishを指定
  3. JSFのプロジェクトを作る
    • 問題点:うまく作れない
    • 解決:構成をJavaServerFaces v2.0に指定
  4. 表示部分のxhtmlを作る
    • 問題点:作るもののエラーがでる
    • 解決:新規jspファイルとして作成し、テンプレートを決める部分でJSFページを選択(拡張しはjsp)
  5. サンプルコード(Hello World)を書く
  6. bean部分を書く
  7. web.xmlを編集
  8. GlassFishで実行
    • 問題点:html error:500 NullPointerExceptionがでる
    • 解決:表示部分のファイル形式をjspからxhtmlに変更>エラーが出るが実行して表示できる
ここまでやって心折れました。ここまでで何時間かかったか分かりません。 なぜjsp形式のまま実行できないのか>本にはOKと書いてある なぜxhtml形式だとエラーがでるのか>本についてるサンプルコードではxhtml形式で保存されている というところが最も大きな疑問です。 たとえ表示できたとしてもエラーがでつつ、というのは気持ちがいいものではないですね。 恐らくなのですが、起動環境であったりJSF GlassFish Eclipseのverの違い、本に書いてあるものが非推奨になってる?などなど理由が考えられます。 よくわからないのですが、とりあえずJSFについては少しすこし動かしてみて、GUIをより直感的に動かせるフレームワークだ。ということが分かったのでこれでよしとします。 腑に落ちませんが。 とにかく今はいろんなものに触っていきたいので次に行きます!!! よしときでした!

基礎からのMySQL①

はい!イノマーです。 フレームワーク入門に苦戦しながら、ようやくHibernateの学習を終わらせた訳ですが、 ここでは多少のMySQLの知識が必要だったので、同時並行でMySQLの学習もしていた訳です。 元々スクールではPostgresSQLの受講をしていたのですが、今後使っていくことになるのはMySQL ということで取りかかっています。 PostgresSQLでだいたいのことは学んだので内容の理解はより深まり スムーズに進んでいます。 コチラの書籍を使って勉強しているのですが、Javaフレームワーク入門の書籍より読みやすくて、、、、 だだやはり導入の部分でかなり手こずったので今回はそれらをまとめたいと思います。 XAMPPの導入 以下のページに飛べば簡単に落とせます。また過去にMySQLなどインストールしたことがなければ、指示通りに行うだけで難なくこなせると思います。 https://www.apachefriends.org/jp/index.html とくに難しいことはないのですが、いろいろと設定が必要でした。 こちらにお世話になりました。 http://www.php-labo.net/tutorial/ready/xampp_mac.html うまくいけばこんな感じで起動してくれます。 問題はここからです。 書籍通りに学習を進めていくとカラム構造の変更で データ型を変更することになりました。 単にnameというカラムの文字数を100に変えるだけなんですが、事件は怒りました。 それまで表示されていたnameが文字化けを起こしていたのです。 文字コードの設定もしっかり行っていたのになぜ? そこで文字化けしたテーブルを確認してみると charactersetがlatin1になっていました。 そこでいろいろ調べていき、コチラのブログを参考にさせてもらいました。 http://interu.hatenablog.com/entry/2013/11/19/120322 というわけでなんとか文字化けの問題も解決しました。
Struts2Calender

Struts2:JavaScript(非推奨)

こんにちは、よしときです。 少し間があいてしまいましたが、Struts2が終わったので更新します。 今回もStrutsと同様に、ざっと使ってみただけなのですが結構悩んだ点などあるのでいくつか書いていきます。    

Struts2でJavaScriptを使おう!

さて、Struts2でJavaScriptを使おう!とうことで今回は「dojo plugin」なるものを使いました。 すごくすごく悩みました。 全然うまく行かない。表示させようとしてもエラーがめっちゃ出る。。 載っている本の通りに打ってるはずなのに。。。 なんでだろうdojo。。 っておい!!! 検索してみたらすごい言葉が。。 Dojoプラグインは非推奨となりました おーーーーい!!!そりゃうまくいかないっすよ。。もーこれはしょうがないっすね。結局古いバージョンのDojoPluginを使って表示だけさせたのですが、こんなこともあるんですね。 今回でフレームワークは日進月歩ものすごい勢いでアップデートが進み非推奨もあるのでちゃんと調べよう!ということが学べました。 ちなみにこの文章もhtml直打ちで書いてるのですが、非推奨使いまくりです。以後気をつけなくては。。 まぁ一応こんなの作りました。 Struts2Calender

id label property name key

今回、というかずっと気になっていたことなのですが、このnameやらidとかの違い、区別がしっかりできていないんです。自分。 分かる人にとってはヤバいよ?って思うかもしれないのですが、毎回悩みます。 単純に意味だけみると name = 名前 id(identification) = 同一であることの証明、身分証明 property = 所有物 label = 表示、ラベル key = 鍵 となっています。 例えば というタグが出てきたのですが、 nameが名前とみるとラベルとの違いが、、って感じです。 まぁこのぐらいならタグを他の場所から見た場合の名前がnameでlabelが外から見た名前(表示テキスト)と分かります。 実際アクションクラスでtext1やselect1のアクセサ作ってたりするので他の場所で使っていることが分かります。 しかし となってくると 「さっきのnameと今回のidって何が違うの?」となってくるのです。 ついには も出てきます。。それだけじゃないぜ となってやがる。ファーーー よくわからないので変えてみました。 まず上記のlabel=”Message”をlabel=”メッセージ”に、key=”text1″をname=”text1″に変えてみてみました。 Struts2exe1   これが Struts2exe2   これに       変わらない。。。 つまり name と key は 変わらないんですね! タグリファレンス見るとちょっとした違いはあるようですがまぁまぁ、、 次に の方を見ていきます。 サンプルとして全体像を これがjsp部分 アクションクラスは となっています。 表示は Struts2exe3 こんな感じ 次にjspをこんな風に変えてみました。(head部分は省略) id だけを text1 から textid に変えてみました。 表示させてみると普通にうまく行きます。 なにがちがうのかなーと表示のソースを見ると 上の表示枠のidが このように変化していました。 次に と label の name の部分を tex に変えてみました すると入力フィールドは表示される物の、何か入力しても表示はされませんでした。 ということでまとめると
  • name はアクションとのひも付けの名前
  • id は表示させた後のid属性
  • label は表示
  • Strutsのnameがproperty
ということでした。 なるほど納得! id属性についてもちょっと調べましたが、そのものユニークな名前ということで、そのもの単体を扱う時に使うみたいです。 「ちょっと男子ー掃除してよー」 だと男子全員だけど 「ちょっとid=”田中”ー掃除してよー」 だと田中君だけを指名している訳ですね。 あってるよな。。(汗) とにかく今更ながら悩んだ部分なので書いてみました。 さー長くなりましたがとりあえずStruts2が終わったのでおつぎはJSF!!! 以上よしときでしたー

PostgreSQL学習 ~selectの応用~

こんばんは、うさです。 本日で「select文」でデータの照会がだいたい習い終わったので、 データ照会の応用を一つ照会します!! まず、 sex:性別 sal:給与 employee:社員名簿 であり、 「sex」は”1″が’男性’、”2″が’女性’となっています。 上のコードを実行すると、
性別 給与
1 15000
2 10000
といった具合に表示されます。 それを、以下のように表示させた方が使いやすい時があるので、 コードを変えてみます。  
男性合計 女性合計合計
15000 10000 25000
こちらは「case」を使って、 「sex」(性別)が”1″(男性)ならば、「sal」(給与)を加算して、それ以外は加算しない “2”(女性)の方も同じように行い、 最後は全部の合計を出しています。 どちらの方が良いというのはありませんが、 表示をさせたいようにコードを書けるように頑張ります!! ちなみに、このように各方法を『クロス集計』というらしいです!! 以上、うさでした。
StartStruts2

Struts2始めました

こんにちは。よしときです! 今日からStruts2を始めました。とはいえ10個のフレームワークをやるのでさわりだけなのですが、、 ということで今回は導入ということでStruts2の構成を学んで少しだけ使ってみました。 前回やったStrutsの構成は
  • [Model]アクションフォーム
  • [View]JSP
  • [Controller]アクションクラス(アクションサーブレット)
となっていました。 今回学ぶStruts2は
  • [Model]
  • [view]JSP
  • [Controller]アクション(インターセプタ)
となっているようです。 Modelにあたる部分がないんですねー、アクションのファイルにbeanがあるのでcontroller部分と一緒になってるのかな。という感じがしました。 構成が分かったところで実際に書いていってみました。 まずは表示部分を! タグライブラリーの宣言(taglibのとこ)が簡単になってる!これは嬉しいw やってることは簡単ですね!labelがテキストを表示させるとこでtextfieldが入力するとこです。 次にアクションクラスを作ります お、これまた簡単! text1とfield1というフィールドをつくり、そのアクセサを作ってますね。 んでもういっちょexcuteというメソッドを作ってます。 これはtext1にfieldからゲットした情報をセットするんですねー、特徴はreturnですね! 意味はpage1という名前のページ遷移を行う。とのこと!うん!わからん! 本には「アクション時のページ移動を登録しておきexecuteでreturnする際にその名前を指定することでページ遷移を行えるようになっています。」と うーん、、ページ遷移ねぇ、、 とりあえず次にいって、sturts.xmlの作成。 これで設定とか決めていくようです。 おおお?resultのところにpage1の姿が!!!これか!!! この部分でpage1というワードが来たらpage1.jspを表示となっているようです。おおーーー納得!!! よかったよかった。 そしてあとはweb.xmlを編集して(難しいので割愛)表示! ドーーン StartStruts2 おーーー!気持ちStrutsより簡単だった気がしますけど慣れてきただけですかね? ただ設定がやっぱめんどくさいですね。xmlとか触ったことないですし。 以上!スピードあげてくのでこの辺で!
StrutsLogic

Struts終わったよ!

こんにちは。よしときです! 今日でStrutsが終わることが出来ました。 (参考書:EclipseではじめるJavaフレームワーク入門には10のフレームワークが学べるようになっています。その一つ目がStruts) とことん理解していこうと思うとすごく時間がかかるのでとにかくすっ飛ばして本の通りに進めていったのですが、少しは分かるようになりました。 本当に少しですが・・・ Strutsで主にやったことはWEB上で入力したものを出力していくというもので、htmlでいうformをやってきました。 普通であればjsp、servlet、beansを使って一つ一つやることを、簡略化して行うっていうのが趣旨なんですね。(最初から書いてあった) その際JSP上でカスタムタグを使うことでJSP上に細かいプログラムを書かなくてすむと。 正直しっかり流れを追えるようになるにはもう二三度読み直さないと分からない感じなのですが、とにかく使ってみてこんなことが出来るんだなぁというのが分かった。とういうのが今回の収穫です。 今回やってみて面白かったものを紹介します。

繰り返しを使った投稿掲示板システム

とはいえサーバーを用意するわけではないのでアプリケーションスコープで行います まず投稿データをオブジェクトとして使うクラスを用意しました。 インポートは割愛しました。 これってJavabeans的なものととらえていいのでしょうかね? しかしbeansって考えだとこのあとのアクションフォームがそれに値する気がしますが、、 次にこのインスタンスを管理するクラスを と、おもったら、こっちもbeansかな? んんー??? とりあえず、続きを書いていきます。 次に書くのはアクションフォーム!これで送信されたフォームの内容を保管します(アクションフォームbeanというらしい) 次にアクションクラスです。これがサーブレットにあたるのかな? 最後にGUIであるJSP部分。 ポイントは
  1. useBeanでDatalistのオブジェクトを生成
  2. formタグで送信
  3. logicタグのnotEmptyで表の作成(ない場合)
  4. iterateでdatalistからdataの値を繰り返し取り出す(このとき取り出したスコープをmessageという名前(id)とする)
  5. writeでmessageというスコープからpropertyで指定したデータを取り出し書き出す
となっていますね?多分 そして出来上がったのがこちら StrutsLogic ちょっと嬉しい。 しかしやはり順序を追って動作を見るのが苦手なようで、、慎重に見ていかないとすぐに分け分からなくなってしまうのが難点です。。 とにかくやってみる精神でやってみて、ある程度進んだら復習したいと思います!以上!

PostgreSQLの学習「表の照会」

こんばんは、うさです。 リカレントリナックスアカデミーで現在PostgreSQLを学習中なので、 今日学んだ事を書いていきます。 やっていることは、select文でデータを色々な条件で取り出します。 下のコードの一部ははある顧客情報から 「where」により住所が渋谷区で配達した日時が1996年の2つの条件で顧客情報を照会するものを4つ載せました。 「like」で任意の文字列の含まれた情報を取り出します。 しかしその中の1番上はエラーとなります。 他は同じように顧客情報を取り出せます。 何故、1番上がエラーとなるかというと日付のデータ型は文字列としてではなく数字だからだそうです。 そのため、2番目のように、「between」を用いて、 1996年1月1日から1996年12月31日の間を照会します。 また、3番目はjavaにもあるように数字を文字列にキャストします。 そして、「=」で’1996’という文字列と比較しています。 最後は「extract」により、日付のデータから年(year)を抽出して その数字が1996と等しいかを比較しています。 今回は条件式が単純だったので、 どれを用いても簡単でしたが、 条件式が複雑化してきたらどれを用いると簡単かと考えていく必要があるのだなと思いました。 以上、うさでした。

JavaServer Facesの学習に入りたいのに、、、

GlassFishのインストール方法が分からない、、、 イノマーです。 というのも参考にしている書籍がWindows向けに書かれているため、Macを使用して勉強中の自分とは少しやり方が違うようなのです、、、 そこでいろいろ調べてみた まずはダウンロード http://www.oracle.com/technetwork/java/javaee/downloads/index.html ここからGlassFishでMac Installerをダウンロード ここでインストーラーを実行 ターミナルを開いて すると という表示が、、、 環境変数を指定しなければならないらしく インストーラーがGUIなので起動できないらしい、、、 どうすればいいんだ、、、 【追記】 で環境変数が設定出来るらしい とたたいて で設定の読み込みらしい、、、 あとは同じようにすればいいらしいんだけど 結局Eclipseで使えればいいということでEclipseのマーケットプレースから GlassFishToolsをインストールで解決しました かなり時間がかかってしまったがこれからJSFのお勉強 イノマタでした。