1. import java.sql.Connection;
  2. import java.sql.DriverManager;
  3. import java.text.SimpleDateFormat;
  4. import java.util.Date;
  5. import java.util.logging.Level;
  6. import java.util.logging.Logger;
  7. import estoc.dbm.*;
  8. import estoc.dbm.annotate.*;
  9. public class EstocSample {
  10. public static void main(String[] args) throws Exception {
  11. Logger.getLogger(Logger.GLOBAL_LOGGER_NAME).setLevel(Level.WARNING);
  12. //メモリ上にH2のデータベース testdb を作成します
  13. Class.forName("org.h2.Driver").newInstance();
  14. final String url = "jdbc:h2:mem:testdb;create=true";
  15. Connection connection = DriverManager.getConnection(url);
  16. //全ての操作はAccessManagerを使用します
  17. AccessManager accessManager = new AccessManager(DbType.H2);
  18. //TableAccessはテーブルの作成・削除などを行います
  19. TableAccess tableAccess = accessManager.getTableAccess(connection);
  20. //テーブルの作成
  21. tableAccess.create(TblBook.class);
  22. //DataAccessはデータの挿入、削除などを行います
  23. DataAccess dataAccess = accessManager.getDataAccess(connection);
  24. //データの挿入
  25. TblBook book = new TblBook();
  26. book.isbn = "000xxxxAAA";
  27. book.price = 1500;
  28. System.out.println( "before = " + book );
  29. book = dataAccess.insert(book);
  30. System.out.println( "inserted = " + book );
  31. //データの取得
  32. Integer genelatedId = book.id;
  33. TblBook selected = dataAccess.select(TblBook.class, genelatedId);
  34. System.out.println( "selected = " + selected );
  35. //データの更新
  36. selected.price = 2000;
  37. dataAccess.update(selected);
  38. System.out.println( "updated = " + selected );
  39. //データの削除
  40. boolean rtn = dataAccess.delete(selected);
  41. System.out.println( "deleted = " + rtn );
  42. }
  43. //テーブル book_info の構造を定義します
  44. @Table("book_info")
  45. public static class TblBook {
  46. @Column @Pk @AutoInc
  47. public Integer id;
  48. @Column(24) @NotNull @Index
  49. public String isbn;
  50. @Column
  51. public Integer price;
  52. @Column
  53. public byte[] image;
  54. @Column @TimeStamp
  55. public Date update_date;
  56. @Override
  57. public String toString() {
  58. SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd HH:ss:SSS");
  59. StringBuilder sb = new StringBuilder();
  60. sb.append(" id=").append(id);
  61. sb.append(" isbn=").append(isbn);
  62. sb.append(" price=").append(price);
  63. sb.append(" image=").append(image);
  64. sb.append(" update_date=").append(update_date != null ? sd.format(update_date) : null);
  65. return sb.toString();
  66. }
  67. }
  68. }

出力結果

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