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 +@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
* 邮箱: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
* 说明:剑的控制层
*/@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