手把手教你写一个java的orm(一)
程序员文章站
2022-05-17 15:37:48
写之前的说明 0. 其实吧,这个东西已经写好了,地址在:https://github.com/hjx601496320/JdbcPlus 这 系列 文章算是我写的过程的总结吧。(恩系列,说明我可能会写好久,╮(╯▽╰)╭) 1. 现在有很多的现成的orm框架,为什么还要自己写一个? 框架这种东西个人 ......
写之前的说明
其实吧,这个东西已经写好了,地址在:https://github.com/hjx601496320/jdbcplus 这系列文章算是我写的过程的总结吧。(恩系列,说明我可能会写好久,╮(╯▽╰)╭)
现在有很多的现成的orm框架,为什么还要自己写一个?
框架这种东西个人认为想要了解其中的原理,还是要自己尝试实现一个来的比较快。我是那种不爱看源码的程序员,除非是有些地方实在没有思路或者网上也找不到相关的文章,否则是不会去看源码的。懒~~~
- 写这个的目的是什么?
现在流行的orm比如hibernate,mybatis等等,需要配置太多了,实在记不住。所以就自己写一个自己用起来方便一点的,不需要什么配置的,然后自己用就好咯~~~。自己写一个框架感觉最主要的还是解决自己的问题,先让自己用起来方便嘛~
- 我要实现什么功能?
单表的增删该查肯定是需要的。现阶段不需要支持连表查询,因为我平常也不写这种sql。主要的功能还是可以方便的单表增删改查。其他复杂的功能直接使用现有的流行框架就好了,这个东西写的时候也没有指望太多很复杂的功能。
- 为什么要写成orm类型的呢?
用起来方便啊~ 不用写sql啊,我最烦写sql了。
- 能不能在生产上用呢?
看你自己咯,我是以demo形式来写的,不好说里面有没有什么大坑,恩~
想要做成什么样的?
- 不需要太多的配置,可能的情况下只需要配置连接池就好了。
- 将class映射到数据库表,增删改查不需要写sql。
- 可以使用class属性名称作为查询条件。
- 不需要连表查询。
- class映射基于注解的形式,不要写其他的配置。
- 只支持mysql就好了。
需要准备的
- 需要反射相关的知识。
- java中的自定义注解。
- sql的基础知识。
- spring jdbc相关知识,就是jdbctemplate。因为我不太想在写一边jdbc的东西。还是懒~
大致的思路
在class中先使用注解的形式,将class和表做一个映射关系(属性名称和字段名称的映射)。
在对数据库操作的时候通过反射获取class中的相关信息,然后根据操作类型,生成sql,最后执行sql就好了。