SpringBoot-15-之整合MyBatis-注解篇+分頁
標簽:
SpringBoot
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 * 邮箱:[email protected] * 说明:剑的实体类 */@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
/** * 作者:张风捷特烈 * 时间:2018/8/17 0017:8:41 * 邮箱:[email protected] * 说明:剑的数据映射类 */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 * 邮箱:[email protected] * 说明:服务层 */@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 * 邮箱:[email protected] * 说明:剑的控制层 */@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
<!-- 分页插件 --><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.jianshu.com/p/1837ad437ad4
點擊查看更多內容
為 TA 點贊
評論
評論
共同學習,寫下你的評論
評論加載中...
作者其他優質文章
正在加載中
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