使用getMapper方式对自定义持久层框架进行优化

问题分析

1、Dao层使用持久层框架,存在代码重复,整个操作过程模板重复(加载配置文件、创建SqlSessionFactory、生产SqlSession)

2、存在硬编码(statementId)

解决思路

getMapper+动态代理方式优化

使用代理模式生成Dao层接口的实现类


Terwer...大约 2 分钟MyBatis后端开发开源框架customdaopersistenceframeworkmybatismybatis-5mapper
自定义持久层框架的代码实现二

代码实现续

核心执行引擎Executor的实现

运行效果

问题修复

1、selectList打印的全部是同一个值

/Library/Java/JavaVirtualMachines/jdk1.8.0_291.jdk/Contents/Home/bin/java -... com.intellij.rt.junit.JUnitStarter -ideVersion5 -junit4 com.terwergreen.test.IPersistenceTest,test2
Connected to the target VM, address: '127.0.0.1:50317', transport: 'socket'
log4j:WARN No appenders could be found for logger (com.mchange.v2.log.MLog).
log4j:WARN Please initialize the log4j system properly.
User{id=5, username='dali'}
User{id=5, username='dali'}
User{id=5, username='dali'}
User{id=5, username='dali'}
Disconnected from the target VM, address: '127.0.0.1:50317', transport: 'socket'

Process finished with exit code 0


Terwer...大约 3 分钟MyBatis后端开发开源框架customdaoframeworkpersistencemybatismybatis-4