【3/18〜】Amazon、VMwareが語る『クラウドの未来』 スラッシュドット    はてなブックマーク  Yahoo!ブックマークに登録  印刷
【特集】Eclipse対抗馬の本命!? NetBeansとは?
連載一覧へ

【特集】Eclipse対抗馬の本命!? NetBeansとは?(後編)
JRuby on RailsやJava EE開発に便利なNetBeans


株式会社ガリレオ
小山博史
2008/3/17

今回の主な内容

画面やコードを自動生成してくれるのでDB連携も簡単!
Java DBを操作するツールも便利!
Webアプリケーション作成も容易

NetBeansでJRuby on Railsアプリケーションを作成
GlassFishでJRuby on Railsアプリケーションを実行
便利なIDEに見る技術者の“格差”

 本稿はJavaプログラム向けのオープンソース統合開発環境NetBeans IDEの、2008年2月にリリースされたNetBeans 6.0.1 マルチリンガル版について紹介する特集記事の後編となります。

 前編の「NetBeansとGlassFishの連携&VBライクなSwing開発」では、NetBeans 6.0.1マルチリンガル版の特徴や概要、インストール方法、オープンソースのJava EEアプリケーションサーバGlassFishとの連携、VBライクな「Swing GUI Builder」について主に解説しました。

 後編では、Java EE開発に欠かせないDB連携やGlassFishとの連携によるWebアプリケーションJRuby on Railsアプリケーションの作成の仕方などについて解説します。

編集部注JRuby on Rails について詳しく知りたい読者は、連載「小山博史のJavaを楽しむ」第4回「(Java+Derby)* Ruby on Rails プログラミング」をご参照ください。

画面やコードを自動生成してくれるのでDB連携も簡単!


 最初に、NetBeansにおけるDB連携について解説しましょう。DBへアクセスするデスクトップアプリケーションを作成して実行してみました。作成したのは、前編で解説した「Social Software for GlassFishに含まれるApache RollerのDBから「WEBSITE」というテーブルの一部データを取得するプログラムです。

編集部注Apache Rollerについて詳しく知りたい読者は、連載「小山博史のJavaを楽しむ」第7回「そろそろブログ+RSSアプリでも作ってみませんか?」をご参照ください。

DBアプリケーションが自動で作られる

 NetBeansで新規プロジェクトを作成するときに、「Javaデスクトップアプリケーション」を指定し、使用するテンプレートは「データベースアプリケーション」を指定しました。

 DBの接続については、[データベースのURL]へは「jdbc:derby://localhost/SocialFish_RollerDB」、[ユーザー名]へは「APP」、[パスワード]へは「APP」を指定して新規作成をしました。

 このDB接続から「WEBSITE」テーブルを指定してウィザードを終了すると、画面が自動生成されます(図1)。

図1 自動生成されたDBアプリケーションの画面
図1 自動生成されたDBアプリケーションの画面

JPAのコードも自動生成!

 このテーブルに対応するJavaBeansも次のような感じでJPAを使ったコードとして自動生成されます。生成されるコードを見ると分かりますが、これだけの量を自動生成してくれるだけでも、ずいぶん楽になります。

@Entity
@Table(name = "WEBSITE")
@NamedQueries({@NamedQuery(name = "Website.findById",
    query = "SELECT w FROM Website w WHERE w.id = :id"),

……(略)……

})
public class Website implements Serializable {
    @Transient
    private PropertyChangeSupport changeSupport
        = new PropertyChangeSupport(this);
    private static final long serialVersionUID = 1L;

    @Id
    @Column(name = "ID", nullable = false)
    private String id;

    @Column(name = "NAME", nullable = false)
    private String name;

    @Column(name = "HANDLE", nullable = false)
    private String handle;

    @Column(name = "DESCRIPTION", nullable = false)
    private String description;

    @Column(name = "CREATOR")
    private String creator;

……(略)……

    public String getId() {
        return id;
    }
    public void setId(String id) {
        String oldId = this.id;
        this.id = id;
        changeSupport.firePropertyChange("id", oldId, id);
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        String oldName = this.name;
        this.name = name;
        changeSupport.firePropertyChange("name", oldName, name);
    }

……(略)……

}

Java DBを操作するツールも便利!


 次に、Java DBApache Derby)を操作するためのツールが結構便利でしたので、簡単に紹介しておきましょう。

