mybatis专题(一):入门以及工程搭建

Mybatis入门以及工程搭建

文章目录

  • Mybatis入门以及工程搭建
  • 前言
  • 一、Mybatis是什么?
  • 二、入门开发工程搭建步骤
    • 1.New Project->Maven
    • 2.如果Maven没有默认的设置,先要设置自己Maven的本地仓库。
    • 3.按照官网,第一步要在pom.xml文件中添加mybatis的核心依赖(版本号可以用最新的)
    • 4.跟数据库交互,还需要数据库(mysql)版本对应的连接驱动依赖,jdk1.8+mysql(5.6/5.7/8.0)这个环境直接用mysql8.0的驱动(更多版本对应关系可以去mysql的官网上找对应的版本发布文档)
    • 5.新建mybatis全局配置文件mybatis.xml文件,并修改配置文件中的数据源信息
    • 6.添加数据库表对应的POJO对象(相当于我们以前的实体类)
    • 7.新建数据访问层的接口:POJOMapper
    • 8.添加对应的POJOMapper.xml维护所有的sql
    • 9.修改mybatis全局配置文件,修改mapper标签采用接口绑定的方式
    • 10.一定要将mapper.xml和接口放在同一级目录中,只需要在resources新建接口同样结构的文件夹就可以。
    • 11.编写测试用例
    • 12.基于注解的测试用例
    • 13.新增测试用例
  • 总结


前言

Mybatis的介绍以及基础开发工程搭建步骤。

一、Mybatis是什么?

这个问题的解释没有比官网更权威的了,直接搜索mybatis,或者通过github搜索。
github地址:https://github.com/mybatis/mybatis-3
mybatis专题(一):入门以及工程搭建_第1张图片

二、入门开发工程搭建步骤

根据官网进行工程的搭建。
工具:IDEA+Maven

1.New Project->Maven

mybatis专题(一):入门以及工程搭建_第2张图片
mybatis专题(一):入门以及工程搭建_第3张图片

2.如果Maven没有默认的设置,先要设置自己Maven的本地仓库。

File->Settings->Build,Execution,Depoyment->Build Tools->Maven
mybatis专题(一):入门以及工程搭建_第4张图片
项目创建好了。
mybatis专题(一):入门以及工程搭建_第5张图片

3.按照官网,第一步要在pom.xml文件中添加mybatis的核心依赖(版本号可以用最新的)

<!-- mybatis核心依赖 -->
<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis</artifactId>
    <version>3.5.5</version>
</dependency>

mybatis专题(一):入门以及工程搭建_第6张图片

4.跟数据库交互,还需要数据库(mysql)版本对应的连接驱动依赖,jdk1.8+mysql(5.6/5.7/8.0)这个环境直接用mysql8.0的驱动(更多版本对应关系可以去mysql的官网上找对应的版本发布文档)

<!--  mysql版本对应的数据库连接驱动包   -->
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.23</version>
</dependency>

5.新建mybatis全局配置文件mybatis.xml文件,并修改配置文件中的数据源信息

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "https://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="${driver}"/>
                <property name="url" value="${url}"/>
                <property name="username" value="${username}"/>
                <property name="password" value="${password}"/>
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <mapper resource="org/mybatis/example/BlogMapper.xml"/>
    </mappers>
</configuration>

mybatis专题(一):入门以及工程搭建_第7张图片
查看驱动的全限定名:
mybatis专题(一):入门以及工程搭建_第8张图片
数据源配置完成。

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "https://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
                <property name="url" value="XXXXXXXXXXXX"/>
                <property name="username" value="XXXXX"/>
                <property name="password" value="XXXXXXX"/>
            </dataSource>
        </environment>
    </environments>
</configuration>

6.添加数据库表对应的POJO对象(相当于我们以前的实体类)

package com.mybatisDemo.pojo;

public class EmpStaff {

    private String staffId;

    private String staffName;

    public String getStaffId() {
        return staffId;
    }

    public void setStaffId(String staffId) {
        this.staffId = staffId;
    }

    public String getStaffName() {
        return staffName;
    }

