Mybatis-初学者1

1. Mybatis框架部署

1.1创建maven项目

1.2 在项目中添加mybatis依赖

https://mvnrepository.com/
在pom.xml中添加依赖
把别人的包导入进来,就可以使用别人包里面的类了

<dependencies>
    <!-- Mybatis核心 -->
    <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis</artifactId>
        <version>3.5.7</version>
    </dependency>
    
    <!-- MySQL驱动 -->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.3</version>
    </dependency>
</dependencies>

刷新一下,第一个Mybatis-初学者1

1.3 创建MyBatis的核心配置文件

习惯上命名为mybatis-config.xml,这个文件名仅仅只是建议,并非强制要求。将来整合Spring
之后,这个配置文件可以省略,所以大家操作时可以直接复制、粘贴。
核心配置文件主要用于配置连接数据库的环境以及MyBatis的全局配置信息

制作模板,这样以后就可以直接激活模板

<?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>
    <mappers>
        <mapper resource="org/mybatis/example/BlogMapper.xml"/>
    </mappers>
</configuration>

Mybatis-初学者1

  1. 在resources中创建此xml
  2. 在mybatis-config.xml文件配置数据库连接信息
    Mybatis-初学者1

2.Mybatis框架使用

2.1创建数据表

记得在你对应的数据库(不要弄错了名字)创建表

create table tb_students(
	sid int primary key auto_increment,
    stu_num char(5) not null unique,
    stu_name varchar(20) not null,
    stu_gender char(2) not null,
    stu_age int not null
);

Mybatis-初学者1

2.2创建实体类student.java

创建必备的两个文件。在pojo文件下,建造student类,信息与数据库表中信息一致
Mybatis-初学者1

导入lombok依赖,简化我们操作(记得把插件也装了)
@Getter / @Setter
这个不用多说了吧

@ToString
帮助生成toString,还有一些细节参数可供设置

@EqualsAndHashCode
帮助重写equals和hashCode

@NoArgsConstructor / @RequiredArgsConstructor / @AllArgsConstructor
帮助生成构造函数

@Data
生成@ToString @EqualsAndHashCode @Getter @RequiredArgsConstructor以及非final字段的@Setter

Mybatis-初学者1
不用的话就要自己一个个生成实现方法

2.3 创建DAO接口,定义操作方法

Mybatis-初学者1

2.4创建DAO接口的映射文件

  1. 在resources目录下,新建名为mappers的文件夹
  2. 在mappers中新建名为StudentMapper的xml映射文件(根据模板创建)

第一次可以点这个,然后复制粘贴
Mybatis-初学者1
也可以直接new 模板
Mybatis-初学者1

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

</mapper>

mapper文件相当于DAO接口的实现类,namespace属性指定实现DAO接口的全限定名(报名+类名)
Mybatis-初学者1
使用mybatisX插件即可直接alt+enter接口中的方法,xml就会出现对应的映射
Mybatis-初学者1
Mybatis-初学者1
然后在里面填入sql语句
Mybatis-初学者1

2.5 将映射文件配置到主配置文件(mybatis-config)

映射文件写完后,是需要添加到主配置文件的都在同一个包下,复制到mappers的source里面
Mybatis-初学者1

3.单元测试

3.1添加单元测试依赖

    <!-- junit测试 -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>

3.2 创建单元测试类

Mybatis-初学者1
Mybatis-初学者1
测试类
Mybatis-初学者1

package com.can.dao;

import com.can.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 org.junit.Test;

import java.io.IOException;
import java.io.InputStream;

/**
 * @author: 14995
 * @date: 2022/2/27 22:24
 * @description:
 */
public class studentDAOTest {

    @Test
    public void insertStudent() {
        try {
            //加载mybatis配置文件
            InputStream is = Resources.getResourceAsStream("mybatis-config.xml");
            //创建builder
            SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
            //会话工厂,连接工厂
            SqlSessionFactory factory = builder.build(is);
            //sqlsession 代表数据库的连接,也代表数据库的连接对象
            //会话(连接)
            SqlSession sqlSession = factory.openSession();
            StudentDAO studentDAO = sqlSession.getMapper(StudentDAO.class);
//            System.out.println(studentDAO);
            int i = studentDAO.insertStudent(new Student(0,"10002","java少年","男",24));
            //需要手动提交
            sqlSession.commit();
            System.out.println(i);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    @Test
    public void deleteStudent() {
    }
}

出现的问题

Unknown initial character set index ‘255’ received from server. Initial client character
解决方法

参考:https://www.bilibili.com/video/BV15Q4y1m78a?p=6

上一篇:Spring Cloud Alibaba大型互联网领域多场景最佳实践 亿级流量平台实践-深入掌握Alibaba核心组件原理


下一篇:leetcode : [62. 不同路径](https://leetcode-cn.com/problems/unique-paths/)