栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java > SpringBoot

SpringBoot-15-之整合MyBatis-注解篇+分页

SpringBoot 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SpringBoot-15-之整合MyBatis-注解篇+分页

0.相关配置

pom.xml


    mysql
    mysql-connector-java
        
    org.mybatis.spring.boot
    mybatis-spring-boot-starter
    1.3.2
    org.projectlombok
    lombok
    1.18.2
    provided

application.yml

spring:
    datasource:
      url: jdbc:mysql://localhost:3306/zoom?useSSL=true&useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true
      username: root      password: root
      driver-class-name: com.mysql.jdbc.Driver
使用的表

sword.png


1.剑的实体类:com.toly1994.toly_mybatis.entity.Sword
@Data//=@Getter +@Setterpublic class Sword {    private Integer id;    private String name;    private Integer atk;    private Integer hit;    private Integer crit;    private Integer attr_id;    private Integer type_id;
}
2.剑的数据映射类:com.toly1994.toly_mybatis.mapper.SwordMapper
public interface SwordMapper {    
    @Select("SELECT*FROM sword WHERe NAME=#{name}")    Sword findByName(@Param("name") String name);    
    @Select("INSERT sword VALUES(DEFAULT,#{name},#{atk},#{hit},#{crit},#{attr_id},#{type_id})")    void insert(@Param("name") String name,
                @Param("atk") Integer atk,
                @Param("hit") Integer hit,
                @Param("crit") Integer crit,
                @Param("attr_id") Integer attr_id,
                @Param("type_id") Integer type_id
    );
}
3.服务层:com.toly1994.toly_mybatis.service.SwordService
@Service//坑点1别忘加Service注解public class SwordService {    @Autowired
    private SwordMapper mSwordMapper;    public void insertSword(String name, Integer atk,
                            Integer hit,
                            Integer crit,
                            Integer attr_id,
                            Integer type_id) {
        mSwordMapper.insert(name, atk, hit, crit, attr_id, type_id);
    }    public Sword findByName(String name) {        return mSwordMapper.findByName(name);
    }
}
4.剑的控制层:com.toly1994.toly_mybatis.controller.SwordController
@RestControllerpublic class SwordController {    @Autowired
    private SwordService mSwordService;    @GetMapping("/insert")    public String insertSword(String name, Integer atk,
                              Integer hit,
                              Integer crit,
                              Integer attr_id,
                              Integer type_id) {

        mSwordService.insertSword(name, atk, hit, crit, attr_id, type_id);        return "OK";
    }    @GetMapping("/findByName")    public Sword findByName(String name) {        return mSwordService.findByName(name);
    }
}
5.启动类:com.toly1994.toly_mybatis.TolyMybatisApplication
@SpringBootApplication//坑点2,别忘了扫包@MapperScan(basePackages = {"com.toly1994.toly_mybatis.mapper"})public class TolyMybatisApplication {    public static void main(String[] args) {
        SpringApplication.run(TolyMybatisApplication.class, args);
    }
}
6.结果
插入接口:
http://localhost:8080/insert?name=赤凰&atk=3000&hit=100&crit=5&attr_id=1&type_id=2查询接口:
http://localhost:8080/findByName?name=赤凰

mybatis测试.png


7.事务故意造异常:com.toly1994.toly_mybatis.service.SwordService#insertSword
public void insertSword(String name, Integer atk,
                        Integer hit,
                        Integer crit,
                        Integer attr_id,
                        Integer type_id) {
    mSwordMapper.insert(name, atk, hit, crit, attr_id, type_id);    int i = 1 / atk;//异常处}
http://localhost:8080/insert?name=赤凰&atk=0&hit=100&crit=5&attr_id=1&type_id=2

no_transactional.png

使用事务:com.toly1994.toly_mybatis.service.SwordService#insertSword
@Transactionalpublic void insertSword(String name, Integer atk,
                        Integer hit,
                        Integer crit,
                        Integer attr_id,
                        Integer type_id) {
    mSwordMapper.insert(name, atk, hit, crit, attr_id, type_id);    int i = 1 / atk;
}

Transactional.png


8.分页8-1:pom.xml

    com.github.pagehelper
    pagehelper-spring-boot-starter
    1.2.5
8-2:application.yml
pagehelper:
  helper-dialect: mysql
  reasonable: true
  support-methods-arguments: true
  params: count==countSql
  page-size-zero: true
8-3:com.toly1994.toly_mybatis.mapper.SwordMapper
    
    @Select("SELECT*FROM sword")    List findALL();
8-4:com.toly1994.toly_mybatis.service.SwordService
    
    public PageInfo findAll(int page,int pageSize) {
        PageHelper.startPage(page, pageSize);//改写语句实现分页查询
        List all = mSwordMapper.findALL();
        PageInfo info = new PageInfo<>(all);        return info;
    }
8-5:com.toly1994.toly_mybatis.controller.SwordController
    //http://localhost:8080/findAllByPage?page=1&pageSize=3
    @GetMapping("/findAllByPage")    public PageInfo findAll(int page, int pageSize) {        return mSwordService.findAll(page, pageSize);
    }
8-6:结果演示:

sword表.png

分页查询.png



作者:张风捷特烈
链接:https://www.jianshu.com/p/1837ad437ad4


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/235152.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号