这篇文章主要介绍“如何手写mybatis框架”,在日常操作中,相信很多人在如何手写mybatis框架问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何手写mybatis框架”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!很久没有更新mybatis的源码解析了,因为最近在将自己所理解的mybatis思想转为实践。 在学习mybatis的源码过程中,根据mybatis的思想自己构建了一个ORM框架 。整个代码都是自己手动构造,没有一句代码是Copy,肯定不如谷歌大神那样的代码,但已基本实现了SQL语句的实现和对象关系映射功能。若对源码感兴趣,可加入我一起写这个项目。后文会附带地址,若觉得不错,希望手动star下哦! 项目地址:simple-ibatissimple-batis是自己编写的一个简单ORM框架。在学习mybatis源码时,有感而发。耗时3周左右,基本满足了一些常用的Sql操作本项目所涉及的代码都是个人所写,没有一句copy,肯定不是很完善,大家理解下,后续有时间会一直更新。如果你对源码感兴趣,也可以加入一起,将自己的理解转为代码真的会加深印象。 代码运行默认在java8上,因为用到了参数反射,所以在idea中记得开启parameters;开启步骤如下 1.File->Settings->Build,Execution,Deployment->Compiler->Java Compiler 2.在 Additional command line parameters: 后面填上 -parameters @Dao 标注在mapper类上。标志着该类是一个mapper类,在解析时会进行解析。@Select 标注在mapper类中的方法上。标志着该方法是一个Select方法,并在Select方法内部写具体的sql语句。对于有参数注入的情况,参数使用{}进行代替。@Param 标注在mapper类中的方法参数上。对参数名进行一次重命名。若不使用此注释,会默认按照参数名当做注入的元素。@Update 标注在mapper类中的方法上。标志着该方法是一个Update方法。@Insert 标注在mapper类中的方法上。标注着该方法是一个Insert方法@Delete 标注在mapper类中的方法上。标注着该方法是一个Delete方法DriverRegister 提供数据库注册功能。未避免重复注册,内部使用了一个缓存。NormalDataSource 普通数据源,没有池化的功能,提供获取数据库连接的功能。 PoolDataSource 池化数据源,存放着活跃连接列表和空闲连接列表。并对获取连接和释放连接做了一系列操作。 PoolConnection 连接的包装类,除了存放真实连接外,还存放此连接被获取时间,用于判断连接是否超时。Config 全局核心类,存放数据源,mapper包地址,mapper类解析文件 MapperCore mapper类解析文件 SqlSource 具体的sql语句封装MapperProxy mapper接口代理类。使用动态代理技术Executor 执行器接口 SimpleExecutor 具体执行器,执行具体的sql方法。生成结果 ExecutorFactory 生成Executor的工厂类ClassWrapper 类加强器,封装了Object的get和set方法。 ObjectWrapper 对象包装类。调用ObjectWrapper.setVal和getVal就可以 香港云主机设置和获得属性。不需要显示的调用对象的getxxx和setxxx方法。 ObjectWrapperFactory 对象包装类生成器PreparedStatementHandle PreparedStatement生成器。将java属性转为jdbc属性并注入。 ResultSetHandle 对查询结构ResultSet进行解析,转换为Java类型PackageUti 解析包的工具类 TypeUtil 类型判断的工具类目前该框架仅支持注解注入SQL语句,不支持XML注入SQL语句目前对象属性不支持集合类,对象中也不支持嵌套非基本数据类型框架中没有加入缓存解析mapper文件仅支持一个包下的mapper文件到此,关于“如何手写mybatis框架”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注开发云网站,小编会继续努力为大家带来更多实用的文章!
这篇文章主要为大 香港云主机家展示了“如何解决win10系统中回收站图标不见的问题”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何解决win10系统中回收站图标不见的问题”这篇文章吧。具体方法1.在桌面左下角点击…
免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。