Mybatis源码学习01——源码环境搭建

Mybatis源码学习01——源码环境搭建

图难于其易,为大于其细。天下难事,必作于易;天下大事,必作于细。从Spring源码退一步学习mybatis源码未尝不是一个正确的决定。

准备工作

IDEA

Maven

mysql-connector-java-8.0.13.jar 百度云盘 提取码 z31r

Mybatis 源码获取

建议下载压缩包 https://github.com/mybatis/mybatis-3/releases

git地址:https://github.com/mybatis/mybatis-3.git

源码阅读环境搭建

1. 导入mybatis项目

image-20210221152917391

2. 等待maven下载依赖

image-20210221153346132

运行Mybatis项目

**1. 新建 resources 资源包 (文件夹) **

  1. 在main路径下新建resources包
    GIF 2021-2-21 15-45-27
  2. 设置为资源路径
    GIF 2021-2-21 15-50-27

2. 新建 mapper包,和domain包

GIF 2021-2-21 15-57-47

3. domain包下新建实体类

GIF 2021-2-21 16-01-23

重写toString()方法

4. mapper包下新建UserMapper.java

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9YEv7fzH-1613902525861)(C:\Users\Administrator\Desktop\GIF 2021-2-21 15-50-27.gif)]

package org.apache.ibatis.mapper;

import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.domain.User;

import java.util.List;

public interface UserMapper {
  @Select("select * from user")
  public List<User> selectAll();
}

5. 创建数据库及实体类对应的表

  1. 连接数据库
    image-20210221160742636

  2. 创建 mybatis数据库及 user表
    GIF 2021-2-21 16-17-03

    CREATE DATABASE `mybatis`;
    
    USE `mybatis`
    CREATE TABLE `user`(
    	 `id` int(11) NOT NULL AUTO_INCREMENT,
       `name` varchar(50) DEFAULT NULL,
    	 PRIMARY KEY(`id`)
    )
    

补充一条用户记录

USE `mybatis`
INSERT INTO `user` VALUES(1,'咸鱼');

6. resources下导入mybatis配置文件

image-20210221162033501

<?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">
      <!--使用jdbc事务管理 -->
      <transactionManager type="JDBC"/>
      <!-- 数据库连接池 -->
      <dataSource type="POOLED">
        <property name="driver" value="com.mysql.jdbc.Driver"/>
        <property name="url" value="jdbc:mysql://****************"/>
        <property name="username" value="*******"/>
        <property name="password" value="*******"/>
      </dataSource>
    </environment>
  </environments>
  <!-- 引入映射配置文件 -->
  <mappers>
    <package name="org.apache.ibatis.mapper"/>
  </mappers>
</configuration>

7. 添加mysql驱动

  1. 项目目录下新建 lib 文件夹*

  2. 将 mysql-connector-java-xxx.jar 放进lib文件夹下

  3. 添加到库

GIF 2021-2-21 17-57-12

8. 创建Main.java 编写测试程序

GIF 2021-2-21 18-06-41

package org.apache.ibatis;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.mapper.UserMapper;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

import java.io.IOException;
import java.io.InputStream;

public class Main {
  // SqlSession的工厂
  static SqlSessionFactory sqlSessionFactory = null;

  static {
    try {
      // 加载mybatis配置文件,并创建SqlSessionFactory实例
      InputStream inputStream = Resources.getResourceAsStream("mybatis.xml");
      //这个build方法可以接受几种不同的参数,如Reader/InputSteam等
      sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
    } catch (IOException e) {
      e.getMessage();
    }
  }
  public static SqlSession getSqlSession() {
    return sqlSessionFactory.openSession();
  }

  public static void closeSqlSession(SqlSession sqlSession){
    if (sqlSession != null) {
      sqlSession.close();
    }
  }

  public static void main(String[] args) throws Throwable {
    SqlSession session = getSqlSession();
    UserMapper userMapper = session.getMapper(UserMapper.class);
    System.out.println(userMapper.selectAll());
  }
}

9. 执行main方法

image-20210221180820325

到此,已经完成mybatis阅读环境的搭建与测试。接下来就可以通过调试学习源码了。

有问题欢迎指正

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值