似非プログラマのうんちく

「似非プログラマの覚え書き」出張版

Java

春だから Spring やろうぜ(その 11)

エンティティのバリデーション JPA ではエンティティの各フィールドをバリデーションチェックするためのアノテーションが用意されている。 package jp.mydns.akanekodou.demo.entity; import javax.persistence.Column; import javax.persistence.Entity; im…

春だから Spring やろうぜ(その 10)

入力用のフォームを準備して、データを入力・保存できるようにする。 <html xmlns:th="http://www.thymeleaf.org"> <head> <title>Top page</title> <link th:href="@{/css/hello.css}" rel="stylesheet" /> </head> <body> <h1 th:text="#{content.title}">Top page</h1> <form method="post" action="/" th:object="${formModel}"> </form></body></html>

春だから Spring やろうぜ(その 7)

Gradle を使ってみる 前回作ったものを ビルドツールとして Maven ではなく Gradle を使ってみる データベースは PostgreSQL を使ってみる で作り直してみる。 プラグインのインストール Gradle によるビルドを行うためには STS にプラグインを入れる必要が…

春だから Spring やろうぜ(その 6)

いよいよデータベースにアクセス 今回は H2 データベースから全件取得して表示するところまで。 Entity クラスの作成 基本的に JPA なのでそんなに難しくない。Lombok を使っているので @Data アノテーションを使うと楽。 package jp.mydns.akanekodou.demo;…

春だから Spring やろうぜ(その 5)

フォームを利用してみる 今回は フォームから入力を受け付ける 入力された値はセッションに保存しておく ところまでやってみる。 <html xmlns:th="http://www.thymeleaf.org"> <head> <title th:text="${title}"/> <link th:href="@{/css/hello.css}" rel="stylesheet" /> </head> <body> <h1 th:text="${title}"/> <p th:text="${message}"/> </p></h1></body></html>

春だから Spring やろうぜ(その 3)

STS(Spring Tool Suite) を使う さて、コマンドライン + Groovy でもまぁ簡素な Web アプリは作れたが、やはり本格的な開発には STS(Spring Tool Suite) が欲しいところなのでダウンロードしてくる。spring.ioeclipse ベースなので見た目はほとんど eclipse …

JUnit 5 でテストコードがだいぶ変わったという話

