1 、在ResultSetHandler 中, 类型处理都是写死的, 能不能创建一个TypeHandler,把这些关系维护起来,处理所有类型的转换关系和自定义类型;

2、只实现了@Select 的注解,插入、删除、修改的注解呢?参数能不能用@Param传入类型?

3、插件只能拦截Executor,能不能实现对其他核心对象的方法的拦截?插件可以支持配置参数么?

4、缓存只有一级,不能在单个方法上关闭(properties 不够用了),能不能实现多级的缓存?

5、异常处理有点粗暴,都是直接catch,没有细化;

手写自己的MyBatis框架-V2.0 可优化之处相关推荐

  1. 手写自己的MyBatis框架-V2.0配置文件

    创建了全局配置文件mybatis.properties,存放SQL 连接信息.缓存开关.插件地址.Mapper 接口地址. 全局配置文件在Configuration 配置类的构造器中解析.

  2. 手写自己的MyBatis框架-V2.0结果集处理

    创建ResultSetHandler,在其中创建pojo 对象,获取ResultSet 值,通过反射给pojo 对象赋值. 实体类的转换关系通过@Entity 注解( 保存在MapperRegistr ...

  3. 手写自己的MyBatis框架-V2.0参数处理

    创建ParameterHandler,调用psmt 的set 方法.propertie 文件中SQL 语句的%d占位符改成?.

  4. 手写自己的MyBatis框架-1.0 的不足

    V1.0 的不足 1.在Executor 中,对参数.语句和结果集的处理是耦合的,没有实现职责分离: 2.参数:没有实现对语句的预编译,只有简单的格式化(format),效率不高,还存在SQL 注入的 ...

  5. 手写自己的MyBatis框架-SqlSession

    我们已经分析了MeBatis 的主要对象和操作流程,应该从哪里入手? 当我们在psvm 操作的时候,第一个需要的对象是SqlSession.所以我们从应用层的接口SqlSession 入手. 那么我们 ...

  6. 手写自己的MyBatis框架-Executor

    到了sqlSession 的selectOne()方法,这里我们要去调用Executor 的query()方法,这个时候我们必须传入SQL 语句和参数(根据statementId 获取). 问题来了: ...

  7. 手写自己的MyBatis框架-操作流程

    1.定义接口Mapper 和方法,用来调用数据库操作. Mapper 接口操作数据库需要通过代理类. 2.定义配置类对象Configuration. 3.定义应用层的API SqlSession.它有 ...

  8. 手写自己的MyBatis框架-这个框架需要解决什么问题?

    老王给我看了一段JDBC 的代码: rs.close(); stmt.close(); conn.close(); 1)它需要实现对连接资源的自动管理,也就是把创建Connection.Stateme ...

  9. 手写自己的MyBatis框架-MapperProxy

    我们要在Configuration 中通过getMapper()方法拿到这个代理对象,必须要有一个实现了InvocationHandler 的代理类.我们来创建它:MapperProxy. 提供一个i ...

最新文章

  1. vue实例没有挂载到html上,vue 源码学习 - 实例挂载
  2. 50 xen虚拟化技术基础、xen虚拟化技术进阶
  3. mysql的一主多从和双主浅析
  4. 基于FPGA的直流电机PWM控制+毕业论文
  5. [蓝桥杯2019初赛]数列求值-模拟+数论
  6. activiti 生命周期_一文让你读懂什么是Activiti工作流
  7. oracle 数据的定义,oracle——数据定义
  8. java 垃圾回收题目_我肝了万字的Java垃圾回收,看完你还敢说不会?
  9. 解决办法:用户名不在 sudoers文件中 此事将被报告
  10. 解决andr_Android和iPhone浏览器大战,第2部分,为iPhone和Android构建基于浏览器的应用程序
  11. mysql 定时任务 日志_mysql定时备份任务
  12. C++三种继承方式--------私有继承(private)
  13. 计算机windows10怎么找word,Win10 word路径在哪?Win10如何修改word路径
  14. 卷积神经网络分类实战
  15. Linux系统实现访问localhost(127.0.0.1)浏览WWW网站目录
  16. fuzzy c-means 与 k-means实验对比
  17. python cerberus Validator参数校验
  18. @程序员,不加班就滚吧 | 程序员有话说
  19. MySQL安装问题—— Can‘t create directory ‘C:\web\mysql-8.0.11\data\‘ (OS errno 2 - No such file or directo
  20. jQuery 参考手册

热门文章

  1. 写了一阵子多线程之后需要注意的几点
  2. kde下sudo出现cannot connect to xserver解决方法
  3. 30336控制转移指令
  4. MySQL中SELECT语句简单使用
  5. javaScript变量、作用域链
  6. codeforces VK Cup 2018 - Wild-card Round 1 (unofficial unrated mirror)
  7. SQL Server 2016 行级别权限控制
  8. mysql死锁问题分析
  9. 一步步开始集中管理[为企业部署Windows Server 2008系列五] 推荐
  10. chrome 看每行代码的运行时间