一、
SpringBoot系列教材 (十四)- 持久层支持 - Springboot中如何运用Mybatis 简单例子
一)在数据库中新增几条记录后,在application.properties中新增数据库链接必须的参数
二)在pom.xml中新增对增加对mysql和mybatis的支持
三)增加一个包:com.how2java.springboot.pojo,然后创建实体类Category。
四)
增加一个包:com.how2java.springboot.mapper,然后创建接口CategoryMapper。
使用注解@Mapper 表示这是一个Mybatis Mapper接口。
使用@Select注解表示调用findAll方法会去执行对应的sql语句。
五)增加一个包:com.how2java.springboot.web,然后创建CategoryController 类。
1. 接受listCategory映射
2. 然后获取所有的分类数据
3. 接着放入Model中
4. 跳转到listCategory.jsp中
return后的“listCategory”不是返回一个字符串,而是返回 listCategory.jsp
六)在main下新建webapp->WEB-INF->jsp文件夹,在jsp下新建.listCategory.jsp
用jstl遍历从CategoryController 传递过来的集合:cs
七) 因为在pom.xml中增加了jar包的依赖,所以仅仅通过Springboot本身的热部署是无法起作用的,得手动重启一下。
需要重启eclipse后,运行Application.java,再访问测试地址
Application.java中,其注解 @SpringBootApplication 表示这是一个SpringBoot应用,运行其主方法就会启动tomcat,默认端口是8080
二、
SpringBoot系列教材 (十五)- 持久层支持 - Mybatis-xml方式
一)取消CategoryMapper中的注解
二)在Mapper类旁边,新增加Category.xml文件,里面就是放的这个取消的注解sql语句(主要区别于一的地方)
三)修改application.properties, 指明从哪里去找xml配置文件,同时指定别名
其中resultType=“User”中,User就是自定义的POJO,此时可以使用完全限定名来指定这些POJO的引用,例如:
1
<
select
id
=
"findByName"
resultType
="com.how2java.springboot.pojo">
第二种方法就是使用mybatis.type-aliases-package来指定POJO扫描包来让mybatis自动扫描到自定义的POJO。
在application.propertites配置文件中配置如下信息:
mybatis.type-aliases-package=com.how2java.springboot.pojo
四)重启后访问http://127.0.0.1:8080/listCategory
(也可以不重启,因为是自动重载的)
三、 增删查改操作
SpringBoot系列教材 (十七)- CRUD+分页 - Springboot使用Mybatis实现完整的 增删改查 CRUD和分页
使用Mybatis来做一个完整的CRUD和分页。 其中分页使用Mybatis 里讲解的PageHelper插件。
一)在pom.xml中增加对PageHelper的支持
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>4.1.6</version>
</dependency>
二)注解@Configuration 表示PageHelperConfig 这个类是用来做配置的。
注解@Bean 表示启动PageHelper这个拦截器。
新增加一个包 com.how2java.springboot.config, 然后添加一个类PageHelperConfig ,其中进行PageHelper相关配置。
offsetAsPageNum:设置为true时,会将RowBounds第一个参数offset当成pageNum页码使用.
p.setProperty("offsetAsPageNum", "true");
rowBoundsWithCount:设置为true时,使用RowBounds分页会进行count查询.
p.setProperty("rowBoundsWithCount", "true");
reasonable:启用合理化时,如果pageNum<1会查询第一页,如果pageNum>pages会查询最后一页。
p.setProperty("reasonable", "true");
三)修改CategoryMapper,增加CRUD方法的支持。 其实就是调用不同的SQL语句。
四)为CategoryController添加: 增加、删除、获取、修改映射
@RequestMapping("/addCategory")
public String listCategory(Category c) throws Exception {
categoryMapper.save(c);
return "redirect:listCategory";
}
@RequestMapping("/deleteCategory")
public String deleteCategory(Category c) throws Exception {
categoryMapper.delete(c.getId());
return "redirect:listCategory";
}
@RequestMapping("/updateCategory")
public String updateCategory(Category c) throws Exception {
categoryMapper.update(c);
return "redirect:listCategory";
}
@RequestMapping("/editCategory")
public String listCategory(int id,Model m) throws Exception {
Category c= categoryMapper.get(id);
m.addAttribute("c", c);
return "editCategory";
}
修改查询映射
五)通过page.getList遍历当前页面的Category对象。
在分页的时候通过page.pageNum获取当前页面,page.pages获取总页面数。
六)修改分类的页面
七)手动重启,运行Application.,java后访问http://127.0.0.1:8080/listCategory?start=2
因为在pom中增加了新jar的依赖,所以需要手动重启