pom.xml
mysql mysql-connector-javaorg.mybatis.spring.boot mybatis-spring-boot-starter1.3.2 org.projectlombok lombok1.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.SwordMapperpublic 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
8-2:application.ymlcom.github.pagehelper pagehelper-spring-boot-starter1.2.5
pagehelper: helper-dialect: mysql reasonable: true support-methods-arguments: true params: count==countSql page-size-zero: true8-3:com.toly1994.toly_mybatis.mapper.SwordMapper
@Select("SELECT*FROM sword") List findALL(); 8-4:com.toly1994.toly_mybatis.service.SwordServicepublic PageInfo8-5:com.toly1994.toly_mybatis.controller.SwordControllerfindAll(int page,int pageSize) { PageHelper.startPage(page, pageSize);//改写语句实现分页查询 List all = mSwordMapper.findALL(); PageInfo info = new PageInfo<>(all); return info; }
//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



