使用MybatisX后出现Could not resolve view with name ‘xxx‘ in servlet with name dispatcherServlet错误.

错误原因Mybatis返回结果为json字符串,在Controller层加上@RestCotroller注解即可.

//通过mybatisX返回的类型都是json字符串类型
@RestController

一、Mybatis的创建

1.连接数据库

 

2.连接好数据库后,右键选择要操作的表 选择MybatisX-Generator,Idea会根据已有的数据库创建服务层、服务层实现类、实体和Mapper和resource下的Mapper

3.创建好自动生成的包;

二、Mybatis的分类的使用

0.pom.xml文件的导入(导入mybatisX就不能导入Mybatis)

<?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.6.7</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.example</groupId>
    <artifactId>com_FinalWork_demo</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>FinalWork</name>
    <description>FinalWork</description>
    <properties>
        <java.version>1.8</java.version>
    </properties>

    <!--导jar包-->
    <dependencies>
        <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>
        </dependency>

        <!-- 添加servlet依赖模块 -->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
        </dependency>
        <!-- 添加jstl标签库依赖模块 -->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
        </dependency>
        <!--添加tomcat依赖模块.-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
        </dependency>
        <!-- 使用jsp引擎,springboot内置tomcat没有此依赖 -->
        <dependency>
            <groupId>org.apache.tomcat.embed</groupId>
            <artifactId>tomcat-embed-jasper</artifactId>
        </dependency>
        <!--导包SpringBoot三层框架-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>
<!--        导入mysql包-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.10</version>
            <scope>runtime</scope>
        </dependency>
<!--      mybatisX  -->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.5.1</version>
        </dependency>
<!--        <dependency>-->
<!--            <groupId>org.mybatis.spring.boot</groupId>-->
<!--            <artifactId>mybatis-spring-boot-starter</artifactId>-->
<!--            <version>1.3.2</version>-->
<!--        </dependency>-->

        <!--导入python包-->
        <dependency>
            <groupId>org.python</groupId>
            <artifactId>jython-standalone</artifactId>
            <version>2.7.0</version>

        </dependency>
    </dependencies>


    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

1.Controller层代码;

package com.controller;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.entry.Movie;
import com.service.MovieService;
import com.service.MovieService2;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

import javax.servlet.http.HttpServletRequest;
import java.util.List;

//通过mybatisX返回的类型都是json字符串类型
@RestController
//表明控制层
@Controller
public class MovieController {
    //分页查询
    @RequestMapping("/user/findByPage")
    public List<Movie> findByPage(Integer pageNow, Integer pageSize){
        //第一个参数 (Page对象,页码和条数)
        Page page =new Page(pageNow,pageSize);

        //第二个参数 QueryWrapper查询条件
        QueryWrapper<Movie> queryWrapper = new QueryWrapper<Movie>();
        //模糊查询
        //可以多个同时限制查询
//        queryWrapper.like("name","h");
        //查询年龄为12岁
        //queryWrapper.ge("age",12);
        //查询id从1-5
//        queryWrapper.between("id",1,5);

        //三个参数findByPage有三个参数,queryMapper为查询条件
        Page<Movie> moviePage = movieService.findByPage(page,queryWrapper);
        //获取元素有多少页
        List<Movie> movieList = moviePage.getRecords();

        long pages = moviePage.getPages();
        //总页数会根据pageSize来
        System.out.println("总页数是:"+pages);

        //获取总页数
//        userPage.getPages();

        //分页查询返回的类型
        return movieList;
    }
}

 2.Service层代码

package com.service;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.entry.Movie;

import java.util.List;

// movieService方法是实现分页查询的步骤
/**
* @author hp
* @description 针对表【movie】的数据库操作Service
* @createDate 2022-05-02 20:23:43
*/
public interface MovieService extends IService<Movie> {

    //分页查询的方法
    public Page<Movie> findByPage(Page page, QueryWrapper queryWrapper);
}

 3.ServiceImpl层代码

import org.springframework.stereotype.Service;

/**
* @author hp
* @description 针对表【movie】的数据库操作Service实现
* @createDate 2022-05-02 20:23:43
*/
@Service
public class MovieServiceImpl extends ServiceImpl<MovieMapper, Movie>
implements MovieService{

    @Autowired  //调用外部方法
    private MovieMapper movieMapper;

    @Override
    public Page<Movie> findByPage(Page page, QueryWrapper queryWrapper) {
        Page<Movie> MoviePage = movieMapper.selectPage(page,queryWrapper);
        return MoviePage;
    }
}

4.MovieMapper即resource下的MovieMapper不需要任何代码,MybatisX底层已经封装好了,调用其接口就好了;

package com.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.entry.Movie;
import org.springframework.stereotype.Repository;

/**
* @author hp
* @description 针对表【movie】的数据库操作Mapper
* @createDate 2022-05-02 20:23:43
* @Entity com.entry.Movie
*/
@Repository
public interface MovieMapper extends BaseMapper<Movie> {


}
<?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.mapper.MovieMapper">

    <resultMap id="BaseResultMap" type="com.entry.Movie">
            <result property="movieid" column="movieId" jdbcType="INTEGER"/>
            <result property="title" column="title" jdbcType="VARCHAR"/>
            <result property="genres" column="genres" jdbcType="VARCHAR"/>
            <result property="pictureurl" column="pictureUrl" jdbcType="VARCHAR"/>
    </resultMap>

    <sql id="Base_Column_List">
        movieId,title,genres,
        pictureUrl
    </sql>
</mapper>


版权声明:本文为m0_67976097原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。