搭建Mybatis源码环境

源码下载

mybatis源码下载在github上面,链接如下(演示下载的是3.5.1版本)

https://github.com/mybatis/mybatis-3

除了mybatis源码外还需要下载依赖工程mybatis-parent(演示下载的是parent-31版本)

https://github.com/mybatis/parent

工程搭建

idea新建一个空项目

File---->New—>Project

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rP5rdpn9-1657519956426)(https://mmbiz.qpic.cn/mmbiz_png/3THd6lArRajgFMcz4eNtokRskZTaxk8Wm9Hk2peIfJ9UC3Yyz7CfOLSVdm19rZAtyf2ffhckTAz2M1sLLHjfmQ/640?wx_fmt=png)]

File–>Project Structure (导入parent-mybatis-parent-31、mybatis-3-mybatis-3.5.1)

更改mybatis-3-mybatis-3.5.1工程的pom文件,更新mybatis-parent中pom.xml文件的相对位置

编译工程

parent-mybatis-parent-31

mybatis-3-mybatis-3.5.1

按照上面的步骤重复操作,但是可能会出现一些问题

Failed to execute goal org.apache.maven.plugins:maven-pdf-plugin

注释pdf插件,不引入

<plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-pdf-plugin</artifactId>
</plugin>

Failed to execute goal org.apache.maven.plugins:maven-shade-plugin:2.0:shade (default) on project mybatis

需要手动指定maven-shade-plugin插件版本

 <plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-shade-plugin</artifactId><version>3.2.4</version>.......
</plugin>

验证环境

File–>Project Structure 新建一个新的module,mybatis-test用于所有的测试工作

创建数据库表

CREATE TABLE `student` (`id` int NOT NULL AUTO_INCREMENT COMMENT 'id',`sno` varchar(20) DEFAULT NULL COMMENT '学号',`sname` varchar(10) DEFAULT NULL COMMENT '学生姓名',PRIMARY KEY (`id`)
)

创建数据库配置文件mybatis-config.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration  PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration><environments default="development"><environment id="development"><transactionManager type="JDBC"></transactionManager><dataSource type="POOLED"><!--  8.x版本  com.mysql.cj.jdbc.Driver --><!--  5.x版本   com.mysql.jdbc.Driver --><property name="driver" value="com.mysql.jdbc.Driver"/><property name="url" value="jdbc:mysql://127.0.0.1:3306/unimondb"/><property name="username" value="root"/><property name="password" value="123456"/></dataSource></environment></environments><!-- 配置扫描包,根据自己建的工程修改 --><mappers><package name="com.mybatis.test"/></mappers>
</configuration>

创建实体类

public class Student {private String id;private String sno;private String sname;// .....省略get、set、toString方法
}

创建接口StudentMapper

public interface StudentMapper {Student selectById(String id);
}

创建Mapper的Sql映射文件

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!-- 命名空间,是接口StudentMapper的全限定名 -->
<mapper namespace="com.mybatis.test.StudentMapper"><!-- 实体类的全限定名 --><select id="selectById" resultType="com.mybatis.test.Student">select * from student where id = #{id}</select>
</mapper>

新增测试入口

public class MyTest {private static SqlSessionFactory sqlSessionFactory;public static void main(String[] args) throws IOException {// 1、创建SqlSessionFactoryString resource = "mybatis-config.xml";//  String resource = "md";final Reader reader = Resources.getResourceAsReader(resource);sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);reader.close();// 2、获取sqlSessionSqlSession sqlSession = sqlSessionFactory.openSession();// 3、获取mapper 动态代理,代理对象StudentMapper mapper = sqlSession.getMapper(StudentMapper.class);// 4、执行数据库操作,并处理结果集Student goods = mapper.selectById("111");System.out.println(goods);}
}

引入mybatis-3-mybatis-3.5.1模块依赖

启动项目

可能出现的问题

Cannot enable lazy loading because Javassist is not available

javassist的依赖并没有成功的加载,在mybatis-test的pom中手动引入

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

Caused by: java.lang.ClassNotFoundException: ognl.PropertyAccessor

ognl依赖没有加载成功,在mybatis-test的pom中手动引入

<dependency><groupId>ognl</groupId><artifactId>ognl</artifactId><version>3.2.10</version>
</dependency>

Cause: java.lang.ClassNotFoundException: Cannot find class: com.mysql.jdbc.Driver

需要引入驱动包程序

<dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.23</version>
</dependency>

搭建Mybatis源码环境相关推荐

  1. 本地搭建Spring源码环境

    本地搭建Spring源码环境 一.安装gradle 第一种方式 第二种方式 二.下载Spring源码 一.下载地址 二.导入idea 三.配置idea 四.新建测试工程 三.最后 附:git地址 声明 ...

  2. mybatis源码环境搭建

    前言 mybatis在众多的数据持久化框架中应该说是目前使用最多的,其优秀的设计和底层封装,值得很多开发人员进行学习,下面让我们先来构建一下mybatis的源码阅读环境吧 准备 1.github下载m ...

  3. 使用IntelliJ IDEA搭建kafka源码环境时遇到Output path错误解决办法

    kafka源码环境搭建好之后,需要在IntelliJ IDEA开发工具中以debug方式启动kafka服务器来测试消息的生产和消费. 但是在启动kafka.Kafka类中的main方法(也就是运行 k ...

  4. 本地环境用eclipse搭建spring源码环境

    对于JAVA和.NET开发人员来讲Spring框架并不陌生,对于想进行spring源码学习的同学来讲,在本地下载和构建spring项目很有必要.以下简要说明下Spring源码的下载和在eclipse下 ...

  5. idea搭建tigase源码环境

    安装配置简单记录如下 1.安装mysql,我用的版本是mysql 5.5. 如果用较高版本,在执行过程中会遇到一些数据库的报错,需要对源码进行修改. 错误举例如下 The server time zo ...

  6. Gradle搭建Spring5源码环境时报错:A build scan was not published as ... with server ‘ge.spring.io’

    解决办法: 修改settings.gradle文件(不做身份验证) plugins { id "com.gradle.enterprise" version "3.2&q ...

  7. Mybatis源码解析(一):环境搭建

    Mybatis源码系列文章 手写源码(了解源码整体流程及重要组件) Mybatis源码解析(一):环境搭建 Mybatis源码解析(二):全局配置文件的解析 Mybatis源码解析(三):映射配置文件 ...

  8. Mybatis 源码阅读环境搭建

    Mybatis源码阅读环境搭建 前言 一.下载mybatis的源码 二.编译源码 三.创建测试项目 前言     mybatis源码阅读环境搭建还是比较简单的,接下来我们讲解一下如何搭建该源码阅读环境 ...

  9. kafka项目启动_Kafka 探险 源码环境搭建

    这个 Kafka 的专题,我会从系统整体架构,设计到代码落地.和大家一起杠源码,学技巧,涨知识.希望大家持续关注一起见证成长! 我相信:技术的道路,十年如一日!十年磨一剑! 前言 在阅读源码之前,首先 ...

  10. MyBatis源码分析(一)MyBatis整体架构分析

    文章目录 系列文章索引 一.为什么要用MyBatis 1.原始JDBC的痛点 2.Hibernate 和 JPA 3.MyBatis的特点 4.MyBatis整体架构 5.MyBatis主要组件及其相 ...

最新文章

  1. swift3.0友盟分享
  2. devops_最低可行DevOps
  3. CentOS 6.4下编译安装MySQL 5.6.14
  4. 我是如何利用“王宝强离婚”事件来吸粉的
  5. linux x和s 的区别,Hadoop1.x和2.X的HDFS fsimage和edits文件运行机制对比
  6. python读取nc文件并转换成csv_Python提取netCDF数据并转换为csv文件
  7. Nacos配置管理-Nacos实现配置管理
  8. java.close用法_void close()
  9. linux忘记root密码怎么修改密码和多台linux相互使用密钥连接
  10. mongodb mac安装_在Mac OS X上安装MongoDB
  11. C语言中的循环结构与选择结构
  12. Java实现黑客帝国代码雨(待机屏保)
  13. BS7799标准全面解析(新版)
  14. S32K的flash组件使用(操作FLASH)
  15. 初学python--空函数、返回多个值
  16. 2021年中国印染布产量及进出口情况分析:合成长丝织物产品出口数量最多[图]
  17. 安卓app保持屏幕常亮
  18. java爬虫(本地爬虫和网络爬虫)
  19. 域名系统(DNS)反向查询
  20. mysql 多表 结构相同 查询

热门文章

  1. 面试官:TCP和UDP两者的区别是什么?
  2. win10系统64位安装与配置java环境,安装使用citespace经验
  3. 串口转usb驱动c语言程序,usb serial驱动下载-usb serial converter驱动下载 官方版usb转串口驱动程序-win7/8/10/xp32/64位-IT猫扑网...
  4. 关于雅克比矩阵与黑塞矩阵
  5. mysql删除表数据恢复
  6. Mysql根据日志恢复数据
  7. VMware 镜像安装
  8. Livereload介绍
  9. 如何搭建积分商城软件活动功能
  10. iOS 视频播放器开发(一)