目录

Mybatis概述

Mybatis环境搭建

① 在数据库里创建一张表

② 在maven项目中创建一个实体类

③ 导入所需jar包 

④ 创建Mybatis核心配置文件

⑤ 定义接口

⑥ 创建sql映射文件

⑦ 测试Mybatis

MybatisX插件


Mybatis概述

 •  Mybatis原是apache的一个开源项目,起初叫ibatis,2010年迁移至谷歌并改名为Mybatis

 •  Mybatis是一款持久层框架,避免了几乎所有的JDBC代码手动设置参数以及手动获取结果集的操作,将基本的JDBC常用接口进行了封装,简化了操作且使用起来更加方便。

 •  Mybatis使用xml或注解的方式,可以将数据库记录映射到Java对象中,是一种ORM实现,即对象关系映射Object Relation Mapping。

 •  Mybatis支持动态sql以及数据缓存。

Mybatis环境搭建

▐ Mybatis官方网址

mybatis – MyBatis 3 | 简介icon-default.png?t=N7T8https://mybatis.org/mybatis-3/zh_CN/index.html


① 在数据库里创建一张表

➱ 首先我们需要在mysql数据库里创建一张表,以便后续的测试.

   -- 新创建一个数据库(ssmdb)
   CREATE DATABASE ssmdb CHARSET utf8
   -- 创建一张表(admin)
   CREATE TABLE admin(
     id INT PRIMARY KEY AUTO_INCREMENT,
     account VARCHAR(20) UNIQUE,
     PASSWORD VARCHAR(50) NOT NULL,
   gender CHAR(1)
   )

➱ 创建好之后先在表中添加一组数据,然后数据库的准备工作就完成了.

② 在maven项目中创建一个实体类

这里我们需要先创建一个maven项目,然后创建一个类(Admin),类中的属性和数据库保持一致(id, account, password, gender),然后生成get和set方法,且这里必须要使用工具生成,不能自定义方法名,否则框架底层无法识别!

public class Admin {
    private int id;
    private String account;
    private String password;
    private String gender;

    public int getId() {
        return id;
    }

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

    public String getAccount() {
        return account;
    }

    public void setAccount(String account) {
        this.account = account;
    }

    public String getPassword() {
        return password;
    }

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

    public String getGender() {
        return gender;
    }

    public void setGender(String gender) {
        this.gender = gender;
    }

    @Override
    public String toString() {
        return "Admin{" +
                "id=" + id +
                ", account='" + account + '\'' +
                ", password='" + password + '\'' +
                ", gender='" + gender + '\'' +
                '}';
    }
}

③ 导入所需jar包 

➱ 这里我们需要在pom.xml文件中导入两个jar包,分别是Mybatis jar包Mysql数据库驱动包

这一步相信有些小伙伴们有个疑问:这里为什么还要导入mysql的驱动包呢?

文章开始概述提到,Mybatis只是对JDBC的一些方法进行了封装,底层连接数据库最终实现还是JDBC,Mybatis只是在上层进行了包装,所以mysql驱动包依然需要导入。

        <!--  mybatis-->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.4.2</version>
        </dependency>

        <!--  mysql-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.16</version>
        </dependency>

④ 创建Mybatis核心配置文件

在resources目录下创建一个xml文件(mybatis.xml),如图所示配置即可.

这里的mappers标签需要等到第6步完成后添加,即图片的第17~19行代码.

<?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">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="" />
                <property name="url" value="" />
                <property name="username" value="" />
                <property name="password" value=""/>
            </dataSource>
        </environment>
    </environments>
</configuration>

⑤ 定义接口

创建一个dao目录,并创建一个接口(interface),在接口中写一个抽象方法,这里比如我们需要通过id来查询管理员对象信息(findAdminById)

接口定义好之后,那么我们的查询sql在哪里写呢?

使用Mybaits框架之后,我们的sql就不写在Java代码里面了,我们会将sql语句抽取到一个xml文件中,这样维护起来更加方便,所以下一步就需要创建sql映射文件了。

⑥ 创建sql映射文件

在resources目录下再创建一个mappers目录,来写我们的映射文件,然后创建一个.xml的sql映射文件(AdminMapper.xml).

<mapper namespace>标签中添加接口地址,通过select标签来查询数据,且标签中的id属性要与接口中方法名相同,parametrTeype指参数类型,resultType指返回值类型。

     <?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="接口地址">
     <!--   定义sql语句-->
     </mapper>

完成后还需要在mybatis.xml核心配置文件中配置.

⑦ 测试Mybatis

        //读取配置文件
        Reader reader = Resources.getResourceAsReader("mybatis.xml");
        //创建SqlSessionFactory
        SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader);
        //创建SqlSession
        SqlSession sqlSession =sessionFactory.openSession();
        //为接口创建一个代理对象
        AdminDao adminDao = sqlSession.getMapper(AdminDao.class);
        //调用自己的方法
        Admin admin = adminDao.findAdminById(1);
        System.out.println(admin);
        //关闭与数据库的会话对象
        sqlSession.close();

 查询成功!

MybatisX插件

由于xml是一个独立的文件,当我们写代码或地址出错时工具不能检测出来,所以这里给大家推荐一个很好用的插件MybatisX,它可以对一些语法进行检测,例如接口的名字写错时会提示接口找不到,并且点击小鸟图标可以在接口和定义sql的xml文件之间切换。

安装流程:在Settings中找到Plugins,搜索MybatisX安装即可。




 本次的分享就到此为止了,希望我的分享能给您带来帮助,创作不易也欢迎大家三连支持,你们的点赞就是博主更新最大的动力!如有不同意见,欢迎评论区积极讨论交流,让我们一起学习进步!有相关问题也可以私信博主,评论区和私信都会认真查看的,我们下次再见

海漫浩浩,我亦苦作舟!大家一起学习,一起进步!  

本篇文章旨在如何搭建Mybatis框架, 对于一些代码和配置没有做过多解读,小白可能存在些许疑惑,Don' t  worry!下一篇文章会对mybatis配置进行详细解读,大家敬请期待~~

Mybatis系列持续创造和更新中...

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