开发者社区> 问答> 正文

现在写java后台用什么orm? 热:报错

以前主流就hibernate,或者jdbctemplate,spring-data-jpa,mybaties等。现在有一些后台一整套的快速框架想jfinal,nutz等。问一下大家现在习惯或者流行用什么写dao层?

想自己搞一些东西,想确定一下框架,暂时定了bootstrap模板+angularJs,后台springmvc+?。

就等最后一个?求推荐。

展开
收起
kun坤 2020-06-14 08:15:12 1221 0
2 条回答
写回答
取消 提交回答
  • mybatis

    2020-06-23 17:23:54
    赞同 展开评论 打赏
  • 如果小项目,业务逻辑和查询不是很复杂的话,直接上Spring data JPA吧,基本CRUD都提供了,稍微复杂的可以自己写JPQL。如果数据量比较大,查询逻辑也很复杂,用JdbcTemplate,方便后期维护。MyBatis还是不要用了,那玩意很烦,不如直接用JdbcTemplate。JFinal我没用过,不发表意见。######回复 @一书生 : 没有没有缺点的银弹。绝大多数OLTP系统,JPA都是合格的。如果写不好,绝大多数都是开发人员设计水平和编码水平的问题,这种情况下,换了纯JDBC有时候更糟。######回复 @魔力猫 : 其实我的意思是JPA有一定的局限性,比如我之前碰到一个问题:就是使用UNION关键字将两个结果集组装到一起的时候,Hibernate提供的JPA实现就不行了,EclipseLink的JPA实现却是可以。所以它有好的一方面就是省事,但也有一定的局限性。######OLTP查询如果非常复杂,那么表设计BUG是肯定的。######用 jdbctemplate 挺好的,就是java没有heredoc 写大段sql不方便 如果模板有一种支持动态参数的语法,其实用模板来处理sql最方便
    ######@yak 可没你赚的多呀,哈哈哈######回复 @xfblue : 虚幻中的高层光明人士,请问你的脑容量多大?,这么光明的高层人士,还花工夫专门跟小杂毛较劲,你的时薪一小时多少钱?######@yak 现实中的底层阴暗人士,请问你的心理阴影多大面积的?哈哈哈,还拿分享代码跟我说事,小杂毛一枚,哈哈哈######回复 @xfblue : 心理光明的大杂种,你看,这我也会哦,没有任何技术含量,说不上谁比谁强,只能说明你逻辑比较差,这不是你个杂种的错,是根本不开逻辑课的原因,但是写代码没有逻辑就说不过去,怪不得你分享的代码为0######@yak 比你强,心理阴暗的小杂种######我自己写了个jdbctemplate拼接sql######

    引用来自“Eric_林”的评论

    mybatis 轻量
    强烈不建议 mybatis,非常非常繁琐######回复 @繁华似水 : 正是有了属于Google的名号,各种G粉蜂拥而至.######回复 @eechen : mybatis 到真不是google的开头的,开始是ibatis,后来被谷歌收购了还是怎么得,变成google团队了。这个锅不能乱扣。######回复 @首席撸出血 : sborm,minidao 这些都是典型的基于jdbcTemplate的薄封装######给个git地址,我去学习一下,一直想用JdbcTemplate做ORM######回复 @luokery : 基于jdbcTemplate 做一个简单ORM######mybaties
    ######要看你系统是什么样的。建议无特别需求,OLTP系统还是用官方的标准,JPA。
    ######mybatis不错######mybatis 轻量######

    引用来自“魔力猫”的评论

    要看你系统是什么样的。建议无特别需求,OLTP系统还是用官方的标准,JPA。
    JPA+1######

    现在ORM 用的是 JPA 标准API 底层实现你可以配置任意实现JPA 标准API的框架如

    Hibernate,eclipse-link,open-jpa

    http://www.oracle.com/technetwork/java/javaee/tech/persistence-jsp-140049.html

    整合他们肯定是spring-data-jpa 最方便 你只需要写接口 传@query 即可 大部分CRUD 方法他基本接口CrudRepository都自带了 spring-data-jpa 提供若干基本接口 你可以按需继承即可

    http://projects.spring.io/spring-data-jpa/

    就跟当初hibernate 指定DB 方言一样 你使用JPA 标准api开发 后台orm实现配置你需要用的orm实现即可

    比如这就是指定JPA 实现用的是eclipselink

     <bean id="jpaDialect" class="org.springframework.orm.jpa.vendor.EclipseLinkJpaDialect" /> 

    从java7 开始 orm mq cache 等框架领域陆续JAVA 都在推出一系列标准API 来统一各个框架层

    ###### @抢小孩糖吃 你用spring 的话可以看看 AbstractRoutingDataSource 这是SPRING 提供的路由数据源 你只需要实现具体切换数据源 设置数据源 代码即可 特别简单好用,还可以结合AOP使用######以key做搜索数据源注册名称、以value做数据源对象存放。定期扫描是否有新数据源需要注册,jdbctemplate可以直接set,拿来使用。主要我需求不同库的相同名称表是不一样的数据结构######回复 @抢小孩糖吃 : 不知道你是怎么个跨库法。######非常感谢,回去研究下。我自己写了个多数据源动态扫描,加上jdbctemplate,还是蛮好用的。当然JPA作为标准,还是需要实践的######回复 @抢小孩糖吃 : 你指的跨库是一个SQL 语句的跨库 还是若干个SQL 语句的跨库?一个SQL 语句跨库 用比如ORACLE DBLINK table@DBID 那就只能写原生SQL 语句了 JPA 支持原生SQL . 多个SQL 语句对应不同的库 用SPRING AbstractRoutingDataSource 路由 一句代码 setDbSource(dbid)即可实现DB 切换
    2020-06-15 11:08:21
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载