第五节:SpringBoot的数据库CRUD

来源:互联网 发布:get是什么意思网络上的 编辑:程序博客网 时间:2024/06/05 13:41

pom.xml配置文件

<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.xiaowen</groupId><artifactId>SpringBootDemo</artifactId><version>0.0.1-SNAPSHOT</version><packaging>jar</packaging><name>SpringBootDemo</name><description>Demo project for Spring Boot</description><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>1.5.6.RELEASE</version><relativePath/> <!-- lookup parent from repository --></parent><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><java.version>1.8</java.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency>        <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-configuration-processor</artifactId><optional>true</optional></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-freemarker</artifactId></dependency><dependency>    <groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><scope>runtime</scope></dependency><dependency>    <groupId>org.springframework.boot</groupId>    <artifactId>spring-boot-starter-data-jpa</artifactId></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>
application.properties配置文件

#配置tomcat端口server.port=8088#配置数据源spring.datasource.driver-class-name=com.mysql.jdbc.Driverspring.datasource.url=jdbc:mysql://localhost:3306/demospring.datasource.username=rootspring.datasource.password=123456spring.jpa.hibernate.ddl-auto=updatespring.jpa.show-sql=true

这里我们也可以把application.properties修改成application.yml 主流格式

内容也改成yml规范格式

server:  port: 8088  context-path: / spring:   datasource:      driver-class-name: com.mysql.jdbc.Driver      url: jdbc:mysql://localhost:3306/demo      username: root      password: 123456   jpa:     hibernate.ddl-auto: update     show-sql: true
yml格式有个注意点 冒号后面一定要加个空格
还有我们把context-path改成/方便开发应用

编写实体类

package com.xiaowen.model;import javax.persistence.Entity;import javax.persistence.GeneratedValue;import javax.persistence.Id;import javax.persistence.Table;@Entity@Table(name="tb_book")public class Book {private Integer id;private String name;private String author;private String publicationdate;private String publication;private Double price;private String image;private String remark;@Id@GeneratedValuepublic Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getAuthor() {return author;}public void setAuthor(String author) {this.author = author;}public String getPublicationdate() {return publicationdate;}public void setPublicationdate(String publicationdate) {this.publicationdate = publicationdate;}public String getPublication() {return publication;}public void setPublication(String publication) {this.publication = publication;}public Double getPrice() {return price;}public void setPrice(Double price) {this.price = price;}public String getImage() {return image;}public void setImage(String image) {this.image = image;}public String getRemark() {return remark;}public void setRemark(String remark) {this.remark = remark;}}
dao接口类

package com.xiaowen.dao;import org.springframework.data.jpa.repository.JpaRepository;import com.xiaowen.model.Book;/** * 图书接口 * @author xiaowen * */public interface BookDao extends JpaRepository<Book,Integer>{}
Controller类

package com.xiaowen.controller;import java.util.List;import org.springframework.beans.factory.annotation.Autowired;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.bind.annotation.RestController;import org.springframework.web.servlet.ModelAndView;import com.xiaowen.dao.BookDao;import com.xiaowen.model.Book;/** * CRUD * @author xiaowen */@RestController@RequestMapping("/book")public class BookController {@Autowiredprivate BookDao bookDao;/** * 查询全部图书 * @param mv * @return */@RequestMapping("/list")public ModelAndView list(ModelAndView mv){        mv.addObject("bookList", bookDao.findAll());        mv.setViewName("bookList");        return mv;}/** * 添加图书 * @param book * @return */@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 mv){mv.addObject("book", bookDao.getOne(id));mv.setViewName("bookUpdate");return mv;}/** * 修改图书 * @param book * @return */@PostMapping(value="/update")public String update(Book book){bookDao.save(book);return "forward:/book/list";}/** * 删除图书 * @param id * @return */@RequestMapping(value="/delete",method=RequestMethod.GET)public String delete(Integer id){bookDao.delete(id);return "forward:/book/list";}}
booklist.ftl模板

<!DOCTYPE html><html><head><meta charset="UTF-8"><title>图书管理页面</title></head><body><a href="/bookAdd.html">添加图书</a>    <table>        <tr>            <th>编号</th>            <th>图书名称</th>            <th>作者</th>            <th>出版日期</th>            <th>出版社</th>            <th>价格</th>            <th>封面图片</th>            <th>详细描述</th>            <th>操作</th>        </tr>        <#list bookList as book>             <tr>                 <td>${book.id}</td>                 <td>${book.name}</td>              <td>${book.author}</td>              <td>${book.publicationdate}</td>              <td>${book.publication}</td>              <td>${book.price}</td>              <td>${book.image}</td>              <td>${book.remark}</td>              <td>                <a href="/book/preUpdate/${book.id}">修改</a>                <a href="/book/delete?id=${book.id}">删除</a>                <a href="/book/delete?id=${book.id}">删除</a>            </td>        </tr>         </#list>      </table>  </body></html>
bookAdd.html
<!DOCTYPE html><html><head><meta charset="UTF-8"><title>图书添加界面</title></head><body><form action="book/add" method="post">              图书名称:<input type="text" name="name"/><br/>              作者:<input type="text" name="author"/><br/>              出版日期:<input type="text" name="publicationdate"/><br/>              出版社:<input type="text" name="publication"/><br/>              价格:<input type="text" name="price"/><br/>              封面图片:<input type="text" name="image"/><br/>              详细描述:<textarea rows="6" cols="20" name="remark"></textarea><br>    <input type="submit" value="提交"/></form></body></html>


bookupdate.ftl模板

<!DOCTYPE html><html><head><meta charset="UTF-8"><title>图书更新页面</title></head><body><form action="/book/update" method="post"><input type="hidden" name="id" value="${book.id}"/>图书名称:<input type="text" name="name" value="${book.name}"/><br/> 作者:<input type="text" name="author" value="${book.author}"/><br/>出版日期:<input type="text" name="publicationdate" value="${book.publicationdate}"/><br/> 出版社:<input type="text" name="publication" value="${book.publication}"/><br/>价格:<input type="text" name="price" value="${book.price}"/><br/>封面图片:<input type="text" name="image" value="${book.image}"/><br/>详细描述:<textarea rows="6" cols="20" name="remark" >${book.remark}</textarea><br><input type="submit" value="提交"/></form></body></html>




启动类代码






 
原创粉丝点击