estocdb (0.4) | 2009-02-26 14:37 |
estoc.dbではアノテーションを使用してテーブル構造を定義します
・テーブル名の指定
@Table( table_name )でエンティティクラスを定義します
・カラムの指定
フィールドに@Columnでテーブルカラムを指定します
フィールド名とカラム名は同一とします
フィールドはpublicでも、privateでGetter/Setterを用意する形でも構いません
publicなGetter/Setterがあれば、それを利用してデータの授受を行います。 Getter/Setterが無い場合、フィールドがpublicであれば直接データをセットします。 それ以外の場合、実行時にエラー(Exception)となります。
@Columnにはパラメーターを設定し、サイズを指定することができます(できない型もある)
フィールドとして使用できる型は以下の通りです
| 型名(Java) | param1 | param2 | H2での型 | Derbyでの型 | -------------------------------------------------------------------------------------- |String | 省略 | 省略 |VARCHAR |VARCHAR(125) | | N | 省略 |VARCHAR(N) |VARCHAR(N) |Integer | 省略 | 省略 |INT |INTEGER |byte[] | 省略 | 省略 |VARBINARY |VARCHAR (125) FOR BIT DATA | | N | 省略 |BINARY(N) |VARCHAR (N) FOR BIT DATA |Date | 省略 | 省略 |TIMESTAMP |TIMESTAMP |Boolean | 省略 | 省略 |BOOLEAN |サポートしない |Double | 省略 | 省略 |DOUBLE |DOUBLE |BigDecimal | 省略 | 省略 |DECIMAL(10,0)|DECIMAL(10,0) | | N | 省略 |DECIMAL(N,0) |DECIMAL(N,0) | | N | M |DECIMAL(N,M) |DECIMAL(N,M)
@Columnに続けてアノテーションで絡む属性を指定することができます
アノテーションで指定できるカラム属性は以下の通りです+
@Pk
@Unique
@Index
sample
またはprivateメンバ+ getter/setter でも定義できます
- import java.util.Date;
- import estoc.dbm.annotate.*;
- @Table("book_info")
- public class TblBook {
- @Column @Pk @AutoInc
- public Integer id;
- @Column(24) @NotNull @Index
- public String isbn;
- @Column
- public String author;
- @Column
- public Integer price;
- @Column
- public byte[] image;
- @Column @TimeStamp
- public Date update_date;
- }
- @Table("book_info")
- public class TblBook {
- @Column @Pk @AutoInc
- private Integer id;
- @Column(24) @NotNull @Index
- private String isbn;
- @Column
- private String author;
- @Column
- private Integer price;
- @Column
- private byte[] image;
- @Column @TimeStamp
- private Date update_date;
- public Integer getId() {
- return id;
- }
- public void setId(Integer id) {
- this.id = id;
- }
- public String getIsbn() {
- return isbn;
- }
- public void setIsbn(String isbn) {
- this.isbn = isbn;
- }
- public String getAuthor() {
- return author;
- }
- public void setAuthor(String author) {
- this.author = author;
- }
- public Integer getPrice() {
- return price;
- }
- public void setPrice(Integer price) {
- this.price = price;
- }
- public byte[] getImage() {
- return image;
- }
- public void setImage(byte[] image) {
- this.image = image;
- }
- public Date getUpdate_date() {
- return update_date;
- }
- public void setUpdate_date(Date update_date) {
- this.update_date = update_date;
- }
- }