资讯详情

搭建Mybatis源码环境

搭建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文件的相对位置

编译工程

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

注释pdf不引入插件

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

需要手动指定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用于所有测试工作

CREATETABLE`student`( `id`intNOTNULLAUTO_INCREMENTCOMMENT'id', `sno`varchar(20)DEFAULTNULLCOMMENT'学号', `sname`varchar(10)DEFAULTNULLCOMMENT学生姓名, PRIMARYKEY(`id`) )  

<?xmlversion="1.0"encoding="UTF-8"?> <!DOCTYPEconfigurationPUBLIC"-//mybatis.org//DTDConfig3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <environmentsdefault="development"> <environmentid="development"> <transactionManagertype="JDBC"> </transactionManager> <dataSourcetype="POOLED"> <!--8.x版本com.mysql.cj.jdbc.Driver--> <!--5.x版本com.mysql.jdbc.Driver--> <propertyname="driver"value="com.mysql.jdbc.Driver"/> <propertyname="url"value="jdbc:mysql://127.0.0.1:3306/unimondb"/> <propertyname="username"value="root"/> <propertyname="password"value="123456"/> </dataSource> </environment> </environments> <!--配置扫描包,根据自己的项目修改--> <mappers> <packagename="com.mybatis.test"/> <mappers>
</configuration>

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

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

<?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、创建SqlSessionFactory
        String resource = "mybatis-config.xml";
        //  String resource = "md";
        final Reader reader = Resources.getResourceAsReader(resource);
        sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
        reader.close();
        // 2、获取sqlSession
        SqlSession sqlSession = sqlSessionFactory.openSession();

        // 3、获取mapper 动态代理,代理对象
        StudentMapper mapper = sqlSession.getMapper(StudentMapper.class);

        // 4、执行数据库操作,并处理结果集
        Student goods = mapper.selectById("111");
        System.out.println(goods);
    }
}

可能出现的问题

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

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

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

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

需要引入驱动包程序

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

标签: rp5n连接电缆

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台