Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。
1.Spring Boot入门-Eclipse
创建好maven项目,配置好pom.xml文件,再创建Application.java和HelloController.java。
Application.java:其注解 @SpringBootApplication 表示这是一个SpringBoot应用,运行其主方法就会启动tomcat,默认端口是8080。
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
HelloController.java: 这个类就是Spring MVC里的一个普通的控制器。@RestController 是spring4里的新注解,是@ResponseBody和@Controller的缩写。
@RestController
public class HelloController {
@RequestMapping("/hello")
public String hello() {
return "Hello Spring Boot!";
}
}
最后运行Application.java, 然后访问。
2.持久层支持,Spring Boot中运用Mybatis(Mybatis 注解方式)
修改pom.xml,添加实体类Category,创建接口CategoryMapper,然后创建CategoryController 类。在最后测试时,报错显示tomcat端口被占,需要重启后再测试。
CategoryMapper.java:使用注解@Mapper 表示这是一个Mybatis Mapper接口。使用@Select注解表示调用findAll方法会去执行对应的sql语句。
@Mapper
public interface CategoryMapper {
@Select("select * from category_ ")
List<Category> findAll();
}
CategoryController.java:
@Controller
public class CategoryController {
@Autowired CategoryMapper categoryMapper;
@RequestMapping("/listCategory")
public String listCategory(Model m) throws Exception {
List<Category> cs=categoryMapper.findAll();
m.addAttribute("cs", cs);
return "listCategory";
}
}
3.持久层支持,Mybatis-xml方式(mapper 加xml方式)
去掉了CategoryMapper中的sql 语句注解。在新增加的Category.xml文件,写这个sql语句。然后修改application.properties, 指明从哪里去找xml配置文件。
Category.xml:
<mapper namespace="com.how2java.springboot.mapper.CategoryMapper">
<select id="findAll" resultType="Category">
select * from category_
</select>
</mapper>
4.Spring Boot使用Mybatis实现增删改查和分页
在pom.xml增加对PageHelper的支持,添加PageHelperConfig类 ,进行PageHelper相关配置。修改CategoryMapper,增加CRUD方法的支持。然后为CategoryController添加: 增加、删除、获取、修改映射。
CategoryMapper:
@Mapper
public interface CategoryMapper {
@Select("select * from category_ ")
List<Category> findAll();
@Insert(" insert into category_ ( name ) values (#{name}) ")
public int add(Category category);
@Delete(" delete from category_ where id= #{id} ")
public void delete(int id);
@Select("select * from category_ where id= #{id} ")
public Category get(int id);
@Update("update category_ set name=#{name} where id=#{id} ")
public int update(Category category);
}
CategoryController.java:
@Controller
public class CategoryController {
@Autowired CategoryMapper categoryMapper;
@RequestMapping("/addCategory")
public String listCategory(Category c) throws Exception {
categoryMapper.add(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";
}
@RequestMapping("/listCategory")
public String listCategory(Model m,@RequestParam(value = "start", defaultValue = "0") int start,@RequestParam(value = "size", defaultValue = "5") int size) throws Exception {
PageHelper.startPage(start,size,"id desc");
List<Category> cs=categoryMapper.findAll();
PageInfo<Category> page = new PageInfo<>(cs);
m.addAttribute("page", page);
return "listCategory";
}
}
进行添加数据的操作:
进行更新数据的操作:
5.对Product表和Users表进行CRUD增删改查的操作。
对于product表:
ProductMapper:
ProductController:
对users表: