MyBatis(三):自定义持久层框架实现】的更多相关文章

代码已上传至码云:https://gitee.com/rangers-sun/mybatis 新建Maven工程 架构端MyPersistent.使用端MyPersistentTest,使用端引入架构端Maven坐标 MyPersistentTest使用端配置 新增依赖 <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <v…
本文所有代码已上传至码云:https://gitee.com/rangers-sun/mybatis 修改IUserDao.UserMapper.xml package com.rangers; import com.rangers.entity.User; import java.util.List; /** * @Author Rangers * @Description 用户数据库访问Dao * @Date 2021-03-07 **/ public interface IUserDao…
使用端 引入架构端Maven依赖 SqlMapConfig.xml-数据库配置信息(数据库连接jar名称.连接URL.用户名.密码),引入Mapper.xml的路径 XxMapper.xml-SQL配置信息(SQL语句.参数类型.返回值类型) 架构端(本质对JDBC封装) 加载使用端配置信息(数据库配置信息.SQL配置信息)为输入流,读入内存 解析配置文件输入流(使用Dom4j解析) ​ 创建SqlSessionFactoryBuilder类,编写build()方法,用户创建SqlSession…
前言 前两篇文章分别讲解了JDBC和Mybatis的基本知识,以及自定义持久层框架的设计思路,从这篇文章开始,我们正式来实现一个持久层框架. 新建一个项目 首先我们新建一个maven项目,将其命名为IPersistence,创建以下目录结构: 完成目录创建工作后,我们首先在pom.xml文件中引入相关依赖: 1 <?xml version="1.0" encoding="UTF-8"?> 2 <project xmlns="http://…
目录 任务一:自定义持久层框架 1.1 JDBC回顾及问题分析 1.2 自定义持久层框架思路分析 1.3 IPersistence_Test编写 1.3.1 XXXMapper.xml详解 1.3.2 sqlMapConfig.xml详解 1.4 Resources类定义 1.5 容器对象定义 1.6 解析核心配置文件sqlMapConfig 1.7 解析映射配置文件mapper.xml 1.8 会话对象sqlSession类定义 1.9 会话对象sqlSession方法定义 1.10 查询对象…
以下笔记是我看完视频之后总结整理的,部分较为基础的知识点也做了补充,如有问题欢迎沟通. 目录 任务一:自定义持久层框架 1.1 JDBC回顾及问题分析 1.2 自定义持久层框架思路分析 1.3 IPersistence_Test编写 1.3.1 XXXMapper.xml详解 1.3.2 sqlMapConfig.xml详解 1.4 Resources类定义 1.5 容器对象定义 1.6 解析核心配置文件sqlMapConfig 1.7 解析映射配置文件mapper.xml 1.8 会话对象sq…
前言 没想到会等到半年以后才来写这篇文章,我已经不记得当初自己想要在这篇文章中写什么了,还好有一些零散的笔记留着,就对照着上一篇文章及零散的笔记,把内容给补充完吧. 完善CRUD方法 完善DefaultSqlSession类实现查询单个及查询多个的接口 1 package com.hardy.sqlSession; 2 3 import com.hardy.pojo.Configuration; 4 import com.hardy.pojo.MappedStatement; 5 import…
前言 上一篇文章讲到了JDBC的基本用法及其问题所在,并提出了使用Mybatis的好处,那么今天这篇文章就来说一下该如何设计一个类似Mybatis这样的持久层框架(暂时只讲思路,具体的代码编写工作从下一篇文章开始). 从使用端的角度来设计 从使用端的角度来看,我们需要做一些配置工作,原理等同于使用Mybatis框架时所进行的配置.这其中包括以下步骤: 引入自定义持久层框架的jar包. 提供存放数据库核心配置的信息. 提供sql配置信息(包括sql语句.参数类型和返回类型). 这里暂时不讲这些工作…
前言 接上文,这里只是出于强迫症,凭借着半年前的笔记来把之前没写完的文章写完,这里是最后一篇了. 前面自定义的持久层框架存在的问题 Dao层若使用实现类,会存在代码重复,整个操作的过程模版重复(加载配置文件.创建sqlSessionFactory.生产sqlSession) 解决思路 使用代理模式生成Dao层接口的代理实现类(去掉原Dao层的代理实现类) 代码实现 在IPersistence_test项目中添加Dao层及接口类: 1 package com.hardy.dao; 2 3 impo…
前言 说起Mybatis,相信大家都不会感到陌生,它是一款优秀的持久层框架,应用于java后端开发中,为客户端程序提供访问数据库的接口. 我们都知道,JDBC是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法.这也就是Mybatis所具备的功能,那既然已经有了JDBC了,为什么还要用Mybatis呢? 原因很简单,因为单纯使用JDBC进行开发会出现效率低下.耗费资源及影响程序拓展性等问题. JDBC基本用法及问题分析 首先来看一下使用JDBC…