2011-05-18 26 views
8

Tôi đang tìm kiếm trình tạo DAO miễn phí và đơn giản cho java (nó cần tạo các thực thể/bens từ các bảng/khung nhìn db và tạo mã CRUD cơ bản). Hiện tại, tôi đang sử dụng DAO4J thiếu một số chức năng như ánh xạ chế độ xem. Tôi biết rằng có những khung công tác như Hibernate nhưng tôi không cần khung công tác mạnh mẽ như vậy.Máy phát DAO cho java

Một số điều khuôn khổ này nên phải làm:

  • Tạo hoạt động CRUD với các truy vấn SQL chuẩn và không thời gian biên dịch typesafe truy vấn
  • Không có khái niệm phiên như ngủ đông
  • sẽ không tự động đóng kết nối
  • Kết nối JDBC có thể được định cấu hình qua mã

Trả lời

8

Không ai trong số đó là những trận đấu hoàn hảo, nhưng cả hai tảng đá, theo cách riêng của mình:

  1. Spring Roo tạo DAO, Web điều khiển và nhiều hơn nữa cho bạn.
  2. QueryDSL tự động creates Objects from your database tables và cung cấp cú pháp truy vấn hướng đối tượng có độ an toàn biên dịch.

Nhưng tôi muốn nói người chiến thắng là Spring Data. Nó cung cấp một trừu tượng đơn giản nhưng mạnh mẽ trên nhiều công nghệ lưu trữ dữ liệu cơ bản khác nhau và tạo ra các daos cho bạn một cách tự động. Đây là bản trình bày của Spring Data JPA. Thật không may, dữ liệu mùa xuân chưa được phát hành trong các phiên bản cuối cùng.

+0

DeltaSpike (https://deltaspike.apache.org/) là một lựa chọn thay thế của Apache, và bạn có thể xem qua nhanh tại https://jaxenter.com/top-3-jpa-productivity-boosters-for -java-ee-developers-deltaspike-data-116136.html – user3257644

+0

@ user3257644 Tôi khuyên bạn nên viết câu trả lời bổ sung –

2

I woul không được nhiều lợi cho thế hệ tự động.

Tôi có thể đề xuất iBatis là một nửa bước giữa JDBC và Hibernate.

+2

Dự án hiện đã được đổi thành myBatis: http: //www.mybatis.org/ –

2

Bạn có thể thực hiện việc này với Hibernate Tools. Nhưng cá nhân tôi chưa bao giờ thử nó, bây giờ tôi chỉ tạo ra các lớp thực thể.

+0

Điều tôi tìm thấy với Hibernate, là có thể có một đường cong học tập khá dốc khi bạn nhận được qua các công cụ CRUD cơ bản. Đối với tôi, mức tăng hiệu quả giảm khá nhanh khi tôi đã tạo mẫu ban đầu. Đôi khi nó dễ dàng hơn để sử dụng đạn chì. Bây giờ tôi chỉ sử dụng Spring JDBCTemplates. Tôi nghĩ rằng nó cung cấp một kết hợp tốt của việc hạn chế mã boilerplate trong khi vẫn cho phép bạn làm các truy vấn phức tạp. – BillMan

6

Để thêm vào câu trả lời của duffymo, MyBatis là tốt và bạn có thể sử dụng MyBatis generator để tạo mã truy cập dữ liệu.

2

Tôi sẽ là iBatis thứ hai. Đề xuất khác có thể là Spring JDBCTemplate. Vì bạn tốt để áp dụng một khuôn khổ, vậy tại sao không đi với Spring. Nó cũng sẽ tạo điều kiện cho bạn với những điều tuyệt vời khác.

+0

Tôi mới sử dụng Java và dự án của tôi bị hạn chế thời gian nên tôi không thể lãng phí thời gian học các khung công tác lớn mới. Tôi hy vọng rằng một ngày nào đó tôi sẽ sử dụng khung công tác Spring ... –

+1

@Ivan: Sự rực rỡ của Spring nằm trong các bản phân phối và sử dụng của nó. Nó lớn như việc bạn sử dụng nó. –

+0

Không thể đồng ý nhiều hơn về điều đó, nhưng kể từ khi tôi là người ăn xin trong thế giới Java của nó một chút hối hả với tất cả những thứ mới này. –

4

Nếu bạn chỉ cần một trình tạo mã mà không tuân thủ khuôn khổ, bạn nên thử Công cụ Telosys. Đó là một công cụ nhẹ, nó tạo ra mã từ một mô hình cơ sở dữ liệu hiện có.

Xem https://www.telosys.org

Một số mẫu được thiết kế đặc biệt cho JDBC hệ mã, họ có sẵn trên GitHub https://github.com/telosys-templates-v3

Họ cung cấp thế hệ mã cho DAO, giao diện DAO, POJO (đậu), kiểm tra JUnit , v.v.

Các vấn đề liên quan