kurukuru-papaのブログ

主に、ソフトウェア開発に関連したメモを書き溜めたいと思います。

Java

Javaで日時を扱う(Java8)

Java8では、日時を扱うクラス群が様変わりしてしまいました。これを機に、日時の扱いをまとめてみたいと思います。前回は、Java7までの日時、今回は、Java8での日時を書きました。Java8では、Java7までのDate,Calendarの代替として、次のクラスなどが導入さ…

Javaで日時を扱う(Java7まで)

Java8では、日時を扱うクラス群が様変わりしてしまいました。これを機に、日時の扱いをまとめてみたいと思います。今回は、Java7までの日時、次回は、Java8での日時を書きたいと思います。Java7までは、主に、Dateクラス、Calendarクラスを使いますね。Apach…

ラズパイでJava8を使う

自分のRaspberry Piに、Java8をインストールしたので、メモを残しておきます。特に、難しいことはありませんでした。 事前確認 現在のJavaインストール状態を確認します。Java7がインストールされていました。 $ java -version java version "1.7.0_40" Java…

AndroidでOAuth認証をしたい

タイトルのまんまなのですが、Androidで、OAuth2.0認証をしたくなったので、調べてみました。なかなか理解できませんでしたが、何とか実装することができました。自分が理解したことをまとめてみたいと思います。 なお、私は、WebアプリケーションでOAuth1.0…

JAXBでネームスペース付加・XMLスキーマ検証もできました

JAXB(Java Architecture for XML Binding)で、ネームスペースを付加したり、XMLスキーマ検証をしてみました。少し悩んだところもありましたが、問題なく動作確認できました。

JAXBで日本語タグも使えました

JAXB(Java Architecture for XML Binding)で、日本語のタグも使えることを動作確認してみました。フツーに使えますね。ポイントは、変換元/先オブジェクトのクラス定義で、@XmlRootElement、@XmlElementアノテーションを付けることですね。文字コードも指…

JAXBを使ってみました

JAXBを使ってみたのでメモしておきます。 はじめに JAXB(Java Architecture for XML Binding)とは、Java SE 1.6 以降に含まれるライブラリで、Javaのオブジェクトと、XMLを、相互に変換することができます。似たようなライブラリには、ApacheのXMLBeansが…

「レガシーコード改善ガイド」読書メモ(その2)

「レガシーコード改善ガイド」という書籍を読み、自分の解釈した内容をメモしています。前回は、コードを改善する考え方をまとめました。 今回は、実際のテストコードについて書きます。書籍では、テストコードの書き方について、第2部、第3部で書かれていま…

「レガシーコード改善ガイド」読書メモ(その1)

