1

1.创建项目导入依赖

<!--mybatis-->
<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>2.1.4</version>
</dependency>
<!--mysql-->
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <scope>runtime</scope>
</dependency>

2.配置文件

application.properties配置文件中连接数据库

spring.datasource.url=jdbc:mysql://localhost:3306/tedu_ums?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=Asia/Shanghai
spring.datasource.username=root
spring.datasource.password=root

application.yml配置文件中连接数据库

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/tedu_ums?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=Asia/Shanghai
    username: root
    password: root

3.创建UserMapper接口

在Mybatis01Application启动类所在包下创建子包mapper,并在子包中创建我们的UserMapper接口
目录结构

4.交给spring去管理

把我们的UserMapper交给Spring去管理,通过我们的@Mapper,把我们的接口交给Spring去管理

5.编写sql语句

5.1通过注解方式编写sql

UserMapper接口中写一个抽象方法,并且在方法上通过注解写一个SQL语句

@Mapper
public interface UserMapper {
    @Select("select username from user where id = #{id}")
    String findUsernameById(int id);
}

5.2通过xml方式编写sql

UserMappr.java 接口
@Mapper
public interface UserMapper {
    /**
     * 通过id查找对弈的 User 对象
     * @return
     */
    User findUserById(Integer id);
}
UserMappr.xml 配置文件
<?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="cn.tedu.mybatis01.mapper.UserMapper">
    <select id="findUserById" resultType="cn.tedu.mybatis01.entity.User">
        select * from t_user where id = #{id}
    </select>
</mapper>

application.properties 配置文件

mybatis.mapper-locations=classpath:mapper/*.xml

application.properties 配置文件

mybatis:
  mapper-locations: classpath:mapper/*.xml

6.测试

在test包下创建一个测试类,并且在测试类上必须添加一个@SpringBootTest注解,在测试类中写一个测试方法,测试方法上添加一个@Test注解
注入我们UserMapper对象,并调用我们已经写好的UserMapper里的findUsernameById(int id)方法与 findUserById(int id)

@SpringBootTest
public class UserMapperTests {
     @Autowired
     UserMapper userMapper;
     @Test
     void testFindById(){
            String username = userMapper.findUsernameById(1);
            System.out.println(username);
     }

     @Test
     void testFindUserById(){
            User user = userMapper.findUserById(1);
            System.out.println(user);
     }
}

注意事项

在xml配置文件中写sql语句,namespace所对应的UserMapper.java的全路径名,具体方法对应的sql语句中的id为对应的方法名称

李三岁
51 声望32 粉丝