source

하이버네이트 대신 경량?

itover 2022. 10. 18. 23:20
반응형

하이버네이트 대신 경량?

Derby나 Sqlite와 같은 경량 데이터베이스에 데이터를 저장하고자 하는 단일 사용자 Java 프로그램이 있습니다.프로그램에 데이터 추상화 레이어를 사용하고 싶습니다.휴지 상태에서는, 많은 설정이 필요한 것 같기 때문에, 필요한 만큼은 과잉입니다.하이버네이트 대신 경량에는 어떤 것이 있습니까?

주석을 사용하는 경우 휴지 상태에서는 거의 제로 구성이 필요합니다.클래스 패스에서 맵된 콩을 자동으로 검출할 수도 있습니다!단순함과 힘의 관점 모두에서 그에 대한 대안이 보이지 않습니다.

또, JPA로서 그 자체를 표시할 수도 있습니다(IMHO).

나의 ORMite 라이브러리는 그러한 대안 중 하나이다.MySQL, Postgres, Microsoft SQL Server, H2, Derby, HSQLDB 및 Sqlite를 지원하며 다른 사용자로 쉽게 확장할 수 있습니다.주석을 사용하여 클래스 구성, 우수한 Spring 지원, 유연한 쿼리 작성기 등

아직 XML 구성이 필요하지만 MyBatis(이전의 iBatis)를 살펴보십시오.

jOOQ는 Java에서 SQL을 직접 시뮬레이션하는 유창 DSL과 함께 다음과 같은 주요 목표를 위한 부작용으로 제공됩니다.

  • 소스 코드 생성
  • UNION, 네스트된 SELECT, 모든 유형의 JOIN, 에일리어스(셀프 조인 등) 등의 SQL 언어 기능을 포함한 표준 SQL 완전 지원
  • UDT, 스토어드 프로시저, 벤더 고유의 기능 등 비표준 SQL을 폭넓게 지원합니다.

jOOQ에 대한 자세한 내용은 다음 기사를 참조하십시오.http://java.dzone.com/announcements/simple-and-intuitive-approach, 또는 직접 웹사이트를 방문하십시오.http://www.jooq.org

(해임자, 저는 jOOQ의 배후에 있는 회사에서 일하고 있습니다.)

Apache Commons DBUtils는 JDBC 프로그래밍에서 많은 반복적인 작업을 제거합니다.구성이 거의 필요 없고 배우기 쉽습니다.ORM 프레임워크는 아니지만(여기서 언급한 Hibernate 및 기타 프레임워크와 마찬가지로), Java 멤버필드에 대한 SELECT 컬럼의 매핑과 기타 반복적인 JDBC 프로그래밍 작업을 자동화합니다.확실히 가볍네요.

Ebean ORM을 보실 수 있습니다.세션은 없습니다.로드가 느립니다.사용과 학습이 간단합니다.

카이엔은 나를 잘 섬겼다.비교적 알기 쉽고, 사용하기 쉽게 되어 있습니다.나는 역공학적인 부분이 특히 매력적이라고 생각한다.GUI 를 사용해 설정할 수 있습니다.

아파치 엠파이어-db를 제안할 수 있어http://incubator.apache.org/empire-db/

Apache Empire-db는 데이터베이스 벤더에 의존하지 않는 동적 쿼리 정의뿐만 아니라 안전하고 간단한 데이터 검색 및 업데이트를 가능하게 하는 오픈 소스 관계형 데이터 지속성 구성 요소입니다.기타 대부분의 솔루션과 비교합니다.하이버네이트, TopLink, iBATIS 또는 JPA 구현 시 Empire-db는 컴파일안전성, 용장성 감소 및 개발자 생산성 향상에 특히 중점을 둔 상당히 다른 접근방식을 채택하고 있습니다.

예:

// Define the query
DBCommand cmd = db.createCommand();
DBColumnExpr EMPLOYEE_FULLNAME= db.EMPLOYEES.LASTNAME.append(", ")
                        .append(db.EMPLOYEES.FIRSTNAME).as("FULL_NAME");
// Select required columns
cmd.select(db.EMPLOYEES.EMPLOYEE_ID, EMPLOYEE_FULLNAME);
cmd.select(db.EMPLOYEES.GENDER, db.EMPLOYEES.PHONE_NUMBER);
cmd.select(db.DEPARTMENTS.NAME.as("DEPARTMENT"));
cmd.select(db.DEPARTMENTS.BUSINESS_UNIT);
// Set Joins
cmd.join(db.EMPLOYEES.DEPARTMENT_ID, db.DEPARTMENTS.DEPARTMENT_ID);
// Set contraints and order
cmd.where(EMP.LASTNAME.length().isGreaterThan(0));
cmd.orderBy(EMP.LASTNAME);;

ORMAN 프레임워크도 좋습니다.https://github.com/ahmetalpbalkan/orman

문서: https://github.com/ahmetalpbalkan/orman/wiki

비교: https://github.com/ahmetalpbalkan/orman/wiki/Why-orman-is-better-than-other-orms-for-you%3F

파티에 조금 늦을 수도 있습니다만, 2010년에 ActiveJDBC를 발표했습니다.ActiveRecord 패턴의 ORM 실장입니다.의존관계는 Hibernate보다 10배 이상 가볍고, 실행시에도 적어도 2배 빠르며, 설정이나 주석이 전혀 필요 없습니다.

prevayler(소스 포지의 경우)를 살펴보는 것이 좋습니다.지속성에 대한 다소 가벼운 접근법.아니면 DB에 대한 보고서를 작성하려고 했습니까?

관계형 데이터베이스 사용이 필수가 아닌 경우 db4o를 사용해 보십시오.

헤비급 ORM의 대안으로 소믈라를 만들었습니다.CRUD 대응으로 POJO 친화적이며 사용, 설정 및 이해가 용이합니다.제로 구성을 사용할 수 있습니다.www.sormula.org

연골조 또한 매우 가볍다.최소한의 구성으로 거의 모든 DB 작업을 제공합니다.

http://deipakgarg.github.com/Kite-ORM/

공개:나는 이 프로젝트의 저자이다.

언급URL : https://stackoverflow.com/questions/296587/light-weight-alternative-to-hibernate

반응형