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

Mybatis入门以及工程搭建


前言

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

一、Mybatis是什么?

这个问题的解释没有比官网更权威的了,直接搜索mybatis,或者通过github搜索。
github地址:https://github.com/mybatis/mybatis-3
github截图

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

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

1.New Project->Maven

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

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

File->Settings->Build,Execution,Depoyment->Build Tools->Maven
在这里插入图片描述
项目创建好了。
在这里插入图片描述

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

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

在这里插入图片描述

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>

在这里插入图片描述
查看驱动的全限定名:
在这里插入图片描述
数据源配置完成。

<?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新建接口同样结构的文件夹就可以。

在这里插入图片描述

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:更多学习交流以及资料可以关注我得公众号:阿剑笔记)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值