• springboot 整合mybatis,pagehelper。测试类。


    报名立减200元。暑假直降6888。

    遇到的异常。

    1.这是在使用mybatis成功连接数据库后,通过service层调用dao层出现的异常。

    异常原因:在启动类上面的注解@MapperScan没有指定到dao层的包名上。

    错误写法:

    import org.mybatis.spring.annotation.MapperScan;
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    
    @SpringBootApplication
    //开启通用注解扫描
    @MapperScan(basePackages = {"com.chenxin.springboot_0702"})  //因为这里没有指定到dao层的包名上,所以报错 invalid bound statement (not found).
    @EnableAutoConfiguration
    public class Run {
    
        public static void main(String[] args) {
            SpringApplication.run(Run.class, args);
        }
    }

    正确写法:

    @SpringBootApplication
    //开启通用注解扫描
    @MapperScan(basePackages = {"com.chenxin.springboot_0702.dao"})  //指定到dao层的包名。
    @EnableAutoConfiguration
    public class Run {
    
        public static void main(String[] args) {
            SpringApplication.run(Run.class, args);
        }
    }

    2、定义了相同的Controller类名。是之前学习时,添加的类。

    3、单元测试是更新到相同记录。

    4、使用pagehelper时,浏览器测试路径没有传参。

    正确写法:http://localhost:8080/getAll?pageNum=1&pageSize=5。参数名要和方法参数名相同。

    *****************************************异常就这些了。***************************************************

    正题代码:

    接口中分页查询的方法:

    import com.chenxin.springboot_0702.model.User;
    import java.util.List;
    
    public interface UserService {
    
        //分页查询方法
        public List<User> find(int pageNum, int pageSize) throws Exception;
    
        //查询
        public List<User> findAll() throws Exception;
    
        public User findById(long id) throws Exception;
    
        public List<User> findByPhone(String phone) throws Exception;
    
        //新增
        public long save(User user) throws Exception;
    
        //删除
        public boolean delete(long id) throws Exception;
    
        //更新
        public boolean update(User user) throws Exception;
    }

    实现类的方法:

    import com.chenxin.springboot_0702.dao.UserMapper;
    import com.chenxin.springboot_0702.model.User;
    import com.chenxin.springboot_0702.service.UserService;
    import org.springframework.stereotype.Service;
    import com.github.pagehelper.PageHelper;
    
    import javax.annotation.Resource;
    import java.util.List;
    
    @Service
    public class UserServiceImpl implements UserService {
    
        @Resource
        UserMapper userMapper;
    @Override
    public List<User> find(int pageNum, int pageSize) throws Exception { //分页查询:查询第一页,每页10行。 PageHelper.startPage(pageNum, pageSize); List<User> users =userMapper.findAll(); return users; } //查询 @Override public List<User> findAll() throws Exception { return userMapper.findAll(); } @Override public User findById(long id) throws Exception { return userMapper.findById(id); } @Override public List<User> findByPhone(String phone) throws Exception { return userMapper.findByPhone(phone); } //新增 @Override public long save(User user) throws Exception { userMapper.save(user); return user.getId(); } //删除 @Override public boolean delete(long id) throws Exception { return userMapper.delete(id); } //更新 @Override public boolean update(User user) throws Exception { return userMapper.update(user); } }

    controller调用:

    import com.chenxin.springboot_0702.model.User;
    import com.chenxin.springboot_0702.service.UserService;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    import java.util.List;
    
    @RestController
    public class HelloController2 {
    
        @Autowired
        private UserService userService;
    
        @RequestMapping("/getAll")
        public List<User> getAll(int pageNum, int pageSize) throws Exception{
            return userService.find(pageNum,pageSize);
        }
    }

    启动类:

    package com.chenxin.springboot_0702;
    
    import org.mybatis.spring.annotation.MapperScan;
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    
    @SpringBootApplication
    //开启通用注解扫描
    @MapperScan(basePackages = {"com.chenxin.springboot_0702.dao"})
    @EnableAutoConfiguration
    public class Run {
    
        public static void main(String[] args) {
            SpringApplication.run(Run.class, args);
        }
    }

    配置文件application.properties:

    #数据库访问配置
    #主数据源
    #配置mysql的连接配置
    spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
    spring.datasource.url=jdbc:mysql://localhost:3306/testx?useSSL=false
    spring.datasource.username=root
    spring.datasource.password=123
    spring.datasource.driver-class-name=com.mysql.jdbc.Driver
    
    #连接池设置
    #初始化大小,最大,最小值
    spring.datasource.initialize=true
    spring.datasource.tomcat.min-idle=5
    spring.datasource.tomcat.max-active=20
    spring.datasource.tomcat.max-wait=60000
    
    logging.level.com.chenxin.springboot_0702.Run=debug
    logging.path=logs
    
    pagehelper.helper-dialect=mysql
    pagehelper.reasonable=true
    pagehelper.support-methods-arguments=true

    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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
    
        <groupId>com.chenxin</groupId>
        <artifactId>springboot_0702</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <packaging>jar</packaging>
    
        <name>springboot_0702</name>
        <description>Demo project for Spring Boot</description>
    
        <parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>1.5.9.RELEASE</version>
            <relativePath/> <!-- lookup parent from repository -->
        </parent>
    
        <properties>
            <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
            <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
            <java.version>1.8</java.version>
        </properties>
    
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
            </dependency>
    
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-thymeleaf</artifactId>
            </dependency>
    
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-test</artifactId>
                <scope>test</scope>
            </dependency>
            <!--junit不需要springboot已经自动加载了。-->
            <!--spring-boot-starter-jdbc已经包含在了mybatis-spring-boot-starter中了。-->
    
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
            </dependency>
            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>druid</artifactId>
                <version>1.0.5</version>
            </dependency>
    
            <!--引入mybatis-->
            <dependency>
                <groupId>org.mybatis.spring.boot</groupId>
                <artifactId>mybatis-spring-boot-starter</artifactId>
                <version>1.3.0</version>
            </dependency>
            <!--mybatis分页插件-->
            <!-- https://mvnrepository.com/artifact/com.github.pagehelper/pagehelper-spring-boot-starter -->
            <dependency>
                <groupId>com.github.pagehelper</groupId>
                <artifactId>pagehelper-spring-boot-starter</artifactId>
                <version>1.1.1</version>
            </dependency>
    
        </dependencies>
    
        <build>
            <plugins>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                </plugin>
            </plugins>
        </build>
    
    
    </project>

    好了结束了。最后运行启动类。

    浏览器:http://localhost:8080/getAll?pageNum=1&pageSize=5

    运行结果:

    报名立减200元。暑假直降6888。

    邀请链接:http://www.jnshu.com/login/1/20535344

    邀请码:20535344

  • 相关阅读:
    IOS系统设置页面跳转
    android常用自动化测试框架
    Gradle学习总结
    软件开发版本管理阶段描述
    Swift学习笔记(10):类和结构体
    Swift学习笔记(9):枚举
    Swift学习笔记(8):闭包
    Swift学习笔记(7):函数
    Swift学习笔记(6):控制流
    JSON序列化器/解析器
  • 原文地址:https://www.cnblogs.com/JasonChen92/p/9266206.html
Copyright © 2020-2023  润新知