Groovyでデータベースに接続してみる⑤

Groovyでデータベースに接続してみます。

■Groovyでデータベースに接続

package sample

import groovy.sql.Sql

// GroovySQLで、データベース操作します。
// SQL文はダブルクォートで囲みます(シングルクォートだと動かなかった・・・)

// H2データベースを使用します。
// http://www.h2database.com/html/main.html


// H2データベースを起動
server = org.h2.tools.Server.createTcpServer().start()

// DB接続
def sql = Sql.newInstance( 'jdbc:h2:tcp://localhost/~/test', 'sa', '', 'org.h2.Driver' )

// テーブル作成(既にテーブルがある場合のエラーは無視)
try { sql.execute( "CREATE TABLE TEST ( NAME varchar(50), TEXT varchar(100) )" ) } catch( Throwable t ) {}

// INSERT
String name = 'test'
String text = 'text'
sql.execute( "INSERT INTO TEST( NAME, TEXT ) values ( ${name}, ${text} )" )

// UPDATE
text = 'text2'
sql.execute( "UPDATE TEST SET TEXT = ${text} WHERE NAME = ${name}" )

// SELECT
sql.eachRow( "select * from TEST" ) { row ->
  println row.NAME + " : " + row.TEXT
}

// DELETE
sql.execute( "DELETE FROM TEST WHERE NAME = ${name}" )

// 後処理
sql.close()

// H2データベースを停止
server.stop()


GroovySQLを使うと簡潔に書けます。
SQLのパラメータも、変数と自動バインドしてくれるので便利ですね。


また、今回は、H2データベースを使用しました。
Javaで作られているので、JARファイル1つでDB環境が作れます。
ちょっとした動作確認に最適です。

GroovyでExcelファイルの読み込み④

GroovyでExcelファイルの読み込みをしてみます。

■GroovyでExcelファイルの読み込み

package sample

// いろいろと方法がありますが、今回は、GExcelAPIを使用します。
// GExcelAPI:https://github.com/nobeans/gexcelapi

// Groovyの標準的なモジュール管理ツール Grapeも使ってみます。
// @Grab( 〜 )で、利用するライブラリを定義すると勝手にダウンロードしてくれます。
// @GrabResolver( 〜 )で、ダウンロードURLを定義します。

@GrabResolver( name='kobo-maven-repo', root='https://github.com/kobo/maven-repo/raw/master/release' )
@Grab("org.jggug.kobo:gexcelapi:0.2")
import org.jggug.kobo.gexcelapi.GExcel

// Excelファイルの読み込み
def book = GExcel.open( 'sample.xlsx' )
def sheet = book[ 'Sheet1' ]

// セル値の参照
println sheet.A1.value		// セル名指定
println sheet.getRow( 0 )[ 0 ]	// 行列番号指定

// 全行を参照
for( row in sheet.rows ) {
  println row[ 2 ]	// 3列目の値
}	


GExcelAPIを使うと簡潔に書けます。(Javaも利用できるので、ApachePOIやJExcelAPIも利用できます)
通常は、GExcelAPIのJARファイルをダウンロードして、クラスパスを通す必要がありますが、
Grapeのアノテーションを記載しておくと、その作業を自動でやってくれます。便利ですね。

プロジェクトマネージャ試験に合格しました!

平成27年度 春期 プロジェクトマネージャ試験に合格しました!
3回目の挑戦で、やっと合格です!



今回は、今までの受験で一番手応えがありました。
でも、合格するとは思っていなかったので、
「今年も勉強しなきゃ・・・」と半分諦めていたところに、
合格だったので、ちょっと嬉しいです。


一発合格じゃないので、参考にならないと思いますが、
自分のやった事を書いておきます。


■勉強時間
・平日は勉強しない。
・毎週土曜日の午前に2〜3時間勉強した。後半は、日曜の午前中も2〜3時間勉強した。
・午前Ⅰは免除なので、午前Ⅱ、午後Ⅰ、午後Ⅱを交互に勉強した。


■午後Ⅱ
・ひたすら過去問を解く(5〜10年分)。そのうち、問題見たただけで、解答がでてくるようになります。


■午後Ⅰ
・PMの基本知識を覚える事は当然として、問題文から解答を導く方法を覚える事が重要でした。
・下記のみよちゃん本が大変、参考になりました。

情報処理教科書 プロジェクトマネージャ 2012年版

情報処理教科書 プロジェクトマネージャ 2012年版


■午後Ⅱ
・設問で問われていることを理解し、問いに対して、(PMがすべき事で)打ち返す記述で論文を作る必要があります。
・設問から論文の章立てを作成するなど、論文試験特有のテクニック的なものがありました。
・下記のみよちゃん本が大変、参考になりました。

プロジェクトマネージャ 午後II 最速の論文対策 (TACの情報処理技術者試験対策シリーズ)

プロジェクトマネージャ 午後II 最速の論文対策 (TACの情報処理技術者試験対策シリーズ)

・自分のPM経験だけでは、論文は書けません。他人の論文から、PM経験をストックして活用する必要がありました。
・下記の論文集が大変、参考になりました。

プロジェクトマネージャ合格論文の書き方・事例集 (情報処理技術者試験対策書)

プロジェクトマネージャ合格論文の書き方・事例集 (情報処理技術者試験対策書)


