최대 절전 모드의 경량 대안? [닫은]
Derby 또는 Sqlite와 같은 경량 데이터베이스에 데이터를 저장하려는 단일 사용자 Java 프로그램이 있습니다. 내 프로그램에서 데이터 추상화 계층을 사용하고 싶습니다. 최대 절전 모드는 많은 구성이 필요한 것으로 보이며 필요한 것에 과도합니다. 최대 절전 모드에 대한 경량 대안은 무엇입니까?
주석을 사용하는 경우 최대 절전 모드 옆에 최대 절전 모드가 필요합니다. 심지어 클래스 패스에서 매핑 된 빈을 자동 발견 할 수도 있습니다! 나는 단순성 과 힘의 관점 에서 그것에 대한 대안을 보지 못한다 .
또한 JPA로 노출 될 수 있으며 이는 (IMHO) 훨씬 단순합니다.
내 ORMLite 라이브러리는 그러한 대안 중 하나입니다. MySQL, Postgres, Microsoft SQL Server, H2, Derby, HSQLDB 및 Sqlite를 지원하며 다른 사람으로 쉽게 확장 할 수 있습니다. 주석을 사용하여 클래스, 우수한 Spring 지원, 유연한 쿼리 작성기 등을 구성합니다.
여전히 XML 구성이 필요하지만 MyBatis (이전의 iBatis)를 살펴보십시오 .
jOOQ 는 다음과 같은 주요 목표에 대한 부작용으로 Java에서 SQL을 직접 시뮬레이션하는 유창한 DSL과 함께 제공됩니다.
- 소스 코드 생성
- UNION, 중첩 SELECT, 모든 유형의 JOIN, 별칭 (예 : 자체 조인) 등과 같은 SQL 언어 기능을 포함한 표준 SQL을 완벽하게 지원
- UDT, 저장 프로 시저, 공급 업체별 기능 등을 포함한 비표준 SQL에 대한 광범위한 지원
이 기사 ( http://java.dzone.com/announcements/simple-and-intuitive-approach) 에서 jOOQ에 대해 읽 거나 웹 사이트를 직접 방문하십시오. http://www.jooq.org
(면책 조항, 저는 jOOQ 뒤에있는 회사에서 일합니다)
Apache Commons DBUtils 는 JDBC 프로그래밍에서 반복되는 많은 작업을 수행합니다. 구성이 거의 필요 없으며 배우기 쉽습니다. ORM 프레임 워크는 아니지만 (여기서 언급 된 Hibernate 및 기타 프레임 워크와 같은 방식으로) SELECT 열을 Java 멤버 필드 및 기타 반복적 인 JDBC 프로그래밍 태스크로의 맵핑을 자동화합니다. 확실히 가볍습니다.
Ebean ORM을 살펴볼 수 있습니다 . -세션이 없습니다-게으른 로딩은 작동합니다.-사용하고 배우는 간단한 API입니다.
카이엔 은 나를 잘 섬겼다. 비교적 이해하고 실행하기가 쉽습니다. 리버스 엔지니어링 부분이 특히 매력적입니다. GUI로 구성 할 수 있습니다.
아파치 제국 DB를 제안 할 수 있습니다. http://incubator.apache.org/empire-db/
Apache Empire-db는 데이터베이스 공급 업체 독립적 인 동적 쿼리 정의와 안전하고 간단한 데이터 검색 및 업데이트를 허용하는 오픈 소스 관계형 데이터 지속성 구성 요소입니다. Hibernate, 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 년에 ActiveRecord 패턴의 ORM 구현 인 ActiveJDBC 를 출시 했는데 , 이는 종속성에서 Hibernate보다 10 배 이상 더 가벼우 며 런타임에 2 배 이상 빠르며 구성이 필요 없습니다. 또는 주석.
prevayler (sourceforge)를 살펴볼 수 있습니다. 지속성에 대한 다소 가벼운 접근 방식. 아니면 DB에 대한보고를 생각하고 있었습니까?
관계형 데이터베이스 사용이 필수가 아닌 경우 db4o를 사용해보십시오.
헤비급 ORM에 대한 대안으로 sormula 를 만들었습니다 . CRUD-ready, POJO-friendly, 사용, 구성 및 이해가 간편합니다. 제로 구성 사용이 가능합니다. www.sormula.org
카이트 프레임 워크는 매우 가벼운 프레임 워크입니다. 최소한의 구성으로 거의 모든 db 작업을 제공합니다.
http://deipakgarg.github.com/Kite-ORM/
공개 : 나는이 프로젝트의 저자입니다
참고 URL : https://stackoverflow.com/questions/296587/light-weight-alternative-to-hibernate
'programing tip' 카테고리의 다른 글
XML이 아닌 코드에서 RelativeLayout 레이아웃 매개 변수를 설정하는 방법은 무엇입니까? (0) | 2020.07.28 |
---|---|
런타임시 Android보기 크기 결정 (0) | 2020.07.28 |
C #에서 여러 열거 형 값을 어떻게 전달합니까? (0) | 2020.07.28 |
숭고한 텍스트 편집기에서 개요보기를 얻는 방법은 무엇입니까? (0) | 2020.07.28 |
프로그램의 실행 시간을 계산하는 방법은 무엇입니까? (0) | 2020.07.28 |