[SQL] 자바에서 좋은 동적 SQL 빌더 라이브러리가 있습니까? [닫은]
SQL자바에서 좋은 동적 SQL 빌더 라이브러리가 있습니까? [닫은]
누구나 SQUIGGLE 같은 자바에 대한 좋은의 SQL 빌더 라이브러리 (것 같습니다 더 이상 유지되지 않음)를 알고있다. 바람직하게는, 활성 개발 프로젝트.
바람직하게는 Zend_Db_Select 같은 구문, 같은 쿼리를 만들 수 있습니다 뭔가
String query = db.select().from('products').order('product_id');
해결법
-
==============================
1.Querydsl 및 jOOQ 두 개의 인기있는 선택입니다.
Querydsl 및 jOOQ 두 개의 인기있는 선택입니다.
-
==============================
2.나는 jOOQ을 추천 할 수 있습니다. 그것은 훌륭한 기능도 SQL에 대한 직관적 인 DSL과이며 매우 customable 리버스 엔지니어링 접근 방식을 많이 제공합니다.
나는 jOOQ을 추천 할 수 있습니다. 그것은 훌륭한 기능도 SQL에 대한 직관적 인 DSL과이며 매우 customable 리버스 엔지니어링 접근 방식을 많이 제공합니다.
-
==============================
3.ddlutils 내 최선의 선택 : HTTP : //db.apache.org/ddlutils/api/org/apache/ddlutils/platform/SqlBuilder.html
ddlutils 내 최선의 선택 : HTTP : //db.apache.org/ddlutils/api/org/apache/ddlutils/platform/SqlBuilder.html
여기에 예 (끝내)를 만들 수 있습니다 :
Platform platform = PlatformFactory.createNewPlatformInstance("oracle");//db2,... //create schema def db = new Database(); def t = new Table(name:"t1",description:"XXX"); def col1 = new Column(primaryKey:true,name:"id",type:"bigint",required:true); t.addColumn(col1); t.addColumn(new Column(name:"c2",type:"DECIMAL",size:"8,2")); t.addColumn( new Column(name:"c3",type:"varchar")); t.addColumn(new Column(name:"c4",type:"TIMESTAMP",description:"date")); db.addTable(t); println platform.getCreateModelSql(db, false, false) //you can read Table Object from platform.readModelFromDatabase(....) def sqlbuilder = platform.getSqlBuilder(); println "insert:"+sqlbuilder.getInsertSql(t,["id":1,c2:3],false); println "update:"+sqlbuilder.getUpdateSql(t,["id":1,c2:3],false); println "delete:"+sqlbuilder.getDeleteSql(t,["id":1,c2:3],false); //http://db.apache.org/ddlutils/database-support.html
-
==============================
4.최대 절전 모드 기준 API (안 일반 SQL하지만,하지만 매우 강력하고 적극적인 개발 중) :
최대 절전 모드 기준 API (안 일반 SQL하지만,하지만 매우 강력하고 적극적인 개발 중) :
List sales = session.createCriteria(Sale.class) .add(Expression.ge("date",startDate); .add(Expression.le("date",endDate); .addOrder( Order.asc("date") ) .setFirstResult(0) .setMaxResults(10) .list();
-
==============================
5.다음과 같은 라이브러리를 사용할 수 있습니다 :
다음과 같은 라이브러리를 사용할 수 있습니다 :
https://github.com/pnowy/NativeCriteria
이 라이브러리는 그것 (지원되는 최대 절전 모드 세션 및 JPA 제공자) 최대 절전 모드에서 지원하는 모든 데이터베이스를 지원하므로 "SQL 쿼리를 만들"최대 절전 모드의 상단에 내장되어 있습니다. 빌더 후두둑 가능 등 (객체 매퍼, 결과 매퍼)에 있습니다.
당신은 GitHub의 페이지에서 예를 찾을 수 있습니다, 라이브러리는 메이븐에서 물론 중앙 사용할 수 있습니다.
NativeCriteria c = new NativeCriteria(new HibernateQueryProvider(hibernateSession), "table_name", "alias"); c.addJoin(NativeExps.innerJoin("table_name_to_join", "alias2", "alias.left_column", "alias2.right_column")); c.setProjection(NativeExps.projection().addProjection(Lists.newArrayList("alias.table_column","alias2.table_column")));
from https://stackoverflow.com/questions/5620985/is-there-any-good-dynamic-sql-builder-library-in-java by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 처리 DATETIME는 JDBC에 0000-00-00 0시 0분 0초 값 (0) | 2020.04.17 |
---|---|
[SQL] 컬렉션 / 배열 / 목록에서 쉼표로 구분 된 문자열을 만들기위한 가장 정교한 방법은? (0) | 2020.04.17 |
[SQL] 어떻게 SQL에서 효율적으로 열 값의 발생을 계산하려면? (0) | 2020.04.17 |
[SQL] 어떻게 내가 업데이트 위로에게 SQL 서버 (100) 기록을 할 수 (0) | 2020.04.17 |
[SQL] 기본 키를 사용하여 이메일 주소? (0) | 2020.04.17 |