2009-04-09 2 views
2

Java에서 데이터베이스 지속성을 사용하는 가장 간단한 방법은 무엇입니까? 인터넷을 중심으로 많은 프레임 워크가 존재하지만 나 자신과 디자인 패턴으로 퍼시스턴스 레이어를 개발하는 법을 배우는 것은 재미있을 수 있습니다. 어디서 시작하나요? 책, 웹 사이트, 노하우, 코드 예제 등데이터베이스에 Java 지속성

답변

0

나는 특히 this book을 발견했습니다. This도 좋습니다.

나 자신을 창조 한 나는 동의한다 - 그것은 많은 재미와 많은 일이기도하다. 그것은 모두 당신의 목표에 달려 있습니다.

1

JDBC을 사용하려면 데이터베이스와 대화해야합니다. 자신 만의 프레임 워크를 설계했기 때문에 자신 만의 프레임 워크를 만들 수 있습니다. JPAHibernate을 보시고 아이디어를 얻은 다음 실험 해보십시오.

2

단순한 방법은 jdbc을 사용하는 것입니다. Java에는 멋진 자습서 here이 있습니다.

추상화 계층까지. 내 경험상 Hibernate은 꽤 표준적이고 배우는 가치가 있습니다. 자신의 프로그래밍은 재미있는 운동이 될 수 있지만 최대 절전 모드를 사용하지 않는 좋은 이유는 생각할 수 없습니다.

+0

JDBC를 기반으로 iBatis와 같은 SQL 매퍼를 사용하는 것이 원시 JDBC를 사용하는 것보다 훨씬 쉽다는 것을 알게되었습니다. 이것은 Hibernate와 JPA와 같은 ORM에도 적용됩니다. 이러한 모든 접근 방식에서 프레임 워크는 많은 세부 사항을 처리합니다. 여기에는 연결 풀링 및 SQL 주입 공격 방지와 같은 최적화가 포함됩니다. –

+1

그게 무슨 가치가 있는지, 나는 정말로 jDBI (http://jdbi.org/)를 좋아한다. JDBC의 모든 불쾌한 부분을 처리하고, 원하는 경우 데이터 바인딩을 허용하지만, 그렇지 않은 경우에는 방해하지 않습니다. – StaxMan

3

는 자신

안돼하여 영속 계층을 개발하는 방법을 배우는 재미있을 수있다! 바보 같이 굴지 마.

JDO 또는 JPA을 사용하십시오. 첫 번째는 일반적인 객체 지속성 API이고 다른 하나는 RDBMS 전용입니다.

이들은 다양한 구현 예를 갖는다. JPA에는 JPA 2의 레퍼런스 구현 인 EclipseLink (이전의 Oracle TopLink)와 매우 인기있는 Hibernate가있다.

당신은 정말로 자신을 만들고 싶지 않습니다. 이 분야에서 일하고 싶다면 기존 프로젝트 중 하나에 대신 참여하십시오.

1

DAO (데이터 액세스 개체) 패턴을 확인하십시오. 데이터 액세스 코드를 구성하는 방법을 반영합니다. 당신이 학습 연습을 찾고 있다면

0

는 Larman 경량 데이터베이스 지속성 매퍼 디자인에 장을가 제시

alt text http://graysmatter.codivation.com/content/binary/applyingumlandpatterns.jpg

크레이그 라먼의 사본 Applying UML and Patterns.

를 얻을하려고합니다. 눈에 잘 띄지 않는 퍼시스턴스 모델을 기반으로하는 Hibernate와는 달리 그는 PersistentObject로부터 도메인 객체를 확장해야한다는 강경 한 프레임 워크를 제공합니다. 우리는 또한 각 퍼시 스턴트 도메인 클래스에 대한 매퍼 클래스를 작성해야합니다. 코드 생성 개념이없는 일종의 ActiveRecord 패턴입니다.

0

book (기업용 응용 프로그램 아키텍처의 패턴)은 처음에는 매우 좋은 것처럼 보입니다.나는 그것을 조사했고, 영속성 엔진을 개발하기위한 디자인 패턴은 매우 포괄적이다. 그것은 왜, 언제 그리고 어떻게 사용하는지 알려줍니다.

3

또 다른 유용한 라이브러리는 jDBI입니다. JDBC에 꽤 가깝지만 좋은 바인딩 + 매핑 기능을 사용하려면 제네릭을 이용해야합니다. iBATIS은 가볍지는 않지만 비슷한 특성을 지니고 있으며 훨씬 더 오래되었습니다.

4

먼저 기존 기능의 소스 코드와 소스 코드를 살펴보십시오. 다음은 몇 가지 예입니다 (알파벳 순으로 몇 가지 이름을 지 으려고합니다).

  • DbUtils : 매우 간단한 JDBC 용 래퍼입니다. 어쩌면 여기에서 아이디어를 찾기 시작할 것입니다!
  • EBean : 주로 자바의 JPA 사양
  • iciql에 영향을 사실상의 표준 : JPA 자체
  • Hibernate 유사 JaQu
  • 의 친절 포크
  • JaQu : 쿼리 데이터베이스
  • 을위한 H2의 자신의 도메인 특정 언어
  • JDBI : idiommatic Java에서 관계형 데이터베이스 액세스를 표시합니다.
  • JDO : Apache Java 데이터 객체
  • jOOQ : SQL을 Java에서 도메인 특정 언어로 모델링
  • MyBatis : "세계에서 가장 널리 사용되는 SQL 매핑 프레임 워크". [원문] (이전 iBatis를)
  • QueryDSL : 많은 다른 백엔드 (단지 SQL)
  • Quaere있는 SQL과 같은 유창 API : QueryDSL

그리고 곧 마찬가지로, 당신이 대답을 편집 할 수 있습니다 자신의 프레임 워크를 추가하십시오!