首页 > 其他分享 >SpringBoot整合mybatis

SpringBoot整合mybatis

时间:2022-08-29 00:25:08浏览次数:67  
标签:SpringBoot spring boot user 整合 mybatis id User

9、SpringBoot整合mybatis

MyBatis-Spring-Boot-Starter官方文档:http://mybatis.org/spring-boot-starter/mybatis-spring-boot-autoconfigure/

maven仓库:https://mvnrepository.com/artifact/org.mybatis.spring.boot/mybatis-spring-boot-starter

依赖导入

1、导入 MyBatis 所需要的依赖

<!-- mybatis整合springboot -->
<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>2.2.2</version>
</dependency>

2.、其他用到的依赖

pom.xml

<!-- web(web项目必须要的依赖,不然启动的就不是web项目) -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- mysql(数据库连接依赖) -->
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <scope>runtime</scope>
</dependency>
<!-- jdbc(mybatis-spring-boot-starter下存在这个包,可以不用导入) -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<!-- lombok(简化实体类) -->
<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
</dependency>
<!-- test(springboot自带依赖) -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-test</artifactId>
    <scope>test</scope>
</dependency>

3、配置数据库连接信息

application.yaml

spring:
  # 配置数据源
  datasource:
    username: root # 用户名
    password: 123456 # 密码
    # ?serverTimezone=UTC解决时区的报错
    url: jdbc:mysql://localhost:3306/mybatistest?useSSL=true&useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8
    driver-class-name: com.mysql.cj.jdbc.Driver # mysql驱动,新版用cj

# 整合mybatis
mybatis:
  type-aliases-package: com.yzh.pojo
  mapper-locations: classpath:mybatis/mapper/*Mapper.xml

4、测试数据库是否连接成功!(在测试类中注入DataSource,获取class信息和connection信息)

@SpringBootTest
class Springboot06MybatisApplicationTests {

    @Autowired
    DataSource dataSource;

    @Test
    void contextLoads() throws SQLException {
        System.out.println(dataSource.getClass());
        System.out.println(dataSource.getConnection());
    }

}

5、创建实体类,导入 Lombok!(使用Lombok必须导入依赖和配置插件)

User.java

@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {
    private Integer id; // ID
    private String name; // 用户名
    private String pwd; // 密码
}

6、创建mapper目录以及对应的 Mapper 接口

//@Mapper // 该注解表示这是 mybatis 的 mapper 类,也可以去主方法配置@MapperScan包扫描

//@Component // @Component 和 @Repository任选一个,都是注册作用,@Component更万能
@Repository //(可以不导入,但是使用@Autowired注入的时候可能不能被识别)
public interface UserMapper {

    List<User> queryUserList();

    User queryUserById(Integer id);

    int addUser(User user);

    int updateUser(User user);

    int deleteUser(Integer id);
    
}

7、对应的Mapper映射文件(放在了resource下的mybatis/mapper目录下)

UserMapper.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="com.yzh.mapper.UserMapper">
    <select id="queryUserList" resultType="User">
        select * from mybatistest.user;
    </select>

    <select id="queryUserById" resultType="User">
        select * from mybatistest.user where id = #{id};
    </select>

    <insert id="addUser" parameterType="User">
        insert into mybatistest.user(id, name, pwd)
        values (#{id}, #{name}, #{pwd});
    </insert>

    <update id="updateUser" parameterType="User">
        update mybatistest.user
        set name = #{name},
            pwd = #{pwd}
        where id = #{id};
    </update>

    <delete id="deleteUser" parameterType="int">
        delete from mybatistest.user where id = #{id};
    </delete>

</mapper>

8、maven配置资源过滤问题(在pom文件的build标签下)

pom.xml

<!-- 资源过滤 -->
<resources>
    <resource>
        <directory>src/main/java</directory>
        <includes>
            <include>**/*.xml</include>
        </includes>
        <filtering>true</filtering>
    </resource>
</resources>

9、编写Controller 进行测试!

UserController.java

@RestController
public class UserController {

    @Autowired
    private UserMapper userMapper;

    @GetMapping("/userlist")
    public List<User> queryUserList(){
        return userMapper.queryUserList();
    }

    @GetMapping("/user/{id}")
    public User queryUserById(@PathVariable("id") Integer id){
        return userMapper.queryUserById(id);
    }

    @GetMapping("/adduser")
    public String addUser(){
        User user = new User(6,"admin4","111");
        userMapper.addUser(user);
        return "addok";
    }

    @GetMapping("/updateuser/{id}")
    public String updateUser(){
        User user = new User(6,"admin","000");
        userMapper.updateUser(user);
        return "updateok";
    }

    @GetMapping("delete/{id}")
    public String deleteUser(@PathVariable("id") Integer id){
        userMapper.deleteUser(id);
        return "deleteok";
    }

}

10、启动项目访问进行测试!

localhost:8080/下的各个方法依次测试。

至此,springboot整合mybatis 并且进行增删改查操作就全部结束了。

END

标签:SpringBoot,spring,boot,user,整合,mybatis,id,User
From: https://www.cnblogs.com/lyluoye/p/16634538.html

相关文章

  • mybatis中的动态sql
    动态sql是:根据不同的查询条件,生成不同的查询结果常用的动态语句包括:-if-choose(when,otherwise)-trim(where,set)-foreachif语句<!--需求1:根据作者......
  • Swagger2—整合SpringBoot
    一、Swagger用于生成服务器接口的规范文档的工具,并且能够对接口进行测试的工具1.1作用生成接口说明文档对接口进行测试1.2整合添加依赖(Swagger2、SwaggerUI)......
  • 4.Springboot多配置
    2.Profile2.1Profile多文件我们在主配置文件编写的时候,文件名可以是application-{profifile}.properties/yml默认使用application.properties的配置;2.2yml支持多文......
  • 5.Springboot离线新建环境
    1.新建Maven项目2.pom文件导入org.springframework.bootspring-boot-starter-parent2.7.2org.springframework.bootspring-boot-starter-web<dependency>......
  • Mybatis中多对一与一对多
    多对一的处理在pojo中就有StudentprivateStringname;privateStringid;privateTeacherteacher;比如说多个学生对应着一个老师这样我们就要使用多表查询了方......
  • mybatis报错UnsupportedOperationException
    1:问题描述mapper文件定义   xml写法   运行则报错Causedby:org.apache.ibatis.exceptions.PersistenceException:###Errorqueryingdatabase.Cau......
  • 如何获取Mybatis
    1.maven仓库<!--https://mvnrepository.com/artifact/org.mybatis/mybatis--><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId>......
  • 什么是 MyBatis?
    1.MyBatis是一款优秀的持久层框架2.它支持自定义SQL、存储过程以及高级映射。MyBatis免除了几乎所有的JDBC代码以及设置参数和获取结果集的工作。MyBatis可以通过简......
  • 【SpringBoot】整合Shiro
    1.什么是Shiro?ApacheShiro是一个java的安全权限框架。Shiro是可以非常容易得开发出足够好的应用,其不仅可以用在JavaSE环境,也可以用在JavaEE环境。Shiro可以完成,认......
  • MyBatis-特殊SQL的执行
    1. 通过用户名模糊查询用户信息SpecialSQLMapper.javapublicinterfaceSpecialSQLMapper{List<User>getUserByLike(@Param("mohu")Stringmohu);}SpecialSQ......