「レガシーコード改善ガイド」という書籍を読みました。考え方から具体的な手法まで説明されていて良い本でした。特に気になった部分について、自分の解釈した内容をメモしておきたいと思います。 書籍概要 レガシーコード改善ガイド (Object Oriented SELEC…

Aptinaを利用するとAPTのテストが簡単に書けたよ

最近、APT(Annotation Processing Tool)を勉強しています。そのなかで、テストケースはどう書けば良いのか考えていました。特に、Annotation Processorのprocessメソッドの引数として必要な、Set型のオブジェクトと、RoundEnvironment型のオブジェクトの2…

AndroidのO/Rマッパーを題材にAPTを使ってみましたよ

Java6から、APT(Annotation Processing Tool)と呼ばれる便利な機能があることを知りました。とりあえず使ってみようと思い、AndroidのSQLiteでDBアクセスするための、O/Rマッパーのような処理を題材に、APTで実現してみました。 APTで自動生成するクラス A…

バイナリデータが含まれたQRコード読み込みiアプリ

先日、QRコードのデコードソフトについて調査を行いました。その際、iアプリで作れば良いんじゃない?という案も書いていたかと思います。で、何となく簡単なiアプリを作ってしまいました。iアプリって簡単に作れるんですね。ちょっとビックリしました。次の…

Slim3をはじめてみます

Slim3のVersion 1.0.0がでたということで、遅ればせながら私もSlim3に触れることにしました。少し触れてみて気になったこと、分かったことをメモしてみます。(何分、素人が調べた結果ですので、誤りも含まれているかも知れません。) コントローラーの作成…

Swing ファイルのドラッグ&ドロップ

Swingを使って、エクスプローラからSwingアプリに対して、ファイルのドラッグ&ドロップを受け取るデモアプリを作成してみました。何の特徴もないです。そういえば、Eclipse 3.4上で、Visual Editor(?)を利用して作成したんだけど、Eclipse上で実行すると…

SuperCSV 読み込み時、カンマ区切りつき数値に対応

CSV読み込みで、読み込み対象に書かれている数値項目には、カンマ区切りがありました。これを読み込むために、ParseIntを拡張したクラスを作成してみました。 import org.supercsv.cellprocessor.ParseInt; import org.supercsv.exception.SuperCSVException…

SuperCSV CSV出力時ヘッダー追加注意点

SuperCSVを使って、CSV出力に取り組んでいます。何やら、ヘッダーも出力してくれる機能がありそうです。使ってみました。途中省略していますが、次のようにして出力できるらしいです。 String[] header = new String[] { "Item1", "Item2", "Item3" }; Strin…

SuperCSV CSV出力処理時ParseBoolでエラー

先程のParseDateでエラー(http://d.hatena.ne.jp/kurukuru-papa/20100119/1263908940)と同様に、ParseBoolを使用した時もClassCastExceptionが発生しました。そのため、次のようなクラスを作成し、ParseBoolの替りに使用すると解決しました。 import org.s…

SuperCSV CSV出力処理時ParseDateでエラー

SuperCSVを試行錯誤しながら使っています。まずは、CSV出力処理を行ってみたのですが、次のような実行時エラーが発生してしまいました。 java.lang.ClassCastException: java.sql.Date cannot be cast to java.lang.String org.supercsv.cellprocessor.Parse…

SuperCSV 読み込み時、カラム順序を動的に判断

SuperCSVには、読み込むファイルのカラム順序を適宜判断して、読み込む機能がありました。高機能ですね。この機能を使うためには2つポイントが有りました。 読み込むファイルの1行目に、適切なカラム名称が記述されている必要があります。 カラム名称と、Bea…

CSVライブラリを探してみた

Javaから使えるCSVライブラリを探してみました。 下記のようにいくつか見つかりましたが、どれを使うべきか、決め所に迷っています。 Googleの検索結果から判断すると、どれもヒット件数が大きく変わることはなく、どれが普及しているかわかりませんでした。…

commons-lang ReflectionToStringBuilderでログ出力

たぶん、以前にも使った事があると思うのですが、忘れてしまっていたのでメモしておきます。Javaプログラミングをしていて、あるオブジェクトのフィールドの内容をログに出力したい場合が、よくあります。フィールドが1つ2つならまだしも、10,20ある場合、フ…

SAStruts+S2JDBCにおいて、H2データベースをエンベッドモードで動作させる

Doltengを利用して、SAStruts+S2JDBCのWebアプリケーション開発を勉強しています。Doltengが自動生成する新規プロジェクトでは、デフォルトでH2データベースを使用し、サーバモードで動作させることになっていました。H2にはエンベッドモードと呼ばれる機能…

SAStrutsのTomcat 6.0.18へのデプロイ失敗

SAStrutsを利用して簡単なWebアプリケーションを作成したので、Tomcat 6.0.18へWARファイルを配置しましたが、ロード時に例外が発生し、動作しませんでした。Tomcat 5.5.27だと正常に動作しました。 問題 Tomcat 6.0.18で発生した例外は次です。ログの内容を…

Teeda タグの非表示(te:omittag="true")使用時の注意点

Teedaを使用して、ある条件の場合に、画面レイアウトの一部を表示しないということを行いました。これには、te:omittag属性を使用すればよいということはすぐわかったのですが、次のような場合は注意が必要なようです。 問題となった例 <div id="isLogin" te:omittag="true"> 〜loginプロパティ有</div>…

S2Dao Sqlアノテーションで少し複雑なSQL文を書く

S2Daoを使用して、少し複雑なSQL文を書くことになりました。2つのテーブルを結合して、条件に合ったレコードを抽出するSQL文です。条件のパラメータは、メソッドの引数から複数取得します。下記のように記述することで、実装できました。ポイントは3つあり…

S2Dao テーブル結合してデータ取得する方法

S2Daoにて、複数テーブルを結合して、データ取得する方法をメモしておきます。ネット上の情報を見ればわかる話ですが、自分なりに気になったポイントを記述しておきます。いくつもやり方があるようです。まずSQL文ですが、Sqlアノテーションで記述する方法と…

Teeda テーブルの内容から選択リストを作成する

Teeda+S2Daoを使用して、テーブルの内容から選択リストを画面表示する方法をメモしておきます。 概要 1.Daoクラスに選択リスト用データ取得メソッドselectValueLabelを追加する。 2.Pageクラスに上記Daoクラスのプロパティを追加する。 3.Pageクラス…

Teeda 共通レイアウトに選択リストを表示する

"/layout/layhout.html"を使用して全画面に選択リストを表示しようと考えています。layout.htmlやページクラスは、下記のように作成しています。ページクラスにデータが設定されているのは確認済みですが、表示できないでいます。なぜでしょう?ちなみに、共…

Eclipse Tomcatプラグイン 別プロジェクトのロード

いや〜、解決してよかった!Eclipseで、Tomcatプラグインを使用して、Webアプリケーションを作成していました。Tomcatプロジェクトとしたプロジェクトから、通常のプロジェクトをロードする方法がわからなくて悩んでいました。ネット検索して、いくつか掲示…

SAStruts ことはじめ1

以前から気になっていたSAStruts(Super Agile Struts)なるものをさわってみることにしました。「さくさく感のある開発」という触れ込みですがいったいどうなるか楽しみです。早速、はまりごと発生しました。Teddaを使うと、htmlを動的に表示することが出来…