当前位置: 首页 > news >正文

mybatis源码研究、搭建mybatis源码运行的环境

文章底部有个人公众号:热爱技术的小郑。主要分享开发知识、有兴趣的可以关注一手。

前提

研究源码、对我们的技术提高还是很有帮助的。简单的源码建议从mybatis入手。涉及到的设计模式不是很多。需要下载mybatis的源码父工程依赖。注意下载的mybatis中的父工程依赖版本要对应。这里下载较稳定的版本。mybatis-3.5.3。对应的父版本是31。

mybatis-3.5.3下载地址:github地址
mybatis-parent下载地址:github下载地址

如果访问github比较慢、评论区置顶我给出了下载好的项目源码地址链接。

搭建环境

1、首先创建一个Maven项目

具体创建过程略

在这里插入图片描述

2、导入源码

打开项目结构、或者按快捷键:Ctrl + Alt + Shift + S

选择Modules --》 点击 + 号 --》选择 import Module --》 选择下载的源码

在这里插入图片描述

将下载的源码导入

在这里插入图片描述

选择后,弹出一个对话框、选择 Maven 后点击 finish

在这里插入图片描述

将下载的两个源码都导入

在这里插入图片描述

将两个源码导入后的项目结构

在这里插入图片描述

3、在创建的Maven项目中,添加代码

自己创建一个数据库、编写几个查询语句、没啥好说的。这里简略
在这里插入图片描述

4、Debug运行研究源码

然后就可以通过Debug方式查看代码执行情况了

测试类

package com.zyz;import com.zyz.mapper.userMapper;
import com.zyz.entity.User;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Test;import java.io.IOException;
import java.io.InputStream;
import java.io.Reader;
import java.util.List;/*** @author zyz* @version 1.0* @data 2023/7/28 12:48* @Description:*/
public class AppTest {@Testpublic void test() throws IOException {InputStream input = Resources.getResourceAsStream("SqlSessionConfig.xml");SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(input);SqlSession sqlSession = sessionFactory.openSession();userMapper dao = sqlSession.getMapper(userMapper.class);System.out.println(dao);List<User> userList = dao.selectAllUser();for (User level : userList) {System.out.println(level);}}@Testpublic void testMyBatisBuild() throws IOException {Reader reader = Resources.getResourceAsReader("SqlSessionConfig.xml");SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(reader);SqlSession sqlSession = factory.openSession();userMapper mapper = sqlSession.getMapper(userMapper.class);User one = mapper.getOne(1);System.out.println(one);sqlSession.close();}}

5、项目启动效果

在这里插入图片描述
在这里插入图片描述

可能遇到的问题

出现的问题、一般都是由于依赖导致。下载对应的依赖就可以了。

在这里插入图片描述

在自己创建的maven工程下的pom中添加如下依赖

        <dependency><groupId>org.javassist</groupId><artifactId>javassist</artifactId><version>3.24.1-GA</version></dependency>

是不是xml文件没有编译、如果是,就在自己的pom文件中添加下方代码。

在这里插入图片描述
在这里插入图片描述
添加

    <build><!-- 加载配置文件 --><resources><resource><directory>src/main/java</directory><includes><include>**/*.xml</include></includes></resource></resources></build>

后语

如果你嫌弃麻烦、不想自己搭建这个环境。我这里将搭建好的环境已经打包好,地址链接在评论区置顶。你直接拿来运行、研究代码就可以了。个人建议还是搭建一下环境比较好。也能学到蛮多。

项目链接我放到评论区置顶了

http://www.lryc.cn/news/98244.html

相关文章:

  • 【算法基础:搜索与图论】3.5 求最小生成树算法(PrimKruskal)
  • 扩展Ceph集群实现高可用
  • 代码随想录 DAY45
  • Centos报错:[Errno 12] Cannot allocate memory
  • 手把手教你怎么写顺序表
  • FPGA中RAM的结构理解
  • 家庭用的无线洗地机到底好不好用?2023洗地机品牌排行榜前十名
  • [React]常见Hook实现之useUpdateEffect
  • 为什么视频画质会变差,如何提升视频画质清晰度。
  • 【uni-app2.0】实现登录页记住密码功能
  • IDEA live templates
  • 电子鼻毕业论文
  • 8 | 爬虫解析利器 PyQuery 的使用
  • 2023年 React 最佳学习路线
  • 使用 ChatGPT 进行研究的先进技术
  • Java-API简析_java.net.Proxy类(基于 Latest JDK)(浅析源码)
  • 磁盘问题和解决: fsck,gdisk,fdisk等
  • 基于深度学习的高精度六类海船检测识别系统(PyTorch+Pyside6+YOLOv5模型)
  • 【React Native】学习记录(一)——环境搭建
  • Java 设计模式 - 简单工厂模式 - 创建对象的简便之道
  • C# 事件
  • 网络:TCP/IP协议
  • 在线阅读版:《2023中国软件供应链安全分析报告》全文
  • NLP_文本去重_附Python实现【MinHash和MinHashLSH】算法
  • Excel Power View教程_编程入门自学教程_菜鸟教程-免费教程分享
  • 关于聊天功能,使用input发送消息,不能在input中显示图片解决办法
  • SQL语句(三十二)
  • ffmpeg-aresample_swr_opts的解析
  • PX4从放弃到精通(二十九):传感器冗余机制
  • vue 设置数组