estocdb (0.4) | 2009-02-26 14:37 |
- import java.sql.Connection;
- import java.sql.DriverManager;
- import java.text.SimpleDateFormat;
- import java.util.Date;
- import java.util.logging.Level;
- import java.util.logging.Logger;
- import estoc.dbm.*;
- import estoc.dbm.annotate.*;
- public class EstocSample {
- public static void main(String[] args) throws Exception {
- Logger.getLogger(Logger.GLOBAL_LOGGER_NAME).setLevel(Level.WARNING);
- //メモリ上にH2のデータベース testdb を作成します
- Class.forName("org.h2.Driver").newInstance();
- final String url = "jdbc:h2:mem:testdb;create=true";
- Connection connection = DriverManager.getConnection(url);
- //全ての操作はAccessManagerを使用します
- AccessManager accessManager = new AccessManager(DbType.H2);
- //TableAccessはテーブルの作成・削除などを行います
- TableAccess tableAccess = accessManager.getTableAccess(connection);
- //テーブルの作成
- tableAccess.create(TblBook.class);
- //DataAccessはデータの挿入、削除などを行います
- DataAccess dataAccess = accessManager.getDataAccess(connection);
- //データの挿入
- TblBook book = new TblBook();
- book.isbn = "000xxxxAAA";
- book.price = 1500;
- System.out.println( "before = " + book );
- book = dataAccess.insert(book);
- System.out.println( "inserted = " + book );
- //データの取得
- Integer genelatedId = book.id;
- TblBook selected = dataAccess.select(TblBook.class, genelatedId);
- System.out.println( "selected = " + selected );
- //データの更新
- selected.price = 2000;
- dataAccess.update(selected);
- System.out.println( "updated = " + selected );
- //データの削除
- boolean rtn = dataAccess.delete(selected);
- System.out.println( "deleted = " + rtn );
- }
- //テーブル book_info の構造を定義します
- @Table("book_info")
- public static class TblBook {
- @Column @Pk @AutoInc
- public Integer id;
- @Column(24) @NotNull @Index
- public String isbn;
- @Column
- public Integer price;
- @Column
- public byte[] image;
- @Column @TimeStamp
- public Date update_date;
- @Override
- public String toString() {
- SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd HH:ss:SSS");
- StringBuilder sb = new StringBuilder();
- sb.append(" id=").append(id);
- sb.append(" isbn=").append(isbn);
- sb.append(" price=").append(price);
- sb.append(" image=").append(image);
- sb.append(" update_date=").append(update_date != null ? sd.format(update_date) : null);
- return sb.toString();
- }
- }
- }
出力結果
before = id=null isbn=000xxxxAAA price=1500 image=null update_date=null inserted = id=1 isbn=000xxxxAAA price=1500 image=null update_date=2008-12-02 14:24:132 selected = id=1 isbn=000xxxxAAA price=1500 image=null update_date=2008-12-02 14:24:132 updated = id=1 isbn=000xxxxAAA price=2000 image=null update_date=2008-12-02 14:24:195 deleted = true