4

私は現在、データベース情報をJavaオブジェクトに変換するプロジェクトに取り組んでいますが、Java側でオブジェクトと変数をどのように表現/命名する必要があるのか​​興味がありました。

たとえば、次のような犬に関する情報を含むDogという名前のテーブルを変換する場合:Column:などを対応する変数を持つDogというJavaオブジェクトに変換する場合、またはuseBREED_C, NAME_C, OWNER_C, DOGID_D, HAS_RABIES_IなどのJava命名規則に従う必要があります。 2つのシステム間のわずかな不一致?BreedCBreed_CBREED_C

4

4 に答える 4

6

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

とにかく、コードがアプリケーションの残りの部分からデータベースレイヤーを抽象化する責任があるように思われるので、データベース列とまったく同じ名前でJava変数に名前を付けてデータベース表現を公開する理由はありません。

于 2012-05-08T16:27:35.723 に答える
1

C、D、およびIは列の型であると思いますが、フィールドとゲッター/セッターの型があるため、Javaでは必要ありません。

これは、可能な限りJavaのlowerCamelCase規則を使用することから始まります。

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

于 2012-05-08T16:32:19.660 に答える
1

Javaプログラミング言語のコード規則によると、クラスの名前について

クラス名は名詞である必要があります。大文字と小文字が混在する場合は、各内部単語の最初の文字を使用します。クラス名はシンプルでわかりやすいものにしてください。単語全体を使用します。頭字語や略語は避けます(URLやHTMLなどの長い形式よりも略語が広く使用されている場合を除く)。

そして変数の名前

変数を除いて、すべてのインスタンス、クラス、およびクラス定数は、小文字の最初の文字と大文字と小文字が混在しています。内部の単語は大文字で始まります。

このメソッドを使用して、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;
}

ApacheCommonsLangを使用するこのメソッド。

于 2012-05-08T16:37:24.697 に答える
0

Java規則を使用する方がよいので、breedCを選択する必要があります。JPAを使用している場合@Column(name="BREED_C")、breedCフィールドを追加すると、2つのシステムを結合するためのトリックが作成される可能性があります。

編集:例としてあなたのケースを使用して:

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

フィールド名が列名と一致する場合、それらの注釈は必要ありませんが、異なる場合は、場合によっては、それらを配置する必要があります。ただし、JPAのようなものを使用している場合に限ります。

于 2012-05-08T16:29:44.003 に答える