Springboot整合mybatis,以及使用PageHelper插件

1.springboot整合mabatis步骤。
第一步:新建一个springboot项目。
第二步:创建数据库表
第三步:添加mybatis依赖(可以自动生成,也可以自动添加)。添加mysql数据库驱动依赖。
原来这个地方如果自动生成,就是你在新建项目的时候,选择的话,就会。
第四步:在配置文件中进行编写连接数据库配置,以及启动项目端口(一般会自动生成),可以是properties或者yml类型。用yml比较清晰明了,它相当于一个树。
这个地方我配置文件容易犯错。
application.yml格式:
server:
port: 8080

spring:
datasource:
username: root
password: 123
url: jdbc:mysql://localhost:3306/how2java?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=UTC
driver-class-name: com.mysql.jdbc.Driver

mybatis:
mapper-locations: classpath:mapping/*Mapper.xml
type-aliases-package: com.mabatis.demo.model
第五步:编写实体类。重写toString方法
第六步:新建model,controller,service,mapper包。
第七步:先写mapper接口方法,再写mapper.xml,再写service类,再写controller类。

文件结构:
Springboot整合mybatis,以及使用PageHelper插件_第1张图片 问题总结:
1.一定要把xml里边的namespace给配置对了。
2.一定要注意mapper.xml的位置,然后要记得在yml里边配置好路径,还有启动类里边要加一个扫描包。
3.yml的格式一定要规范,不然可能会识别不了,比如端口号。

springboot整合PageHelper实现分页
PageHelper是mybatis的分页插件。
第一步:添加依赖
第二步:在application.yml中添加分页插件有关的配置
第三步:在mapper层添加一个分页查找方法,在mapper.xml里边添加sql语句。在service层里添加方法。有一个service接口和一个impl实现类。在controller里边定义方法。
第四步:在浏览器端输入请求地址,传入参数,可得到结果。
遇到的错误:
1.查询前,忘记给表格添加数据。
2.在service的实现类里忘记注入mapper。
3.在controller方法参数里边加入@RequestParam注解,一直报找不到资源。
分析一下
@PathVariable
作用:可以将 URL 中占位符参数绑定到控制器处理方法的入参中。
1、若方法参数名称和需要绑定的url中变量名称一致时,可以简写:

@RequestMapping("/getUser/{name}")
    public User getUser(@PathVariable String name){
        return userService.selectUser(name);
    }

2、若方法参数名称和需要绑定的url中变量名称不一致时,写成:

@RequestMapping("/getUserById/{name}")
    public User getUser(@PathVariable("name") String userName){
        return userService.selectUser(userName);
    }

传值方式
Springboot整合mybatis,以及使用PageHelper插件_第2张图片
@RequestParam
传参
Springboot整合mybatis,以及使用PageHelper插件_第3张图片
比如,多个用户的微博首页不同,但都是访问微博首页。没必要为每个用户写一个@RequestMapping注解的方法。
@RequestMapping可以通过{}来实现访问不同用户主页。
@PathVariable可以获取url中的具体值。
当定义多个url变量时。

@RequestMapping(value = "/user/{username}/blog/{blogId}")
    public String getUserBlog(@PathVariable String username, @PathVariable int blogId) {
    	return "user:" + username + "blog->" + blogId;
}

两者区别
使用场景:
1、当URL指向的是某一具体业务资源(或资源列表),例如博客,用户时,使用@PathVariable
2、当URL需要对资源或者资源列表进行过滤,筛选时,用@RequestParam
@RequestParam变量,如果访问的URL中不带有相应的参数,就会抛出异常。
3.@RequestParam是从request里边拿值。而@PathVariable是用一个URI模板填充。
关于xxxMapper.xml放的位置不同,需要添加的配置。
1.xml放到resource下边。
在application.yml里边进行的配置
mybatis:
mapper-locations: classpath:mapping/*Mapper.xml
type-aliases-package: com.mabatis.demo.model

2.xml文件放到src下边。
在eclipse中是没有问题的。但是在idea中就不行。
此时需要进行在pom.xml的build节点中加入

<resources>
           <resource>
                <directory>src/main/java</directory>
                <includes><include>**/*.xml
                true
            
        

Springboot整合mybatis,以及使用PageHelper插件_第4张图片

你可能感兴趣的:(spring整合mybatis)