如题,目前用了一个 tk.mybatis 的节省单表开发的 orm 框架,能解决单表问题,不过有些不足,tk.mybatis 不支持 postgresql 数据库的批量插入(或者我没找到),复杂需求的数据查询,基本是用 mybatis 裸写 sql。
关于动态 sql 生成框架,针对简单的关联的级联操作这种,也就是两个实体关系表用中间表关联的,没想到长时间开发的我,自己迫于节省开发时间的需要也为此发展了一个残缺版基于注解的框架,实现了对基于中介关联表的一对多或多对多的关系绑定,关系解除,关系验证,级联删除,基于 Class和整型 id 值两类参数的方法传入 id 和 Class,并生成 sql,使用 jdbctemplate 执行,这个框架还只是针对简单的关联表的级联操作,只有两个外键字段的那种关联中介表,限定在这个范围
对于 orm 或动态 sql 生成框架,希望做到如下特点,
不再仅仅是简单粗暴的单表操作了,有些插入的数据库里是需要经过函数处理,有些字段的查询,也可能会用到函数处理,而简单粗暴的单表操作不可能涵盖数据库里的方法面面,因此希望包括“想定制某些 sql 翻译过程,然后封装起来”这种功能的框架。例如 postgresql 的数组字段和 java 集合字段对应问题,还有日期字段的操作。 一个对象某些类型的字段插入或修改,可能需要用 select 语句查询得到等这些操作。
( 1 )针对如上的描述,我希望框架自带允许开发者自己对特定操作 sql 语句翻译进行定制,能封装成一个功能,扩展到框架的操作功能。
( 2 )还支持 HashMap 参数的单表增删改查操作,另一个参数作为表名或类名来对应是哪个表。
( 3 )基于依据多个实体的多个外键字段的关联表的简单级联操作功能,例如实体的关系绑定,关系解绑,级联删除,关系验证(例如判断一个类型的对象与另一个类型的对象在数据库里是否存在绑定、判断一个学生对象是否拥有某一个作者名的《 java 》书籍的作品对象)。支持一对多,多对多的中介表关联,关系验证的操作可能会超过三个表。
( 4 )复杂的定制操作支持裸写 sql,支持模样引擎,支持 List<map>参数返回</map>
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.