Doma 2

Java 8 時代のDBアクセス

自己紹介


Java 8の新機能

  • ラムダ式
  • Stream API
  • Date and Time API
  • Optional
  • デフォルトメソッド

これ全部 Doma 2 で使えます!

Doma とは?

  • S2Daoから発展したDBアクセスライブラリ
  • 2 way SQL
  • 注釈処理
  • 依存ライブラリ 0
  • Doma 1 は Java 6 以上で動作

Doma 2 はDoma 1 を Java 8 に最適化

ラムダ式


TransactionManager tm = ...

tm.required(() -> {
  Emp emp = dao.selectById(1);
  emp.setAge(emp.getAge() + 1);
  dao.update(emp);
});

Stream API


Date and Time API

@Entity
public class Emp {
  private LocalDate hiredDate;
  private LocalDateTime updatedAt;
  ...
}

Optional


@Dao
public interface EmpDao {
  @Select
  Optional<Emp> selectById(Integer id);
}

デフォルトメソッド


@Dao
public interface EmpDao {
  default Optional<Emp> selectById(Integer id) {
    Config config = Config.get(this);
    DataSource ds = config.getDataSource();
    ...
  }
}

興味持っていただけました?

Doma 2 情報



Thank you