本文演示了SpringBoot下,实用Spring-Data-Jpa来实现CRUD操作,视图层采用Freemarker
这里我们先把application.properties修改成application.yml 主流格式
内容也改成yml规范格式:
server: port: 8888 context-path: / helloWorld: spring Bootu4F60u597D msyql: jdbcName: com.mysql.jdbc.Driver dbUrl: jdbc:mysql://localhost:3306/db_diary userName: root password: 123456 spring: datasource: driver-class-name: com.mysql.jdbc.Driver url: jdbc:mysql://localhost:3306/db_book username: root password: passwd jpa: hibernate.ddl-auto: update show-sql: true
yml格式有个注意点 冒号后面一定要加个空格
还有我们把context-path改成/方便开发应用
先写一个BookDao接口
package com.hik.dao; import org.springframework.data.jpa.repository.JpaRepository; import com.hik.entity.Book; public interface BookDao extends JpaRepository{ }
要求实现JpaRepository,JpaRepository是继承PagingAndSortingRepository,PagingAndSortingRepository是继承CrudRepository。CrudRepository实现了实体增删改查操作
package org.springframework.data.repository; import java.io.Serializable; @NoRepositoryBean public interface CrudRepositoryextends Repository { S save(S entity);Iterablesave(Iterableentities); T findOne(ID id); boolean exists(ID id); IterablefindAll(); Iterable findAll(Iterable ids); long count(); void delete(ID id); void delete(T entity); void delete(Iterable extends T> entities); void deleteAll(); }
再写一个BookController类
package com.hik.Controller;
import javax.annotation.Resource;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;
import com.hik.dao.BookDao;
import com.hik.entity.Book;
@Controller
@RequestMapping("/book")
public class BookController {
@Resource
private BookDao bookDao;
@RequestMapping(value="/list")
public ModelAndView list() {
ModelAndView mav = new ModelAndView ();
mav.addObject("bookList", bookDao.findAll());
mav.setViewName("bookList");
return mav;
}
@RequestMapping(value="/add", method=RequestMethod.POST)
public String add(Book book) {
bookDao.save(book);
return "forward:/book/list";
}
@GetMapping(value="/preUpdate/{id}")
public ModelAndView preUpdate(@PathVariable("id") Integer id) {
ModelAndView mav = new ModelAndView();
mav.addObject("book", bookDao.getOne(id));
mav.setViewName("bookUpdate");
return mav;
}
@PostMapping(value="/update")
public String update(Book book) {
bookDao.save(book);
return "forward:/book/list";
}
@RequestMapping(value="/delete",method = RequestMethod.GET)
public String delete(Integer id) {
bookDao.delete(id);
return "forward:/book/list";
}
}
实现了 CRUD
这里的@GetMapping(value="xxx") 类似 @RequestMapping(value="xxx",method=RequestMethod.GET)
以及@PostMapping(value="xxx") 类似 @RequestMapping(value="xxx",method=RequestMethod.POST)
bookList.ftl 展示数据
图书管理页面 添加图书
| 编号 | 图书名称 | 操作 |
|---|---|---|
| ${book.id} | ${book.bookName} | 修改 删除 |
bookAdd.html 图书添加页面
图书添加页面
bookUpdate.ftl图书修改页面
图书修改页面
浏览器请求:http://localhost:8888/book/list
进入:
点击 “添加图书”:
进入:
我们随便输入名称,点击“提交”,
选择刚才添加的测试图书,进行修改
转发执行到列表页面,然后点“修改”,
进入修改页面,修改下名称,点击“提交”,
选择测试图书,进行删除操作
再次转发到列表页面,我们点击“删除”,
删掉数据后,再次转发到列表页面;
OK完成!
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持考高分网。



