当前位置: 移动技术网 > IT编程>开发语言>Java > MyBatis最简单快速入门过程

MyBatis最简单快速入门过程

2020年07月27日  | 移动技术网IT编程  | 我要评论

MyBatis最简单快速入门过程

1.什么是MyBatis

MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Ordinary Java Object,普通的 Java对象)映射成数据库中的记录。

​ 上面是百度百科的介绍,说的其实很明白,但是很官方啊。这里的话,我用的我的话介绍一下吧,大家可以看我之前的博客(JDBC),里面介绍了原始的JDBC如何实现CRUD的,里面的查询所有,返回结果集,然后还要对结果集进行处理,很是麻烦。后来用了连接池,写了工具类,然后写配置文件,发现这一过程简单了不少,其实啊,这就相当于我们自己写的一个持久层框架,在没学MyBatis之前,我也是拿出自己珍藏很久的工具类,配置文件,很快就可以完成开发,但是用多了会发现,自己写的很片面,不能做到面面俱到,得根据不同的场景进行修改,这时候就会有个想法,如果有个框架,只让我们关注sql语句的编写该多好,对不对。那么MyBatis做到了这一点。

2.MyBatis的使用过程

由于这个是别人写的一个框架,我们了解它,得从它的官方文档入手https://mybatis.org/mybatis-3/zh/getting-started.html,这个是它的官方文档,里面很详细说明了MyBatis的使用过程,以后开发,我们就可以把这个当做一个工具来使用

1.环境准备

在idea中创建maven工程

第一步:

[

第二步:
在这里插入图片描述

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ILatAPQz-1595737009732)(C:%5CUsers%5C26212%5CAppData%5CRoaming%5CTypora%5Ctypora-user-images%5Cimage-20200726114704565.png)]

点击OK工程准备好了。

第二步:创建包结构

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WcxkLT6J-1595737009734)(C:%5CUsers%5C26212%5CAppData%5CRoaming%5CTypora%5Ctypora-user-images%5Cimage-20200726115030567.png)]

第三步:在pom.xml中导入MyBatis所需要的坐标

<dependencies>
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.5.4</version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.38</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
        </dependency>
    </dependencies>

第四步:在pojio包中创建数据库中对应表的实体类

package com.wang.pojo;

public class User {
    private Integer id;
    private String username;
    private String password;

    public User() {
    }

    public User(Integer id, String username, String password) {
        this.id = id;
        this.username = username;
        this.password = password;
    }

    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", username='" + username + '\'' +
                ", password='" + password + '\'' +
                '}';
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }
}

第四步:在dao包中编写接口,这里以查询所有的数据为例

package com.wang.dao;

import com.wang.pojo.User;

import java.util.List;

public interface UserDao {
    //查询所有
    List<User> find();
}

这里有报错是因为映射文件没写,先不管

2.配置文件的编写

如果上面的都写完了,可以看看配置文件的编写,这里主要两个xml配置文件。

第一步:编写持久层(dao)里面接口的映射文件,这个实在resources目录里面的dao文件夹里面写

<?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">
<mapper namespace="com.wang.dao.UserDao">
    <select id="find" resultType="com.wang.pojo.User">
        select * from user
    </select>
</mapper>

这里面需要我们编写的是mapper,上面的几行在官方文档粘贴过来的,就是以后我们编写持久层的接口的时候,我们都需要导入这几行,可以把它制作成一个模板:

<?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">

第二步:编写SqlMapConfig.xml文件,这个实在resources目录里面写,和com文件夹同级

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-h2nJvw6r-1595737009735)(C:%5CUsers%5C26212%5CAppData%5CRoaming%5CTypora%5Ctypora-user-images%5Cimage-20200726120513090.png)]

<?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="mysql">
        <environment id="mysql">
            <transactionManager type="JDBC"></transactionManager>
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/yz"/>
                <property name="username" value="root"/>
                <property name="password" value="root"/>
            </dataSource>
        </environment>
    </environments>
    
    <mappers>
        <mapper resource="com/wang/dao/UserDao.xml"></mapper>
    </mappers>

</configuration>

这里我们也是抽离出一个SqlMapConfig.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">

SqlMapConfig.xml里面写的东西是不是很熟悉,有种似曾相识的感觉啊,以前写jdbc的时候配置文件就是写这些玩意,看的懂得地方我就不多说了,就说说这个

<mappers>
        <mapper resource="com/wang/dao/UserDao.xml"></mapper>
</mappers>

上面的接口我们写了接口的映射配置文件,但是你要让它找的到,必须告诉mybatis,这个在哪对吧,所以这里我们还需要配置映射文件的位置

3.编写测试程序

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8mFUC2qU-1595737009737)(C:%5CUsers%5C26212%5CAppData%5CRoaming%5CTypora%5Ctypora-user-images%5Cimage-20200726120832299.png)]

public class test {
    @Test
    public void test01() throws IOException {
        //获取配置文件
        InputStream in = Resources.getResourceAsStream("SqlMapConfig.xml");
        //创建工厂对象
        SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in);
        //通过工厂对象创建SqlSession对象
        SqlSession session = factory.openSession();
        //通过SqlSession对象来创建dao的代理对象
        UserDao dao = session.getMapper(UserDao.class);
        //通过代理对象调用dao里面的方法
        List<User> users = dao.find();
        for (User user : users) {
            System.out.println(user);
        }
        //释放资源
        session.close();
        in.close();
    }
}

运行结果如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1KjWCdXP-1595737009738)(C:%5CUsers%5C26212%5CAppData%5CRoaming%5CTypora%5Ctypora-user-images%5Cimage-20200726121302194.png)]

总结上面的过程:

1.获取SqlMapConfig.xml配置文件

2.创建工厂对象

3.通过工厂对象创建SqlSession对象

4.通过SqlSession对象来创建dao的代理对象

5.通过代理对象调用dao里面的方法
6.释放资源

其实这里面的便捷之处就是通过代理对象来管理,不要我们去操心,我们只需要关注sql语句编写,就可以了。

阅读以上这么详细的过程,是不是觉得很简单,喜欢的话,给个关注+点赞,后序更新MyBatis如何在项目开发中使用

本文地址:https://blog.csdn.net/qq_39594037/article/details/107591815

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网