IDEA——手把手教你mybatis的使用(新手教程)

发布于:2022-12-26 ⋅ 阅读:(621) ⋅ 点赞:(0)

        说到Mybatis,很多人不知道这是用来干什么的,简单来说就是用来优化JDBC的使用,我们可以理解为一个这样的流程:

        数据库->JDBC->MyBatis->Java

        今天来教一下简单的mybatis使用方法,对于初学者很友好。

 

目录

一、MySQL准备

二、IDEA配置 mybatis环境

创建pojo

 创建mapper.xml

创建Mapper代理接口

回到StudentMapper.xml文件

启动Main方法


一、MySQL准备

首先呢我们需要准备一个数据库的表数据,来进行随后使用mybatis进行的查询操作。

这里用到的是MySQL数据库,我们首先通过cmd命令窗口进行数据库连接

mysql -u root -p

进入数据库后我们创建一个属于自己的数据库,建议检查exists以防报错

create database if not exists csdnsql;

 

通过use csdnsql;进入数据库进行操作

接下来创建一个存储数据的表单,我在这里创建一个Student简易学生表

 create table student(
     id varchar(10) primary key,
     name varchar(10) not null,
     sex char(1) not null,
     birthday date default '2000-01-01',
     address varchar(30)
     );

 

 

接下来通过insert方法录入几个数据以供后面使用

insert into student values
     ('10101','张三','男','2002-08-12','北京市朝阳区'),
     ('10103','李四','男','2001-9-22','北京市东城区'),
     ('10105','小霞','女','2003-02-15','北京市大兴区');

 

 

接下来我们来查看一下自己录入的数据是否已经存在于数据库中了

 

 可以看到我们的数据已经成功进入了数据库中,数据库的准备就这样结束了,马上进入IDEA进行我们的mybatis学习。


 

 

二、IDEA配置 mybatis环境

创建一个maven项目

 

创建完成后打开项目下的pom.xml进行一些依赖的配置,你问我依赖是什么?依赖就是导jar包,连网自动导入不用百度的那种。

 

添加如下内容导入mybatis和jdbc的jar包

    <dependencies>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.30</version>
        </dependency>
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.5.10</version>
        </dependency>
    </dependencies>

         上官网!哈哈,肯定是mybatis的官网,我们去把它的核心配置文件copy下来,不过首先我们要在这个目录下创建一个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">
<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:///csdnsql?useSSL=false"/>
                <property name="username" value="root"/>
                <property name="password" value="1234"/>
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <mapper resource="org/mybatis/example/BlogMapper.xml"/>
    </mappers>
</configuration>


上面这些其实都还没有创建结束,但我们需要先进行pojo的创建和mapper映射的创建,才能继续修改mybatis核心配置文件xml


 

创建pojo

这其实就是你的JavaBean,类名就是查询的表名咯

创建一个com.bamboo.pojo的package包

在其中创建一个名为Student的类

package com.bamboo.pojo;

import java.text.SimpleDateFormat;
import java.util.Date;

public class Student {
    private String id;
    private String primary;
    private String name;
    private Character sex;
    private Date birthday;
    private String address;

    public String getId() {
        return id;
    }

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

    public String getPrimary() {
        return primary;
    }

    public void setPrimary(String primary) {
        this.primary = primary;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Character getSex() {
        return sex;
    }

    public void setSex(Character sex) {
        this.sex = sex;
    }

    public Date getBirthday() {
        return birthday;
    }

    public void setBirthday(Date birthday) {
        this.birthday = birthday;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    @Override
    public String toString() {
        return "Student{" +
                "id='" + id + '\'' +
                ", primary='" + primary + '\'' +
                ", name='" + name + '\'' +
                ", sex=" + sex +
                ", birthday=" + new SimpleDateFormat("yyyy-MM-dd").format(birthday).toString() +
                ", address='" + address + '\'' +
                '}';
    }
}

 

 创建mapper.xml

接下来创建映射文件咯~~

问我干嘛的?用来保存SQL语句的东西

在resources下创建一个com/bamboo/mapper/StudentMapper.xml的文件,一定要用/分隔,不然会形成你不想看到的结果,创建完成后先不用管。

 

很好!接下来我们回到mybatis核心配置文件

1.修改其中的<mappers>标签为以下内容

        是不是想问这个是用来干嘛的,我来告诉你

        这个用来定位刚才我们创建的mapper映射文件

<mappers>
        <package name="com.bamboo.mapper"/>
    </mappers>

2.在<environments>标签上方创建<typeAliases>标签来为我们的pojo起别名,省略需要写全限名的步骤

<typeAliases>
        <package name="com.bamboo.pojo"/>
    </typeAliases>

 

创建Mapper代理接口

在java源路径下创建com.bamboo.mapper.StudentMapper的接口

具体如下图,我们在其中添加一个接口, 并且写入一个接口方法。

 

package com.bamboo.mapper;

import com.bamboo.pojo.Student;

import java.util.List;

public interface StudentMapper {
    List<Student> selectAll();
}

 

回到StudentMapper.xml文件

把下面这串全添加进去,大部分是官网给出的dtd,所以看起来有些复杂

实际上就只是通过mapper映射到了Mapper接口,然后通过下面的id来定位方法,resultType来设置返回的结果类,内容显而易见的是SQL查询语句。

<?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.bamboo.mapper.StudentMapper">
    <select id="selectAll" resultType="Student">
        select * from csdnsql.student;
    </select>
</mapper>

 至此配置全部结束,我们开始使用这些东西来进行对数据库的查询和使用。


 

启动Main方法

直接在com.bamboo包下创建一个主线程MybatisDemo类文件来启动我们的mybatis项目

至此项目结构图是这样的,如果哪里不对请稍作修改

 

        一个一个写,写累了呀,我一次性写完带图好叭,哈哈,我可还真的不是一个负责任的博主。

步骤:先创建一个startMybatis()方法来保存所有代码,通过throws Exception抛出异常给main

1.获取SqlSessionFactory

2.通过工厂来获取SqlSession

3.创建Mapper映射

4.创建List集合接收mapper代理执行获取得结果

5.输出结果

6.关闭sqlSession对象

7.使用main来调用,通过try-catch捕获异常避免jvm异常终止程序

!!!!!!上代码!

!!果然还是先上结果再上代码,这样更有信服力

 

 

package com.bamboo;

import com.bamboo.mapper.StudentMapper;
import com.bamboo.pojo.Student;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

import java.io.InputStream;
import java.util.List;

public class MybatisDemo {
    public static void main(String[] args) {
        try {
            startMybatis();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    public static void startMybatis() throws Exception {
        //1
        String resource = "mybatis-config.xml";
        InputStream in = Resources.getResourceAsStream(resource);
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(in);
        //2
        SqlSession sqlSession = sqlSessionFactory.openSession();
        //3
        StudentMapper studentMapper = sqlSession.getMapper(StudentMapper.class);
        //4
        List<Student> students = studentMapper.selectAll();
        //5
        for (Student student : students) {
            System.out.println(student);
        }
        //6
        sqlSession.close();
    }
}

 至此mybatis初体验就结束啦,亲手试一试,你就不会觉得那么难了。

 

本文含有隐藏内容,请 开通VIP 后查看