使用Java的小伙伴们,被JDBC的SQL语句组装折磨了很久,出现了ORM,例如Hibernate和MyBatis为代表的两大流派。
Hibernate这个流派还是不错的,但是设计这个的小伙子可能没有做过复杂的金融项目,所以觉得全对象映射用起来很方便。但是我们更多的是成百上千行的复杂业务场景,所以更多行业里选择MyBatis。因为我们能够控制SQL的编写,但是也有她不好的地方,那就是单表操作需要自己写,要不就是 MyBatis code generator生成大量的不能改的自动代码。
你也许会说难道就没有一种既有Hibernate那样好用的方式,又能使用MyBatis的手工SQL编写,那么告诉你,Wing4j ORM组件就是为此而生的。
关于JPA
全称Java Persistence API,通过JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。起源Sun引入新的JPA ORM规范出于两个原因:其一,简化现有Java EE和Java SE应用开发工作;其二,Sun希望整合ORM技术,实现天下归一。
所以现在存在大量的JPA编写的数据库访问对象,那么Wing4j ORM就要支持JPA,将JPA带到MyBatis的世界来。
wing4j家族
wing4j common
wing4j orm
wing4j test
wing4j toolkit
提供开发过程中的公共程序,日志跟踪模块,序号服务生成服务。
目前基于MyBatis深度开发,完成单表的操作的自动生成,完全告别mybatis code generator方式,不再维护冗余的自动生成代码;
基于注解方式申明表结构,支持JPA注解和Wing4j注解两种方式,JPA方式用于移植老旧的Hibernate程序;
实现完整的物理分页功能,拥有简单易用;
支持单元测试时开发数据源,可以进行单机免数据库方式和MySQL数据源方式,详细见wing4j test。
为TDD而生的测试开发支持,提供完整的数据库支持
自动创建表结构,无论多少次运行单元测试,结果始终如一;
开发数据可以进行本地数据库方式和MySQL数据源的选择;
能够根据环境选择数据源,如果进行的是Maven编译,则不能使用MySQL数据源,必须使用本地数据源。
wing4j family的cli方式支持,提供强大的交互界面,完成项目整个过程的支持。