2012-05-08 18 views
4

私は現在、データベース情報をJavaオブジェクトに変換するプロジェクトに取り組んでいます。興味がありました。 Java側。例えばデータベースからJava変数への変換時に使用する命名規則

、私のような犬についての情報含む犬という名前のテーブルに変換していた場合: カラム:私はJavaの命名規則に従うべきBREED_C, NAME_C, OWNER_C, DOGID_D, HAS_RABIES_Iというように対応する変数で犬と呼ばれるJavaオブジェクトには、などBreedCBreed_C、さらにはBREED_Cを使用すると、2つのシステムの間にわずかな相違がありますか?

+0

Javaの規約を常にお勧めします – Venki

+0

「BREED_C」の「C」は何を表していますか? –

答えて

6

Javaで作業する場合は、Java命名規則を使用してください。

データベースの抽象化は、アプリケーションの他の部分から引き離す責任があるように思えます。そのため、データベース変数と同じ名前のJava変数に名前を付けることによってデータベース表現を公開する必要はありません。

+0

違うコンベンションを使いたいと思うことはありますか? – JWiley

+0

私は専門的なJava開発の12年に遭遇したことはありません。 – digitaljoel

+0

私はこの質問を投稿したプロジェクトの途中です。 XStreamはJavaオブジェクトをxmlに変換して元に戻し、xmlノード名に変数名を使用します。したがって、標準のJava命名規約を使用する場合は、スキーマに必要なものにすべてのXMLノード名をエイリアスする必要があります(thisTimeStampではなくThisTimeStampのように書式設定されています)。これは、別の命名規則コンベンション? – JWiley

0

Javaの規約を使用する方が良いので、breedCを選択する必要があります。 JPAを使用している場合は、breedCフィールドに@Column(name="BREED_C")を追加すると、2つのシステムに参加することができます。

EDIT:例として、あなたのケースを使用して:フィールド名が列名と一致する

@Table(name="DOG") 
public class Dog { 
    @Column(name="BREED_C") 
    private String breedC; 
} 

場合は、それらのannotiationsは必要ありませんが、彼らはあなたのケースのように、異なるなら、あなたはそれらを置く必要があります。しかし、あなたがJPAのようなものを使っている場合に限ります。

+0

db列名を含むjavadocで変数にラベルを付けると言っていますか? – JWiley

+0

HibernateまたはJPAを使用している場合、どのフィールドがどの列に対応するのかを示す必要があります。したがって、注釈を使用する必要があります。私はより完全な例で答えを編集します – Montolide

1

C、D、Iは列の型です。フィールドやゲッタ/セッタの型があるので、Javaでは必要ありません。

これは可能な限りJava lowerCamelCaseの規約を使用しています。

よく知られているJavaデータベース抽象化プロジェクト(JPA)はすべてこのようになります。

1

は、Javaプログラミング言語用コード表記た内容に応じて、それぞれの内部の単語が大文字 の第1の手紙と混合した場合には、名詞である必要があり、クラスの名前

クラス名を言います。あなたのクラス名は単純に とわかりやすいようにしてください。単語全体を使用する - 頭字語と略語を避ける (省略形が長形よりもはるかに広く使用されている場合を除き、URLやHTMLのように )。変数を除き

や変数の名前

、すべてのインスタンス、クラス、およびクラス定数は小文字の第1の手紙と混合した場合に あります。内部の単語は、 の大文字で始まります。

databaseの名前をJavaに変換するこの方法を使用できます。

public static String toJavaFieldName(String name) { // "MY_COLUMN" 
    String name0 = name.replace("_", " "); // to "MY COLUMN" 
    name0 = WordUtils.capitalizeFully(name0); // to "My Column" 
    name0 = name0.replace(" ", ""); // to "MyColumn" 
    name0 = WordUtils.uncapitalize(name0); // to "myColumn" 
    return name0; 
} 

public static String toJavaClassName(String name) { // "MY_TABLE" 
    String name0 = name.replace("_", " "); // to "MY TABLE" 
    name0 = WordUtils.capitalizeFully(name0); // to "My Table" 
    name0 = name0.replace(" ", ""); // to "MyTable" 
    return name0; 
} 

Apache Commons Langを使用するこの方法。

関連する問題