学习日常-Springboot整合Mybatis

新手springboot整合mybatis案例

开发工具:IDEA

数据库:
学习日常-Springboot整合Mybatis_第1张图片

实体类:

package com.example.springboot.demo01.Bean;


import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

@Data
@NoArgsConstructor
@AllArgsConstructor
public class Person {
    private int id;
    private String username;
    private String password;

}

Mapper接口

package com.example.springboot.demo01.Dao;


import com.example.springboot.demo01.Bean.Person;
import org.apache.ibatis.annotations.Mapper;


import java.util.List;

@Mapper
public interface PersonMapper {


    // 查询所有用户
    List<Person> findPersonAll();
}

Mapper.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.example.springboot.demo01.Dao.PersonMapper">
    <select id="findPersonAll"
            resultType="com.example.springboot.demo01.Bean.Person">
        select * from ssm.users
        </select>
</mapper>

Service

package com.example.springboot.demo01.Service;


import com.example.springboot.demo01.Bean.Person;

import java.util.List;


public interface PersonService {

    // 查询所有用户
    List<Person> findPersonAll();
}

Service实现类

package com.example.springboot.demo01.Service.Impl;

import com.example.springboot.demo01.Bean.Person;
import com.example.springboot.demo01.Dao.PersonMapper;
import com.example.springboot.demo01.Service.PersonService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class PersonServiceImpl implements PersonService {

    @Autowired
    private PersonMapper mapper;

    @Override
    public List<Person> findPersonAll() {
        return mapper.findPersonAll();
    }
}

控制层

package com.example.springboot.demo01.Controller;


import com.example.springboot.demo01.Bean.Person;
import com.example.springboot.demo01.Bean.Users;

import com.example.springboot.demo01.Service.PersonService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

@Controller
public class UserController {


    @Autowired
    private PersonService personService;

    //SpringBoot集成mybatis
    @GetMapping("/find")
    @ResponseBody
    public Object Mybatis() {
        System.out.println("测试");
        return personService.findPersonAll();
    }


    

全局配置文件



spring.datasource.druid.url=jdbc:mysql://localhost:3306/ssm?useUnicode=true&amp;characterEncoding=utf-8
spring.datasource.druid.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.druid.username=root
spring.datasource.druid.password=123456

spring.datasource.druid.initial-size=1

spring.datasource.druid.min-idle=1

spring.datasource.druid.max-active=20

#指定mybatis中bean的位置
mybatis-plus.type-aliases-package=com.example.springboot.demo01.Bean


#加载指定目录下的xml文件
mybatis.mapper-locations=classpath:Mappers/*.xml

#加载pojo实体类的位置
mybatis.type-aliases-package=com.example.springboot.demo01.Bean




spring.thymeleaf.prefix=classpath:/templates/

spring.thymeleaf.suffix=.html
spring.thymeleaf.encoding=utf-8

spring.thymeleaf.cache=true
spring.thymeleaf.mode=HTML5




pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.2.7.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.example</groupId>
    <artifactId>springboot-demo01</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>springboot-demo01</name>
    <description>Demo project for Spring Boot</description>

    <properties>
        <java.version>14</java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <!--druid支持-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <version>1.1.17</version>
        </dependency>

        <!--热部署-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <optional>true</optional>
        </dependency>


        <!--引入springboot内嵌tomcat对jsp的解析,不添加解析不了jsp-->
        <dependency>
            <groupId>org.apache.tomcat.embed</groupId>
            <artifactId>tomcat-embed-jasper</artifactId>
        </dependency>


        <!--Starter依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-autoconfigure</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-configuration-processor</artifactId>
        </dependency>

        <!--mysql支持-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.47</version>
        </dependency>


        <!--swagger-->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>2.9.2</version>
        </dependency>
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>2.9.2</version>
        </dependency>


        <!--多数据源配置-->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>dynamic-datasource-spring-boot-starter</artifactId>
            <version>3.0.0</version>
        </dependency>

        <!--导入配置文件依赖,以后配置文件注入就有提示-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-configuration-processor</artifactId>
            <optional>true</optional>
        </dependency>

      <!--thymeleaf依赖;-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>
      <!--  &lt;!&ndash;mybatis-plus 依赖&ndash;&gt;
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.3.0</version>
        </dependency>-->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>1.3.2</version>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.junit.vintage</groupId>
                    <artifactId>junit-vintage-engine</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-test</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-test</artifactId>
        </dependency>
        <dependency>
            <groupId>org.testng</groupId>
            <artifactId>testng</artifactId>
            <version>7.0.0</version>
            <scope>compile</scope>
        </dependency>
    </dependencies>


    <build>
        <resources>
            <resource>
                <!--源文件夹-->
                <directory>src/main/webapp</directory>
                <!--指定编译到META-INF/resources-->
                <targetPath>META-INF/resources</targetPath>
                <includes>
                    <include>**/*.*
                
            
        
        
            
                
                org.springframework.boot
                spring-boot-maven-plugin
                
                
                    true
                
            
        
    



运行结果:
在这里插入图片描述

遇到的问题:

遇到了一个500异常:
Invalid bound statement (not found): com.example.springboot.demo01.Dao.PersonMapper.findPersonAll,绑定异常

Mapper接口的方法名和xm映射文件id是对应的,但还是出错了

解决方法:

学习日常-Springboot整合Mybatis_第2张图片
由于之前自己练习Mybatis-plus项目的时候,下的一个jar包,然后导致了项目的异常,删除mybatis-plus依赖就行了

你可能感兴趣的:(日常,Mybatis,学习)