    public void setStaffName(String staffName) {
        this.staffName = staffName;
    }

    @Override
    public String toString() {
        return "EmpStaff{" +
                "staffId='" + staffId + '\'' +
                ", staffName='" + staffName + '\'' +
                '}';
    }
}

7.新建数据访问层的接口:POJOMapper

package com.mybatisDemo.mapper;

import com.mybatisDemo.pojo.EmpStaff;

public interface EmpStaffMapper {
/**添加mapper中对应操作的方法
*  1、方法名要和mapper中对应的操作的节点的id要一致
*  2、返回类型要和mapper中对应的操作的节点的resultTyoe一致
*  3、mapper中对应的操作的节点的参数要在方法的参数中声明
**/
    EmpStaff selectStaff(String staffId);
}

8.添加对应的POJOMapper.xml维护所有的sql

mapper.xml中的namespace必须要和接口的全限定名一致

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "https://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.mybatisDemo.mapper.EmpStaffMapper">
    <select id="selectStaff" resultType="com.mybatisDemo.pojo.EmpStaff">
        select * from emp_staff where staffId = #{staffId}
    </select>
</mapper>

9.修改mybatis全局配置文件,修改mapper标签采用接口绑定的方式

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "https://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://rm-2zed50a7ka8y9ov9f4o.mysql.rds.aliyuncs.com:3306/mybatisdemo"/>
                <property name="username" value="root"/>
                <property name="password" value="Jian339661"/>
            </dataSource>
        </environment>
    </environments>
    <mappers>
<!--        <mapper resource="EmpStaffMapper.xml"/>-->
        <mapper class="com.mybatisDemo.mapper.EmpStaffMapper" ></mapper>
    </mappers>
</configuration>

10.一定要将mapper.xml和接口放在同一级目录中,只需要在resources新建接口同样结构的文件夹就可以。

mybatis专题(一):入门以及工程搭建_第9张图片

11.编写测试用例

@Test
public void test02() throws IOException {
    //通过xml的配置文件 得到一个SqlSessionFactory对象实例
    String resource = "mybatis.xml";
    InputStream inputStream = Resources.getResourceAsStream(resource);
    SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);

    try (SqlSession session = sqlSessionFactory.openSession()) {
        EmpStaffMapper mapper = session.getMapper(EmpStaffMapper.class);
        EmpStaff empStaff = mapper.selectStaff("101");
        System.out.println(empStaff);
    }
}

12.基于注解的测试用例

修改mapper接口方法

package com.mybatisDemo.mapper;

import com.mybatisDemo.pojo.EmpStaff;
import org.apache.ibatis.annotations.Select;

public interface EmpStaffMapper {

    @Select("select * from emp_staff where staffId = #{staffId}")
    EmpStaff selectStaff(String staffId);
}

注意:注解可以和xml共用 但是不能同时存在方法对应的xml的id

13.新增测试用例

增删改涉及到了数据库更改,所以需要进行session.commit()最后的提交才会修改数据库数据,在后边与spring整合之后这些操作就省去了,后边再说。

@Test
public void test04() throws IOException {
    //通过xml的配置文件 得到一个SqlSessionFactory对象实例
    String resource = "mybatis.xml";
    InputStream inputStream = Resources.getResourceAsStream(resource);
    SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
    SqlSession session = sqlSessionFactory.openSession();
    try  {
        EmpStaffMapper mapper = session.getMapper(EmpStaffMapper.class);
        EmpStaff empStaff = new EmpStaff();
        empStaff.setStaffId("102");
        empStaff.setStaffName("小二");
        int i = mapper.addStaff(empStaff);
        session.commit();
        System.out.println(empStaff);
    }catch (Exception e){
        session.rollback();
    }finally {
        session.close();
    }
}

总结

到这里整个mybatis工程算是搭建完成了!其实这些在官网上都说的很详细,可以多去研究一下官网。
(ps:更多学习交流以及资料可以关注我得公众号:阿剑笔记)

你可能感兴趣的:(Mybatis,mybatis,java,mysql)