編集部注Java DBについて詳しく知りたい読者は、連載「小山博史のJavaを楽しむ」第3回「待望のJava SE 6 でパーシステンス」をご参照ください。

 ネットワークモードでJava DBを動作させるには、[ツール]→[Java DB データベース]→[サーバーを起動]として、Derbyを起動させます。

 なお、GlassFishを起動していると、GlassFishがJava DBを自動起動するので、NetBeansのメニューからは起動ができなくなります。注意してください。

 DBを作成したい場合は、[ツール]→[Java DB データベース]→[データベースを作成]を指定して、例えば次のような内容を指定すれば、DBが作成されます。

表 DB作成時に指定する値
項目
データベース名 sampledb
ユーザー名 APP
パスワード APP

 作成したDBでSQL文を実行するには、[サービス]タブを選んで、[データベース]を開き、そこに表示されている「jdbc:derby://localhost:1527/sampledb」をマウス右ボタンでクリックし、表示されたメニューで[接続]します。その後、マウス右ボタンでクリックし、表示されたメニューで[コマンド実行]とすると、SQL文向けのエディタが表示されます。

 例えば、次のようなSQL文を記述してから、[Ctrl]+[Shift]+[E]キーでSQL文を実行します。

create table users (
    id integer not null generated
    always as identity (start with 1, increment by 1),
    name varchar(255)
);

図2 SQL文の実行結果
図2 SQL文の実行結果

 Webアプリケーションなどでは、DBを扱うアプリケーションは当たり前ですから、このようにDBが操作できるという機能は、最近のIDEには必須といっても過言ではありません。

 次ページでは、いよいよ、WebアプリケーションやJRuby on Railsアプリケーションの作り方を解説します。

  1-2-3

 INDEX 【特集】Eclipse対抗馬の本命!? NetBeansとは?(後編)
      「JRuby on RailsやJava EE開発に便利なNetBeans」
Page1
  画面やコードを自動生成してくれるのでDB連携も簡単!
Java DBを操作するツールも便利!
  Page2
  Webアプリケーション作成も容易
NetBeansでJRuby on Railsアプリケーションを作成
  Page3
  GlassFishでJRuby on Railsアプリケーションを実行
便利なIDEに見る技術者の“格差”





Java Solution全記事一覧

ホワイトペーパーTechTargetジャパン

Java Solution フォーラム 新着記事

@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

RSSフィード

スキルアップ/キャリアアップ(JOB@IT)

- PR -
- PR -

お勧め求人情報

キャリアアップ 〜JOB@IT
@IT Special -PR-
  TomcatやJBossなどAPサーバ環境に関する
情報を集約! “業務”用APサーバ大百科

New!
  一気に解説! 最新のクラスタストレージ
「RAIDを超えたストレージ基準」……など

New!
  クラウド的ユーザー体験の変化は脅威か?
仮想化技術を使いこなす運用管理術を紹介

New!

  上司や部下、部署内メンバーとの情報共有
を“ガラッ”と変えるコラボツールとは?

New!
  おばかアプリ選手権、第4弾開催中!!
ムダにカッコよくてくだらない作品求ム!

  社内ファイルサーバを“クラウド”に統合
VPN直結「クラウド型ストレージ」を紹介

  Twitterのアカウントはなぜ突破された?
メールによる新手の攻撃手法とその対策

  もう仮想化のお試しフェイズは終わりだ!
Hyper-V 2.0が基幹システムも仮想化

  美人!? まあまあ? 気になる いやし系!!
PV急増で「美人時計」がとった手段とは?

  クライアント企業から求められる人材
⇒IT技術と経営戦略を併せ持つ「戦略家」

  .NET編集長が実践する「技術情報検索術」
サンプル・コードを簡単に探す“技”は?

  業務効率と情報セキュリティ対策を両立!
手間なく確実に機密情報を守る方法とは?

  進化を続ける富士通ストレージETERNUS DX
製品開発者の自信を裏付けるものとは何か

  運用管理の課題を“2つの観点”から分析
ユーザー満足度の高い「仮想環境」とは?

  【CTC事例】約30の基幹システムを統合!
膨大なバッジジョブを制御した方法は?

  仮想化すればコストは削減できるか?
仮想化に必要な「3つの視点」を解説する

  その数、なんと400台以上! グループ内
サーバの「統合管理」によるメリットは?