错误原因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版权协议,转载请附上原文出处链接和本声明。