JDBCのメタデータは、データベース(RDB)の(データでなく)定義自体を扱う。 メタデータを利用して、テーブルの項目一覧だとか属性だとかを取得することが出来る。 DatabaseMetaDataはConnectionから取得できる。 ResultSetMetaDataはResultSetから取得できる。 テーブルの項目一覧 プライマリキー項目 レコード一意識別項目 項目の型の取得 [2009-04-10] PreparedStatementの項目の型 [2009-10-25] 自動採番値の取得 [/2010-07-24] テーブルの項目一覧を取得する例 import java.sql.Connection; import java.sql.DatabaseMetaData; import java.sql.ResultSet; Connection conn = ~; DatabaseM
Java Database Connectivity[1] (JDBC)は、Java と関係データベースの接続のためのAPI。ODBCをベースにサン・マイクロシステムズおよび DataDirect が共同で開発していると言われている。そのためドライバのデフォルトの自動コミットの有効化など似ている点も多々ある。 Java においてSQLを使用して、関係データベース管理システム (RDBMS) などと接続する機能を標準化(抽象化)している。 元はJDK 1.0の拡張APIという位置付けであったが、JDK 1.1で正式にJavaの基本SDKに同梱されるようになった。標準的な機能 (API) は Java SE に含まれている。JDBCの規格は Java SDK とは独立して行われており、APIのアップデートは随時行われている。 JDBCを利用する為には、100% Pure Java 製の Apa
Webアプリケーションの開発をEclipseで行っていると、Javaファイルを格納するフォルダと他のWebリソース(.jsp、.css、.js、など)を格納するフォルダがパッケージ/エクスプローラ上で離れているということがよくあります。 よほど大きな画面を使っていない限り、それぞれのリソースを行き来するのは面倒です。もちろん、Ctrl+Shift+T(キーワードで型を開く)やCtrl+Shift+R(キーワードでリソースを開く)という方法もありますが、ディレクトリ構成を見ながら複数のファイルを編集していきたいというケースもあるでしょう。 そんなときに使えるのが、プロジェクト・エクスプローラというビューです。これはパッケージ・エクスプローラにそっくりなビューで、同じようにフォルダ構成をツリーで表示してくれます。察しの良い方は、もう気づかれたと思いますが、要するにパッケージ・エクスプローラをJ
1 つのパス文字列または、連結すると 1 つのパス文字列を形成する文字列のシーケンスを、Path に変換します。more に要素が指定されていない場合は、first パラメータの値は変換するパス文字列です。more に 1 つ以上の要素が指定されている場合は、空でない各文字列 (first を含む) は名前要素のシーケンスであるとみなされ (Path を参照)、結合されてパス文字列に形成されます。文字列の結合方法の詳細はプロバイダ固有ですが、通常は名前区切り文字を区切り文字として使用して結合されます。たとえば、名前区切り文字が "/" で getPath("/foo","bar","gus") が呼び出された場合、パス文字列 "/foo/bar/gus" は Path に変換されます。first が空の文字列で more に空でない文字列が含まれない場合は、空のパスを示す Path が返さ
Overview Checkstyle is a development tool to help programmers write Java code that adheres to a coding standard. It automates the process of checking Java code to spare humans of this boring (but important) task. This makes it ideal for projects that want to enforce a coding standard. Checkstyle is highly configurable and can be made to support almost any coding standard. An example configuration
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? あくまで個人意識のため、内容はほとんど引用メイン Android開発時のコード規約に関して、自分なりに噛み砕いて理解するために記す コード規約の在り方 Androidでもチームで開発する際、開発メンバーが決められたコード規約に基づいて実装しないと、可読性などが失われ単体テストや結合テスト、ソースレビューにも影響が出てくる PHPやObjective-C、もちろんJavaにもデフォルトのコード規約は存在する Androidの時はどうすればいいのか 私の結論としては「Android Open Source Project」にある Code
はじめに レガシーコードの static, final, private, new をモックにしたいとき、次のような選択肢が考えられます。 (A) Mockito + 自作のラッパークラス or リファクタリング (B) Mockito + PowerMockito (C) JMockit (A)~(C)のどれにするのかは、テスト対象との兼ね合いになるかと思います。 以前、『Java テストツールのトレンド 2014/1~2016/5』という記事を書きましたが、本記事では、この中で一番情報が少ないJMockitでモックを作る方法を紹介します。 セットアップ EclipseでJMockitを使えるようにセットアップしてみます。 ダウンロード 今回はjmockit-1.27.zipをダウンロードしました。 http://jmockit.org/index.html クラスパス jmockit.
■前置き JavaにClassクラスが存在することを大抵のJava技術者はご存知だと思いますが、実際、Classクラスとは何なのか、いつ、どうやって生成されるかなど、知らない人がほとんどではないでしょうか? 多分、使ったことがあるのは、主に以下の2パターン 1.DB接続時にドライバクラスをforName()する。 2.インスタンスからクラス情報を取得する 1は多分、みんな、おまじないのように使ってる。 Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); って感じで、よくわからないけど、上記のようにドライバクラスを指定してからじゃないとDB接続できないから、おまじないとして使ってる。という人が多いと思います。 2は用途はいろいろですが、インスタンスからgetClass().getName()してクラス名を取得して、ログに出したり、なんちゃらしたりだと
徐々に利用する機会が増えてきたアノテーションだが、アノテーションベースのフレームワークで使われているのを使ったりすることはあっても自分でアノテーションを定義したことが無かった。 「業務用フレームワーク作る際も使えそうだよなぁ」と思っていたので、今後使いこなす為にも改めてちゃんと勉強しなおしてみた。 ※「アノテーション」自体は、JUnit、Jaxb、Spring等によって使い慣れていることを前提。 アノテーション型 独自のアノテーションを作成する為には、以下のようなアノテーション型のクラスを作成する必要がある。 @interface Annotation名{ キーの型 キーの名前(); ... } クラス名がアノテーション名、メソッド名がキー名となり、メソッドの返り値がキーに指定できる型となる。 アノテーション型はインターフェイス型と似ているが、通常のインターフェイス型に比べ、以下の制限があ
『Effective Java 第2版 (The Java Series)』を読むまで知らなかったのですが、Java SE 5 から Java SE 6 に移行する際に @Override アノテーション*1の使用方法が変更になっていたそうで。 一言で言えば、「インターフェースに宣言されているメソッドをオーバーライドする際にも @Override アノテーションを使える」ように拡張されました。 確かに Java SE 5 の頃に何故こういう風に使えないんだ!と思ったことがありましたが、拙者だけではなかったのですね。 以下で、Java SE 5 と Java SE 6 の間の @Override アノテーションの使い方の違いを、サンプル・コードを用いて見ていきましょう。 分類表 拡張する型 (extends) と拡張される型 (super) で、有り得る組合せは以下の表の通り: extend
神経質なのかも知れないが、コンパイル警告が嫌い。 だから、出来るだけ警告されないように書くし、 警告されても揉み消してもいいならもみ消す。 @SuppressWarnings("unused") 未使用変数だったら出る警告。 →正直、要らないコードのケースが多い。「作りかけかよ?」と思うこと多々。 →テストケースで多く出るので、僕はごりごりunusedを付けていく。 @SuppressWarnings("unchecked") 総称型をraw型で使ってると出る警告。 →コード補完でやると、メソッドにuncheckedを付けに行くが、これは良くない。ちゃんとローカル変数に付けよう。 未検査のキャストなんかで出る警告。 Map map = new HashMap(); Map ret = (Map) map; →総称型を使ってるとけっこう出てくるんだけど、作りが悪いと回避出来ないことが多い。
警告を抑止する方法 Eclipse3.1以降でよく警告が出るようになった。 javacコマンドで直接コンパイルするとデフォルトではその手の警告は出ないが、javacのオプションで-Xlintを付けてコンパイルすると これらの警告が出るようになる。 コンパイルオプションによる抑止 アノテーションによる抑止 [/2010-01-09] @SafeVarargs [/2017-09-23] Eclipseの設定による抑止 [/2008-10-25] コンパイルオプションによる抑止 javacのオプションの-Xlintによって警告を抑止できる。(JDK1.5以降) 全ての警告を出す例: > javac -Xlint Test.java > javac -Xlint:all Test.java 全く警告を出さない例: > javac Test.java > javac -Xlint:none Tes
この連載では、Javaのデータベース・アクセスAPIである「JDBC」の機能を、サンプルコードを交えて解説していきます。また、J2EEにおけるJDBCの位置付けや、JDBCを利用するさまざまなテクノロジについても解説していく予定です。前提知識としては、Javaとリレーショナル・データベースに関するベーシックな知識があれば十分です。 今回は、JDBCの概要について簡単に触れた後、JDBCのアーキテクチャについて解説します。 JDBCとは? JDBCは、一言でいってしまうなら「リレーショナル・データベース(および、ほとんどすべての表形式のデータ)にアクセスするための、標準Java API」です。JDBCは「Java Database Connectivity」の省略だといわれています(が、実はJDBC仕様には明記されていません)。 企業内のクリティカルなデータは、多くの場合リレーショナル・デー
1 JDBCの概要 この章では、Java Database Connectivity(JDBC)のOracle実装の概要を説明します。次の項目が含まれます。 JDBCの概要 Oracle JDBCドライバの概要 アプリケーションおよびアプレット機能の概要 サーバー側の基本 環境およびサポート このリリースの変更点 JDBCの概要 JDBCは、Javaからリレーショナル・データベースに接続するためのインタフェースを提供するJava標準です。JDBC標準はSun社によって定義され、標準のjava.sqlインタフェースを介して実装されます。このため、各プロバイダは独自のJDBCドライバで標準を実装および拡張できます。 JDBCは、X/Open SQLコール・レベル・インタフェース(CLI)に基づき、SQL92エントリ・レベル標準に準拠しています。 Oracle JDBCドライバの概要 Oracl
はじめに こんにちは、yokatsukiです。 相変わらずOracle DBを触る機会がちょくちょくあるのですが、先日こういう相談を受けました。 「SQL*Loaderで複数テーブルのロードを行うことになったのだが、手書きでひとつひとつ制御ファイルを作成するのがめんどい。何か自動生成する方法はないか?」 ということでお手軽な方法がないか調べてみました。 SQL*Loader制御ファイルの生成 ズバリ「Oracle SQL Developer(以下SQL Developer)を使おう」です。 ただし、条件としてロード対象のテーブルがデータベース内に作成できていることが条件です。 以下の環境で確認しました。 Windows 10 Pro SQL Developer 4.1.3.20 w/jdk1.8.0_92 RDS for Oracle 12.1.0.1v4 Oracleデータベースの確認
Maven のセントラルリポジトリやリムーブリポジトリ(※)で提供されていないサードパーティ Jar や俺俺ライブラリを pom.xml 上でどう管理するかという話です。 管理の仕方によって、開発者や管理者(環境構築をするようなアーキテクトっぽい人)の仕事が変わってくると思います。 ※ http://daipresents.com/2009/maven2_internal_repository_webdav/ 方法としては、主に以下の3つがあると思います。 ローカルリポジトリに Jar をインストールする インターナルリポジトリを立てる system スコープを使う 1. ローカルリポジトリに Jar をインストールする Jar ファイルをローカルのリポジトリに手動でインストールする方法。 以下のコマンドを叩くことで、自分のローカルリポジトリに Jar ファイルがインストールされる。 mv
Locale クラスについて Locale (Java Platform SE 8) Locale (Java Platform SE 7) Java の Locale クラスは、language と region のペアを表します。 Locale オブジェクトを元に、数値の表示フォーマット (NumberFormat) や、文言リソース (ResourceBundle) オブジェクトを取得することで i18n 対応のアプリを開発できます。 下記は、Locale クラスのコンストラクタのバリエーションです。 Locale(String language) Locale(String language, String country) Locale(String language, String country, String variant) 最後のオーバーロードバージョンでは、langu
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く