JUnit 5 がとっくの昔にリリースされてたのを今頃になって確認してみたらいろいろ変わってた話。 アプリケーションコード すごーい(CV : 尾崎由香)簡単な例でスマソ。 package jp.mydns.akanekodou; /** * <p>文字列から整数への変換メソッド提供クラス</p> * * @ve…

Apache Maven を使ってみよう(その 3)

Maven のプラグインについて Maven のプラグインは主に以下のサイトで用意されている。 Maven – Available Plugins Mojo – MojoHaus Maven Plugins Project Exec Maven Plugin 前回の課題になっていた、Maven のビルドの実行の際に main を実行するためには…

Apache Maven を使ってみよう(その 2)

Maven のビルドライフサイクル Maven のビルドライフサイクルには多数のゴールが設定されている。ちなみにデフォルトのライフサイクルには何と validate, initialize, generate-sources, process-sources, generate-resources, process-resources, compile, …

Apache Maven を使ってみよう(その 1)

当ブログではこれまで Apache Maven (以下、Maven) の話題は極力避けてきたが、昨今の開発事情を鑑みるに、最早 Maven なしでは開発がままならない状況になりつつある。Spring MVC では標準のビルドツールとして採用されるなど、Maven は避けては通れないも…

エラトステネスの篩はもう古い !?

タイトルは親父ギャグじゃねーです !ゆっちさんがこんな記事を書いていたようで。 ゆっちのBlog » Java8 時代の素数の求め方最初はそのままパクらせていただいて動かしていました(それでもなかなかに早い)が、地味に無駄な処理があることに気がつきました。b…

エイプリルフールを満喫できる休日はいつ訪れるか

今日は 4 月 1 日です。新年度の始まり、そしてエイプリルフールですね。いろんな人がよってこぞってエイプリルフールネタを投下してくるので、どれが本当の記事かわかりません(苦笑)。しかし今日はあいにくの平日とあって、エイプリルフールを満喫している…

JPA + EJB + JSF による Web アプリケーション(その 6)

∧,,∧ (;`・ω・) 。・゚・⌒) View 作るよ!! / o━ヽニニフ)) しー-JFacelets 群 + α。 MajorCityJavaEE/list.xhtml at master · akaneko3/MajorCityJavaEE · GitHub MajorCityJavaEE/detail.xhtml at master · akaneko3/MajorCityJavaEE · GitHub MajorCity…

JPA + EJB + JSF による Web アプリケーション(その 5)

長らくお待たせいたしました。今回は Java のソースコードを書いていきます。 下準備 前回作った JSF のプロジェクトのビルド・パスに、以前に作った EJB のプロジェクトを含めること。これをしないと EJB 側のパッケージを参照できずエラーになります。 管…

JPA + EJB + JSF による Web アプリケーション(その 4)

今回は JSF 側のプロジェクトを作っていきます。まずは JSF のプロジェクトを作ります。ファイル構成はこんな感じ。 WebContent/WEB-INF/faces-config.xml や WebContent/lib 内に初期に配置される各種 jar は必要ないので削除します。代わりに WebContent/l…

JPA + EJB + JSF による Web アプリケーション(その 3)

そろそろ現実に帰って Java EE の記事を書きます(汗)。Model の Entity を JPA で、Business logic を EJB で実装します。JPA は前にも説明した通り永続化と O/R マッピングですが、EJB をことさらに使う理由としては、WildFly (やその他 Java EE アプリケー…

JPA + EJB + JSF による Web アプリケーション(その 1)

そろそろ本腰入れて Java EE 7 について書こうか。うん、そうしよう。随分と長いこと WildFly には嫌われてきた*1が、ようやく動かせる状態になったので、簡単なサンプルを元に解説なんぞできればよろしいかと。Java EE に含まれているいくつかの API のうち…

MyBatis + Guice でカンタン DAO 実装(その 4)

View の作成 Velocity で作る。list.vm <html> <head> <title>日本の政令指定都市一覧</title> <link rel="stylesheet" href="css/list.css" type="text/css"> </head> <body> <table> <caption>日本の政令指定都市一覧</caption> <colgroup> <col id="no"> <col id="pref"> <col id="name"> <col id="button"> </colgroup> <thead> <tr>…</tr></thead></table></body></html>

MyBatis + Guice でカンタン DAO 実装(その 3)

Servlet の作成 DAO の使い方の例として。 package jp.mydns.akanekodou; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servl…

MyBatis + Guice でカンタン DAO 実装(その 2)

前回の続き。 DAO 層の実装(続き) まずは DAO クラスであることを明示するためのインターフェースを用意*1する。 package jp.mydns.akanekodou.dao.util; import java.util.List; /** * DAO クラス共通インターフェース * * @author Red cat * @param <T> DAO </t>…

MyBatis + Guice でカンタン DAO 実装(その 1)

O/R マッパーである MyBatis と軽量 DI コンテナ Guice による DAO 実装について、今回から数回に分けて書きます。 MyBatis とは MyBatis は iBatis の後継となる O/R マッパー。マッピングファイルに SQL を記述し、インターフェースを用意することで、マッ…

JUnit4 による例外発生時のメッセージのテスト

JUnit 4.7 からの機能で、例外が throw されたときのメッセージ(getMessage で取得できる文字列)をチェックすることが出来るようになったらしい。具体的には、同じ例外クラスを throw するが、ケースによってメッセージが変わるような場合に、@Test(expected…

JUnit による単体テストの自動化

JUnit は Java における単体テストの自動化をサポートするサードパーティー製のライブラリ(フレームワーク)である。が、これだけの説明では何のことかわからないと思うので、もう少し詳しく説明する。 単体テストの定義と意義 単体テストとは ? 単体テストと…