복붙노트

[SQL] 자바 도구 LINQ [폐쇄]

SQL

자바 도구 LINQ [폐쇄]

자바에 대한 LINQ는 유용한 도구가 될 것인가? 나는 자바 객체가 데이터베이스의 행에 매핑 할 수있는 도구에 노력하고있다.

해결법

  1. ==============================

    1.자바에 대한 LINQ 사랑스러운 것, 그러나 문제는 언어의 통합이다.

    자바에 대한 LINQ 사랑스러운 것, 그러나 문제는 언어의 통합이다.

    자바는 람다 식을 간결로 아무것도, 그리고 LINQ의 암반의 그들이있는 거 하나 없다. 나는 그들이 확장은 익명의 내부 클래스를 생성함으로써, 람다 표현하지 않고 일반 자바의 상단에있는 쿼리 식 지원 레이어 수도있을 것 같군요 -하지만 꽤 끔찍한 것입니다. 당신은 SQL에 LINQ 같은 것을하고 싶었다 경우에도 식 트리를 필요 했어.

    검사 예외는 방법으로 얻을 수 있습니다,하지만 우리는 참조해야 할 것이다. 된 IQueryable의 등가 일반 확인이 끝난 예외의 일종을 가지고해야합니다 - 또는 가능성이있는 요소 유형과 예외 유형 모두에서 일반적인 될 수 ...

    어쨌든,이 모든 떡입니다 - 자바 커뮤니티가 폐쇄로 데 주어진 문제, 나는 그것이 어리 석음 될 것은 아니다 즉, 이전 물론 2012 년 약 자바 그 자체로 LINQ 같은 것을 기대하는 생각 그것은 "자바 같은"언어 불가능했을 것입니다. 그루비는 예를 들어, 이미 특정 유용한 측면이있다.

    라이브러리 측면의 경우, Hibernate는 이미 SQL에 LINQ의 기능을 많이의 "비 통합"버전을 제공합니다. 객체에 LINQ를 들어, 구글 자바 컬렉션 API 봐야한다 - 그것은 물건의 같은 종류의 많은입니다 (등 돌출, 필터링). 람다 없이는 물론 사용에 많은 fiddlier -하지만 여전히 정말, 정말 편리합니다. (필자는 구글 컬렉션 코드를 직장에서 모든 시간을 사용하고, 나는 "바닐라"자바 컬렉션으로 돌아 가야 싫어.)

  2. ==============================

    2.스칼라 2.8 LINQ 지원을 위하여려고하고 있다는 것을 지적이의 가치가 ...

    스칼라 2.8 LINQ 지원을 위하여려고하고 있다는 것을 지적이의 가치가 ...

    사실, 스칼라의 standart 컬렉션 API를 제공하는 어떤 의미에서 LINQ를 위해 객체처럼 작동합니다. 다음은 예입니다 :

    List("Paris","Berlin","London","Tokyo")
      .filter(c => c.endsWith("n"))
      .map(c => c.length) 
    // result would be length of the words that ends 
    // with "n" letter ("Berlin" and "London").
    

    무서워하지 마십시오 구문을 새로운 라인 점 : 당신이 평범한 구식 스타일로 코드를 작성할 수 있습니다 :

    Array(1,2,3,4,5,6).map(x => x*x)
    

    그리고 LINQ - 투 - SQL 구문에 가까운 제공하는 프로젝트의 숫자가있다. 예를 들어, Squeryll에서 가져온 스 니펫 :

    import Library._
    using(session) { 
      books.insert(new Author(1, "Michel","Folco"))            
      val a = from(authors)(a=> where(a.lastName === "Folco") select(a)) 
    }
    // but note that there is more code behind this example
    
  3. ==============================

    3.이 문제에 대한 일반적인 접근 방식의 경우, Querydsl을 사용하는 것이 좋습니다.

    이 문제에 대한 일반적인 접근 방식의 경우, Querydsl을 사용하는 것이 좋습니다.

    그것은 JPA / 최대 절전, JDO, SQL 및 Java 컬렉션 백엔드를 지원하는 LINQ 스타일의 구문을 제공합니다.

    이 답변이 바이어스 그래서 나는 Querydsl의 메인테이너입니다.

  4. ==============================

    4.SQL 구현 자바 LINQ. .NET LINQ에 비해 전체 언어 통합과 큰 기능 세트를 제공합니다.

    SQL 구현 자바 LINQ. .NET LINQ에 비해 전체 언어 통합과 큰 기능 세트를 제공합니다.

  5. ==============================

    5.Hibernate는 HQL을 사용합니다. 당신은하지만 관계형 데이터베이스에 대한 객체를 할 수

    Hibernate는 HQL을 사용합니다. 당신은하지만 관계형 데이터베이스에 대한 객체를 할 수

  6. ==============================

    6.기능 개체를 LINQ - 투 - 제공 자바의 확장은 SBQL4J입니다. 그것은 제공합니다 :

    기능 개체를 LINQ - 투 - 제공 자바의 확장은 SBQL4J입니다. 그것은 제공합니다 :

  7. ==============================

    7.걸음마:

    걸음마:

    첫 번째 방법은 : 대신 람다의, 표현식 문자열을 사용하여 Java LINQ를 구현한다.

    문자열 식을 기반으로 쓰기 IQueryProviders.

    언어로 직접 문자열 식을 추가하기위한 그런 다음, 추구한다.

    언어 입력 LINQ, 그것은 좋은 일이지만, 요점은 다음과 같습니다 :하지만 먼저, 내가 작품을하는 LINQ를 원하는 쓰기 IQueryProviders 수있는 방법이 후, POJO를위한 제공, 최대 절전 모드에 대한 공급자, SQL에 대한 공급자 쓰기 서버 나 오라클, 등등 ...

  8. ==============================

    8.시에나 프로젝트는 좋은 것 같다.

    시에나 프로젝트는 좋은 것 같다.

  9. from https://stackoverflow.com/questions/346721/linq-for-java-tool by cc-by-sa and MIT license