第一个mybatis程序-->配置mybatis(超详细、小白也能成功配置)

第一个mybatis程序–>配置mybatis(超详细、小白也能成功配置)

写本文章的目的:最近正在看狂神的视频学习mybatis,但是跟着视频配置下来仍然有一些小错误,导致花费了很多时间去找bug。在此记录一下,祝大家学习愉快。本文非常详细,适合小白食用。大佬跳过即可_
思路流程:搭建环境–>导入Mybatis—>编写代码—>测试
本程序的目的:利用mybatis查询数据库的信息。
第一个mybatis程序-->配置mybatis(超详细、小白也能成功配置)
本文章涉及的资源(点击直达):
狂神教学视频网址
视频对应文档网址
官方文档

开始配置
1、搭建环境
1.1、搭建实验数据库(在mysqlworkbench软件中创建一个表并添加数据,你用什么软件都可以,只要把表格建好并添加数据。)

--“CREATE DATABASE`mybatis`“只在第一次创建数据库的时候才使用,
--之后如果在该数据库中建表就不用写这句话。
CREATE DATABASE `mybatis`;

USE `mybatis`;

DROP TABLE IF EXISTS `user`;

CREATE TABLE `user` (
`id` int(20) NOT NULL,
`name` varchar(30) DEFAULT NULL,
`pwd` varchar(30) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

insert  into `user`(`id`,`name`,`pwd`) values (1,'狂神','123456'),(2,'张三','abcdef'),(3,'李四','987654');

MySqlWorkbench运行结果如下:
第一个mybatis程序-->配置mybatis(超详细、小白也能成功配置)

1.2、在IDEA中新建一个Maven项目–>删除src目录–>导入maven依赖
(1)第一个mybatis程序-->配置mybatis(超详细、小白也能成功配置)
(2)
第一个mybatis程序-->配置mybatis(超详细、小白也能成功配置)

(3)在pom.xml文件(properties标签后)加入代码。
注意:导入的数据库依赖的时候,数据库的版本号一定要和你自己使用的数据库版本一致

<!--导入依赖-->
<dependencies>
    <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis</artifactId>
        <version>3.5.2</version>
    </dependency>
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
		<!--一定要添加自己使用的数据库的对应版本号-->
        <version>8.0.20</version>
    </dependency>
    <!-- junit 依赖添加-->
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>RELEASE</version>
        <scope>maim</scope>
    </dependency>
</dependencies>

<!--当报错target文件夹下面看不到加载的配置文件需要添加依赖-->
<build>
    <resources>
        <resource>
            <directory>src/main/java</directory>
            <includes>
                <include>**/*.properties</include>
                <include>**/*.xml</include>
            </includes>
            <filtering>false</filtering>
        </resource>
        <resource>
            <directory>src/main/resources</directory>
            <includes>
                <include>**/*.properties</include>
                <include>**/*.xml</include>
            </includes>
            <filtering>false</filtering>
        </resource>
    </resources>
</build>

2、导入MyBatis
2.1在IDEA里面连接前面写好的数据库。
注意:你的IDEA一定要是专业版的侧栏才有Database。社区版的建议去官网下一个专业版(学生认证即可免费使用)。
第一个mybatis程序-->配置mybatis(超详细、小白也能成功配置)
第一个mybatis程序-->配置mybatis(超详细、小白也能成功配置)点击ok就可以了,建立成功如下:
第一个mybatis程序-->配置mybatis(超详细、小白也能成功配置)

2.2编写MyBatis核心配置文件。
(1)创建“mybatis-config.xml”配置文件。
第一个mybatis程序-->配置mybatis(超详细、小白也能成功配置)
第一个mybatis程序-->配置mybatis(超详细、小白也能成功配置)

(2)核心配置文件:连接数据库

注意:需要修改的地方—>配置文件中的mysql账号密码一定要写你自己的。

<?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://localhost:3306/mybatis?useSSL=true&amp;useUnicode=true&amp;characterEncoding=utf8"/>
                <!--自己的mysql的账号密码-->
                <property name="username" value="root"/>
                <property name="password" value="12345678"/>
            </dataSource>
        </environment>
    </environments>
    <!--容易忘记:每写一个Mapper.xml都需要在mybatis核心配置文件里面注册!!!-->
    <mappers>
        <mapper resource="com/zzzl/dao/UserMapper.xml"/>
    </mappers>
</configuration>

(3)编写MyBatis工具类
理解编写该工具类的目的(官方文档解释):每个基于 MyBatis 的应用都是以一个 SqlSessionFactory 的实例为核心的。SqlSessionFactory 的实例可以通过 SqlSessionFactoryBuilder 获得。而 SqlSessionFactoryBuilder 则可以从 XML 配置文件来构建出 SqlSessionFactory 实例。–>有了 SqlSessionFactory,顾名思义,我们可以从中获得 SqlSession 的实例。(SqlSession 提供了在数据库执行 SQL 命令所需的所有方法。你可以通过 SqlSession 实例来直接执行已映射的 SQL 语句)。
main–>java–>创建utils包–>创建MybatisUtils工具类
第一个mybatis程序-->配置mybatis(超详细、小白也能成功配置)

public class MybatisUtils {
    private static SqlSessionFactory sqlSessionFactory;

    static {
        try {
            //读取配置文件,new获取sqlSessionFactory对象。
            String resource = "mybatis-config.xml";
            InputStream inputStream = Resources.getResourceAsStream(resource);
            sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    //获取SqlSession连接
    //既然有了 SqlSessionFactory,顾名思义,我们可以从中获得 SqlSession 的实例。
    // SqlSession 提供了在数据库执行 SQL 命令所需的所有方法。你可以通过 SqlSession 实例来直接执行已映射的 SQL 语句。
    public static SqlSession getSqlSession(){
        return sqlSessionFactory.openSession();
    }
}

3、编写代码
文件夹如下:
第一个mybatis程序-->配置mybatis(超详细、小白也能成功配置)
(1)实体类User(为数据库中的变量封装–> 构造,有参,无参、set/get、toString() )

在这里插入代码片public class User {
    //变量名要和数据库中创建的一样
    private int id;
    private String name;
    private String pwd;

    public User(){

    }
    public User(int id, String name, String pwd) {
        this.id = id;
        this.name = name;
        this.pwd = pwd;
    }

    public int getId() {
        return id;
    }

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

    public String getName() {
        return name;
    }

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

    public String getPwd() {
        return pwd;
    }

    public void setPwd(String pwd) {
        this.pwd = pwd;
    }

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

(2)Dao文件夹下–> 编写UserMapper接口类

public interface UserMapper {
    List<User> selectUser();
}

(3)编写UserMapper.xml配置文件(文件夹中没有UserMapper接口类的实现类,这里的UserMapper.xml就充当了UserMapper实现类的作用。因为我们是用了mybatis框架,所以我们可以直接在配置文件中写SQL语句。)
注意:需要修改的地方—>配置文件中的namespace、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">
<!--namespace:绑定一个对应的的接口 id:对应接口里面的方法名字。resultType:返回一个结果(结果是User类型的)。-->
<mapper namespace="com.zzzl.dao.UserMapper">
    <select id="selectUser" resultType="com.zzzl.pojo.User">
        select * from user
    </select>
</mapper>

特别注意:每写一个Mapper.xml都需要在mybatis核心配置文件mybatis-config.xml里面注册!(文章最前面展示的mybatis-config.xml配置文件中已经添加了的,这里不需要再添加一次,只是提醒⏰^_ ^)第一个mybatis程序-->配置mybatis(超详细、小白也能成功配置)4、测试
创建测试文件
第一个mybatis程序-->配置mybatis(超详细、小白也能成功配置)

public class test {
    @Test
    public void test() {
        //获取SqlSession对象。
        SqlSession session = MybatisUtils.getSqlSession();
        //方法一:获取getMapper实现接口,并调用该对象的方法(这个方法在配置文件中配置了的,相当于该方法的实现)
        UserMapper mapper = session.getMapper(UserMapper.class);
        List<User> users = mapper.selectUser();
//        System.out.println(users); 一个集合
        for (User user: users){
            System.out.println(user);
        }
        session.close();
    }
}

总结:是不是觉得配置mybatis太麻烦不如直接写JDBC语句?但是配置完一次后面就方便很多了。祝你学习愉快。

上一篇:云计算——实验二 Docker实验-mysql、tomcat、sqlserver、redis、oracle、mongo安装


下一篇:Linux基础命令之pwd(3)