很久很久以前(英文long long ago),写过一个基于反射的ORM框架,功能总是不够令人满意,但是又不想再借助XML补充Object-Relation之间的对应关系,因为那样的话数据库操作模块又复杂了,还不如直接使用成熟的ORM框架。
后来使用了一些框架,人家都用注解,这真是个节省手敲代码量的利器,而且习惯了之后会发觉在简单中蕴藏的优雅,所以就想实现一个基于注解和反射的ORM框架。就叫Panda ORM吧,因为熊猫总是懒洋洋的,跟这个ORM框架设计理念相当吻合。
本着没有最懒,只有更懒的原则,本框架唯一的目的就是节省代码,但是也预留了一丢丢拓展的空间。
说一下设计原则:
1,数据库表名、实体类名相同(当然也可以通过新增自定义新注解实现不必同名的关联)
2,数据库表列名与对应实体类属性名相同(外键除外)
3,实体类所有属性采用String类型
4,采用@key注解修饰主键对应的属性,并区分其是否为自动增长
5,采用@foreignKey注解修饰外键对应的属性,并通过注解的参数指示外键指向表的主键
6,含有外键的查询语句,仅查询两层(如果外键对应表又有外键,则不拓展到外键的外键所在表)
当然也可以通过继承等方式拓展数据库操作类的功能。该框架将支撑EasyUI开发银行业绩统计系统
的数据库层,另外将添加一些通过Java自动生成Java实体类的功能。最终实现在mysql内新建表后,基本不用写数据库实体类也基本不用写数据库操作层,直接就能用起来的效果。
OVER。