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

mac2022-06-30  102

0.相关配置

pom.xml

<!--mysql依赖--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> <!--mybatis依赖--> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.3.2</version> </dependency> <!-- 为简化set,get,toString代码引入lombok --> <!-- https://mvnrepository.com/artifact/org.projectlombok/lombok --> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.2</version> <scope>provided</scope> </dependency>

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
/** * 作者:张风捷特烈 * 时间:2018/8/17 0017:8:23 * 邮箱:1981462002@qq.com * 说明:剑的实体类 */ @Data//=@Getter +@Setter public 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
/** * 作者:张风捷特烈 * 时间:2018/8/17 0017:8:41 * 邮箱:1981462002@qq.com * 说明:剑的数据映射类 */ public interface SwordMapper { /** * 查询 * * @param name * @return */ @Select("SELECT*FROM sword WHERE NAME=#{name}") Sword findByName(@Param("name") String name); /** * 添加 * * @param name * @param atk * @param hit * @param crit * @param attr_id * @param type_id * @return */ @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
/** * 作者:张风捷特烈 * 时间:2018/8/17 0017:8:48 * 邮箱:1981462002@qq.com * 说明:服务层 */ @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
/** * 作者:张风捷特烈 * 时间:2018/8/17 0017:8:55 * 邮箱:1981462002@qq.com * 说明:剑的控制层 */ @RestController public 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
@Transactional 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; } Transactional.png
8.分页
8-1:pom.xml
<!-- 分页插件 --> <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper-spring-boot-starter</artifactId> <version>1.2.5</version> </dependency>
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
/** * 查询所有 * * @return */ @Select("SELECT*FROM sword") List<Sword> findALL();
8-4:com.toly1994.toly_mybatis.service.SwordService
/** * 分页查询 * @param page 当前页数 * @param pageSize 每页个数 * @return */ public PageInfo<Sword> findAll(int page,int pageSize) { PageHelper.startPage(page, pageSize);//改写语句实现分页查询 List<Sword> all = mSwordMapper.findALL(); PageInfo<Sword> 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<Sword> findAll(int page, int pageSize) { return mSwordService.findAll(page, pageSize); }
8-6:结果演示:
sword表.png 分页查询.png

转载于:https://www.cnblogs.com/toly-top/p/9781958.html

相关资源:spring-boot-集成mybatis带分页page
最新回复(0)