大家是怎么写数据访问层的? mybatis-generator 的正确用法? jpa 的局限性?

2015-11-21 15:07:44 +08:00
 hsddszjs

弄 java 时间不长 希望大家指点一下
目前公司(管理系统类)里也主要是做 web 的增删改查,我一直在思考如何简化,不应该这么繁琐才对。
我所查到的无非就是:
用 mybatis-generator 生成映射
用 hibernate
用 jpa
后面两种我没有很深的了解过,只是简单的使用过,觉得理念很好,但要用好很困难
在用 mybatis-generator 时遇到了问题,就是要支持多种类型的数据库的时候(因为公司的客户用的数据库不定,所以都要提供支持)很麻烦。
因为我觉的 mybatis-generator 的 db first 的设计理念对象我们这样的公司就有问题,目前的流程是

用 ermaster 生成 er 模型 --> 生成各个版本的数据库 ddl ---> 用 mybatis-generator 生成各数据库版本的 mapper.xml ( pojo 和 mapper 、 example 用同一个)
这样就总是会有 字段类型不一致的问题,还有各种兼容性问题

我的想法是 先建模(er 图或 entity ),用 hibernate 的能力去生成各个版本的数据库 DDL ,用 freemaker 模板去生成 mybatis mapper

最近也正在研究代码生成器,很想要这样一个 intellij 插件或 maven 插件,写好各个 entity ,可以预览 er 图(也可以修改 er 图同步到 entity pojo),
输入: entity 所在的包
输出:各数据库 DDL 、 mybatis mapper example 、 spring sessionfactory 配置 code snippets 、 hibernate 配置 snippets ,甚至有 restcontroller 和 增删改查页面(有点像.net framework 的生成了)

各位有没有好的代码生成工具?各位是怎么写数据访问层的? 欢迎讨论 快来教教我提升效率节省生命吧

3189 次点击
所在节点    Java
6 条回复
raysmond
2015-11-21 15:29:20 +08:00
spring jpa
hsddszjs
2015-11-21 15:34:17 +08:00
@raysmond 简单用过 spring-data-jpa 确实有 hibernate 的优点又有可自定义 sql 的灵活性 但是目前公司里用的还是 mybatis ;想问下 现在 spring jpa 的成熟度足够吗
raysmond
2015-11-21 16:03:13 +08:00
@hsddszjs Spring Data JPA 非常成熟啊,不用管是数据库是传统 SQL 如 MySQL , PostgreSQL 还是 NoSQL 如 MongoDB , Cassandra 等,接口都一样,非常方便
jc4myself
2015-11-21 19:41:19 +08:00
mybatis generator 也可以加插件自扩展的
jadetang
2015-11-22 08:14:11 +08:00
楼主可以看看我写的一个代码生成器, https://github.com/jadetang/maliang
1 、数据库字段类型到 java 类型的字段映射可以通过配置文件自动修改的
2 、可以支持从数据库读取表结构(目前支持 mysql 后继考虑支持 oracle ),或者直接输入表结构去生成字段。
3 、支持自定义的模板。
nonesuccess
2015-11-22 19:31:53 +08:00
我自己写过一个代码生成器,是以 java pojo 为核心的,读取 java 类信息生成 sql 和 mapper ,参考了 mybatis generator 的 mapper 设计思路, lz 有兴趣的话可以一起交流

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/237854

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX