欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

手把手教你写一个java的orm(一)

程序员文章站 2022-05-17 15:37:48
写之前的说明 0. 其实吧,这个东西已经写好了,地址在:https://github.com/hjx601496320/JdbcPlus 这 系列 文章算是我写的过程的总结吧。(恩系列,说明我可能会写好久,╮(╯▽╰)╭) 1. 现在有很多的现成的orm框架,为什么还要自己写一个? 框架这种东西个人 ......

写之前的说明

  1. 其实吧,这个东西已经写好了,地址在:https://github.com/hjx601496320/jdbcplus系列文章算是我写的过程的总结吧。(恩系列,说明我可能会写好久,╮(╯▽╰)╭)

  2. 现在有很多的现成的orm框架,为什么还要自己写一个?

框架这种东西个人认为想要了解其中的原理,还是要自己尝试实现一个来的比较快。我是那种不爱看源码的程序员,除非是有些地方实在没有思路或者网上也找不到相关的文章,否则是不会去看源码的。懒~~~

  1. 写这个的目的是什么?

现在流行的orm比如hibernate,mybatis等等,需要配置太多了,实在记不住。所以就自己写一个自己用起来方便一点的,不需要什么配置的,然后自己用就好咯~~~。自己写一个框架感觉最主要的还是解决自己的问题,先让自己用起来方便嘛~

  1. 我要实现什么功能?

单表的增删该查肯定是需要的。现阶段不需要支持连表查询,因为我平常也不写这种sql。主要的功能还是可以方便的单表增删改查。其他复杂的功能直接使用现有的流行框架就好了,这个东西写的时候也没有指望太多很复杂的功能。

  1. 为什么要写成orm类型的呢?

用起来方便啊~ 不用写sql啊,我最烦写sql了。

  1. 能不能在生产上用呢?

看你自己咯,我是以demo形式来写的,不好说里面有没有什么大坑,恩~

想要做成什么样的?

  1. 不需要太多的配置,可能的情况下只需要配置连接池就好了。
  2. 将class映射到数据库表,增删改查不需要写sql。
  3. 可以使用class属性名称作为查询条件。
  4. 不需要连表查询。
  5. class映射基于注解的形式,不要写其他的配置。
  6. 只支持mysql就好了。

需要准备的

  1. 需要反射相关的知识。
  2. java中的自定义注解。
  3. sql的基础知识。
  4. spring jdbc相关知识,就是jdbctemplate。因为我不太想在写一边jdbc的东西。还是懒~

大致的思路

在class中先使用注解的形式,将class和表做一个映射关系(属性名称和字段名称的映射)。

在对数据库操作的时候通过反射获取class中的相关信息,然后根据操作类型,生成sql,最后执行sql就好了。

下一篇继续~~