■合格してみて思ったこと
・合格したからといって、何か特別なスキルが身についた気はしない・・・ただ、PMの基本知識は身についたので良かったと思う。
・日本語的なスキルは以前より向上した気がする。(設問(文章)から意図を読み取る、適切な文章が書けるなど)これって意外とPMに必要なスキルかもね。
・諦めずにコツコツ勉強続けて良かった・・・
・論文は、下手な字で書いても受かるんだな・・・

Groovyでテキストファイルの読み書き③

Groovyでテキストファイルの読み書きをしてみます。

■Groovyでテキストファイルの読み書き

package sample

// ファイル書き込み
def message = 'Groovyで\nファイル読み込み'
new File( './sample.txt' ).write( message, 'UTF-8' )

// テキストファイルの読み込み(1行ずつ)
new File( './sample.txt' ).eachLine { println it }

// テキストファイルの読み込み(全て)
def text = new File( './sample.txt' ).getText()
println text


非常に簡潔に書けます。説明不要ですね。

Groovy開発環境の構築②

まずは開発環境構築から。

■Groovy開発環境の構築

開発環境構築といっても、使い慣れたEclipseに、Pluginを入れるだけです。
使い慣れた開発環境をそのまま使えるので、Java技術者にとって敷居は低いと思います。


Eclipseの「ヘルプ」→「新規ソフトウェアのインストール」


Groovy-EclipsePluginのURLを入力「http://dist.springsource.org/release/GRECLIPSE/e4.2/
※末尾の「e4.2」部分はEclipseのバージョンに合わせて変更する


後はひたすら次へボタンをクリックしてインストールします。

■はじめてのGroovy

最初にGroovy Projectを作成します。


パッケージエクスプローラ内で右クリック。
コンテキストメニューの「新規」→「Groovy Project」を選択。


プロジェクト名を入力して、後はひたすら次へボタンをクリックして作成します。


パッケージエクスプローラ内で、srcフォルダを選択して右クリック。
コンテキストメニューの「新規」→「Groovy Class」を選択。


クラス名を入力して、完了ボタンをクリックして作成します。


作成したソースファイルを開いて、下記のコードを追記します。


パッケージエクスプローラ内で、ソースファイルを選択して右クリック。
コンテキストメニューの「実行」→「Groovy Script」を選択。


実行できました。
Java開発とほぼ同じ操作なので簡単ですね。

今更ながらGroovyを使ってみる①

今更ながらGroovyを使ってみます。

■Groovyとは

wikipedia:Groovyより、
Groovy(グルービー)は、Javaプラットフォーム上で動作するアジャイルな動的プログラミング言語である。


Groovyの特徴は以下である。
JVM上で動作するスクリプト言語である(事前コンパイル可能)
Javaと親和性が高い(Javaでできている)
Java技術で培われてきた開発インフラやライブラリ、ノウハウ、ツール、JVM最適化技術などの多くをそのまま流用できる
Java技術者にとって導入の敷居が低い
Apacheソフトウェア財団の管理になる(しばらくは安泰?)

■はじめてのGroovy

まずは、HelloWorldを書いてみる。Javaと比較してみると違いがわかりやすい。


Java

public class HelloWorld {
  public static void main (String[] args) {
    System.out.println("Hello World !!");
  }
} 


【Groovy】

println "Hello World !!"


スクリプト言語なので、非常に簡潔な記載が可能である。
ちなみに、Javaの構文で記載しても動く。
下記のように、Javaの構文とGroovyの構文が混ざっていても動く。
非常に自由度が高い。


Java+groovy】

public class HelloWorld {
  public static void main (String[] args) {
    println "Hello World !!"
  }
} 

■自分なりのGroovy活用法

簡潔に記述できるため、非常に生産性が高い言語と思う。
ただ、比較的新しい言語は、様々な事情(例えば、客先都合など)で、採用するのが難しい場合が多い・・・
なので、下記の用途で使っていく。
・ツール開発(例えば、仕様書から定義ファイルを作成するなど)
ユニットテスト(テストコードは客先都合等の制約を受けない場合が多い)

毎年恒例の自宅開発環境のアップデート

毎年恒例の自宅開発環境アップデートです。
いつも忘れてしまうので、自分への覚書を残しておきます。


Ubuntuアップデート
VirtualBox上のEclipse等を詰め込んだ、Ubuntu開発環境をアップデート。
VirtualBoxを4.3.14→4.3.26にアップグレード。


VirtualBox 拡張パックは下記からダウンロードして、インストールしたが失敗。
https://www.virtualbox.org/wiki/Downloads


下記URLを参考にして、
VirtualBoxを「管理者として実行」し、環境設定→機能拡張からアップデート」でインスールできた。
http://atc2cont.at.webry.info/201311/article_1.html




Ubuntuは、GUIからアップデート(ソフトウェアの更新)。
久々に起動したから、アップデートにやたら時間がかかった。
ソフトウェアの更新から、Ubuntu14.04→14.10にアップグレード。特に問題なく終了。


起動してみると解像度が640×800で画面サイズが小さくなった。
VirtualBox Guest Additionsのインストールで元に戻った。
VirtualBoxのメニューから、 Guest AdditionsのCDを挿入)


Hyper-V Serverアップデート
古くなったPCに、Hyper-V 2012 Server Consoleを入れています。
Hyper-V 2012 R2」にアップデートしようかと思ったけど、
サポート期限も同じだし、急いでアップデートしなくてもいいかな。とりあえず保留。


とりあえず、Hyper-V ServerのWindows Updateを実行。
久々に起動したからやたら時間がかかる。


Hyper-V上のCentOS5.10は、yum update でアップデート。特に問題なく終了。