Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

cus-mybatis

手写mybatis

原生jdbc的问题分析

原生jdbc的问题分析

自定义持久层框架设计思路

自定义持久层框架设计思路

JDK动态代理

使用端

  1. 引入自定义持久层框架依赖
  2. 提供配置信息

数据库配置信息

jdbc相关信息,jdbcUrl/driverClassName/username/password

sqlMapConfig.xml:存放数据库配置信息,存放mapper.xml的全路径

sql配置信息

mapper.xml: 存放sql配置信息,sql语句、参数类型、返回值类型

持久层框架

本质是对jdbc代码的封装

1. 加载配置文件

根据配置文件的路径,加载配置文件为字节输入流,储存在内存中 创建Resources类 方法:InputStream getResourceAsStream(String path)

2. 创建两个java bean:(容器对象)

存放的就是对配置文件解析出来的内容

Configuration: 核心配置类:存放sqlMapConfig.xml解析出来的内容

MappedStatement: 映射配置类:存放mapper.xml解析出来的内容

3. 解析配置文件 dom4j

创建类:SqlSessionFacroryBuilder 方法:builder(InpoutStream in) 使用dom4j解析配置文件,将解析出来的内容封装到容器对象 创建SqlSessionFacrory对象,生产SqlSession会话对象 (工厂模式)

4. 创建SqlSession接口及实现类DefaultSqlSession

定义对数据库的curd操作:selectList()/selectOne()/update()/delete()

5. 创建Executor接口及实现类SimpleExecutor实现类

query(Configuration, MappedStatement, Object... params)执行的就是JDBC代码

使用示例

详情请看persistence-test/src/test/java/test/IPersistenceTest.java

mybatis常见面试题

mybatis常见面试题

About

手写mybatis

Topics

Resources

Stars

8 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages