찾다

 >  Q&A  >  본문

java - 关于mybatis和hibernate的困惑

谢谢

巴扎黑巴扎黑2802일 전1621

모든 응답(19)나는 대답할 것이다

  • 天蓬老师

    天蓬老师2017-04-18 09:34:16

    다음을 시도해 보세요: http://www.oschina.net/p/monalisa-core: Eclipse 플러그인과 함께 사용하는 것이 더 편리합니다:

    • DTO 자동 생성 지원

      SQL 쿼리는 Mybatis처럼 DTO를 작성한 다음 여러 필드 매핑을 구성할 필요가 없습니다. 플러그인이 모든 작업을 자동으로 수행합니다.
      참조 문서: 동적 SQL 코드를 기반으로 DTO를 자동으로 생성하는 방법

    • 여러 줄 문자열 구문

      Java 코드로 여러 줄 문자열을 작성하는 것이 매우 쉬워졌습니다.

    • DataTable 작업

      DataTable은 편리한 필드 선택, 필터링, 집계, 그룹화, JOIN 등을 통해 데이터베이스 테이블을 쿼리하는 데 사용할 수 있습니다.

    회신하다
    0
  • 大家讲道理

    大家讲道理2017-04-18 09:34:16

    hibernate은 단일 테이블의 추가, 삭제, 수정에 적합하며 개발 효율성이 매우 높지만, 사업이 확장되거나 원래의 db 디자인이 좋지 않으면 테이블에 참여해야 합니다. 쿼리 (hibernate의 개념은 테이블을 분류하는 것이지만 실제로는 프로젝트 초기에 완전한 일반화를 달성하기가 쉽지 않기 때문입니다) 결과가 다르고 삭제 및 일치가 있으면 효율성이 떨어집니다 (sql을 작성하지 않는 한, 하지만 이런 식으로 처음에는 mybatis를 사용하는 것이 좋습니다), 특히 많은 양의 데이터를 접할 때 효율성이 기하급수적으로 떨어집니다.
    사용자가 100명 이하인가요? , 여기서의 크기 순서는 단일 테이블을 기준으로 계산되지 않습니다. 단일 테이블이 일정량의 데이터를 초과하는 경우 단순히 hibernate 또는 mybatis을 사용하여 해결할 수는 없습니다. mybatis을 사용하면 변경됩니다. 내 경험에 따르면 조인 테이블 쿼리가 많고 비즈니스가 복잡한 경우(대개 프로젝트가 끝날 때까지) mybatis를 사용하는 것이 hibernate보다 빠릅니다. (开发效率)

    회신하다
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-18 09:34:16

    hibernate의 학습 비용은 상대적으로 높지만, j2ee에는 JPA 사양이 있어서 사양을 학습해도 괜찮습니다. Mybatis는 비교적 간단하고 사용하기 쉽고 제어가 가능합니다. Hibernate는 학습 비용이 높고 지나치게 객체 지향적이며 조정이 어렵습니다. 사용법은 개인에 따라 다르겠지만, toB나 toC 어플리케이션은 mybatis를 선호하지만, 관리 백엔드의 경우 hibernate가 좋습니다

    회신하다
    0
  • 天蓬老师

    天蓬老师2017-04-18 09:34:16

    초대해주셔서 감사합니다! 다음 답변은 모두 매우 좋습니다. 첫째, MyBatis는 배우기 쉽습니다. 둘째, SQL을 직접 작성하여 유연하고 쉽게 제어할 수 있습니다. 성능에 관해서는 개발 효율성과 유지 관리성이 훨씬 더 중요합니다. .

    회신하다
    0
  • ringa_lee

    ringa_lee2017-04-18 09:34:16

    Hiberbate는 Java 개체를 사용하여 SQL을 작성하는 반면 mybatis는 기본 SQL을 직접 작성합니다. 전자는 한동안 개발하고 화장터를 유지 관리(수정)하는 것이 재미있지만, 후자는 (전자에 비해) SQL에 대한 어느 정도의 이해가 필요합니다. 회사에 DBA가 있으면 네이티브를 읽는 것이 훨씬 더 직관적입니다. Java 코드보다 SQL. 성능에 관해서는 대부분의 경우 고려할 필요가 없습니다(정말로 고려하고 싶다면 최근 몇 년간 몇몇 사람들이 논의한 "ORM 제거"를 검색해 보면 됩니다). 가장 중요한 것은 유지 관리성입니다.

    회신하다
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-18 09:34:16

    hibernate와 mybatis는 모두 JDBC를 캡슐화한 것일 뿐입니다. 프로그램 성능이 좋은지 여부는 주로 SQL이 잘 작성되었는지, DB 설계가 합리적인지에 따라 결정됩니다. 물론, hibernate의 많은 SQL은 프로그래밍 방식으로 구현됩니다. 두 프레임워크는 모두 매우 능숙하며 사용 시 성능에 큰 차이가 없어야 합니다. 그러면 문제가 발생합니다. Hibernate는 너무 캡슐화되어 있으며 실제로 Mybatis는 단순한 jdbc 캡슐화에 불과합니다. 또한, hibernate는 많은 시나리오에서 사용되며, SQL이 캡슐화되어 있기 때문에 특별히 능숙하지 않은 경우에는 Mybatis가 더 간단하고 많은 일을 하지 않는 경우가 있습니다. 프로그램의 결과는 일반적으로 문제 발생을 예측하기가 더 쉽습니다.
    두 프레임워크 모두 실제로 매우 잘 설계되었지만 개인적인 사용 습관이 더 중요합니다. mybatis에 익숙한 사람들은 일반적으로 최대 절전 모드로 전환하는 것이 어려울 것입니다. mybatis (개인적인 겸손한 의견)를 의도적으로 사용하십시오.

    회신하다
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-18 09:34:16

    실제 업무에서 마이바티스를 사용하는 것은 기본적으로 성능이나 사용성을 고려하지 않고 개인의 습관을 바탕으로 합니다.
    우리 같은 노련한 프로그래머들은 SQL 작성에 익숙하기 때문에 작성하지 않으면 불편함을 느낄 것입니다. 대조적으로, 너무 자동화된 최대 절전 모드는 우리를 당황하게 만들 수 있습니다.
    그게 다입니다.

    회신하다
    0
  • 黄舟

    黄舟2017-04-18 09:34:16

    학습 단계에서 사용해 본 개인적인 느낌으로는 최대 절전 모드가 너무 캡슐화되어 있다는 것입니다. 많은 경우 편의성을 가져오지 않는 것처럼 느껴지지만 이 프레임워크와 "조정"하려면 겉으로는 불필요해 보이는 작업을 수행해야 한다고 생각합니다.

    회신하다
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-18 09:34:16

    사업 규모가 상대적으로 작은 경우 어느 분야에 더 능숙한지에 따라 다릅니다. 괜찮을 거예요. 이것에 대해 걱정할 필요가 없습니다. Mybatis는 더욱 유연하여 개발자에게 자체 구현에 더 많은 공간을 제공합니다. 최대 절전 모드 연결로 인해 약간 느려집니다.

    회신하다
    0
  • 취소회신하다