1-5SpringBoot操作之Spring-Data-Jpa(二)CRUD实现
本帖来演示下SpringBoot下,实用Spring-Data-Jpa来实现CRUD操作,视图层采用Freemarker
这里我们先把application.properties修改成application.yml 主流格式
内容也改成yml规范格式
server:
port: 8888
context-path: /
helloWorld: spring Boot\u5927\u7237\u4F60\u597D
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: 123456
jpa:
hibernate.ddl-auto: update
show-sql: true
yml格式有个注意点 冒号后面一定要加个空格
还有我们把context-path改成/方便开发应用
先写一个BookDao接口
import
org.springframework.data.jpa.repository.JpaRepository;
import
com.java1234.entity.Book;
/**
* 图书Dao接口
* @author user
*
*/
public
interface
BookDao
extends
JpaRepository<Book, Integer>{
}
要求实现JpaRepository
再写一个BookController类
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.java1234.dao.BookDao;
import
com.java1234.entity.Book;
/**
* Book控制类
* @author user
*
*/
@Controller
@RequestMapping
(
"/book"
)
public
class
BookController {
@Resource
private
BookDao bookDao;
/**
* 查询所有图书
* @return
*/
@RequestMapping
(value=
"/list"
)
public
ModelAndView list(){
ModelAndView mav=
new
ModelAndView();
mav.addObject(
"bookList"
, bookDao.findAll());
mav.setViewName(
"bookList"
);
return
mav;
}
/**
* 添加图书
* @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 mav=
new
ModelAndView();
mav.addObject(
"book"
, bookDao.getOne(id));
mav.setViewName(
"bookUpdate"
);
return
mav;
}
/**
* 修改图书
* @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"
;
}
}
实现了 CRUD
这里的@GetMapping(value="xxx") 类似 @RequestMapping(value="xxx",method=RequestMethod.GET)
以及@PostMapping(value="xxx") 类似 @RequestMapping(value="xxx",method=RequestMethod.POST)
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
>
</
tr
>
<#list bookList as book>
<
tr
>
<
td
>${book.id}</
td
>
<
td
>${book.bookName}</
td
>
<
td
>
<
a
href
=
"/book/preUpdate/${book.id}"
>修改</
a
>
<
a
href
=
"/book/delete?id=${book.id}"
>删除</
a
>
</
td
>
</
tr
>
</#list>
</
table
>
</
body
>
</
html
>
<!DOCTYPE html>
<
html
>
<
head
>
<
meta
charset
=
"UTF-8"
>
<
title
>图书添加页面</
title
>
</
head
>
<
body
>
<
form
action
=
"book/add"
method
=
"post"
>
图书名称:<
input
type
=
"text"
name
=
"bookName"
/><
br
/>
<
input
type
=
"submit"
value
=
"提交"
/>
</
form
>
</
body
>
</
html
>
<!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
=
"bookName"
value
=
"${book.bookName}"
/><
br
/>
<
input
type
=
"submit"
value
=
"提交"
/>
</
form
>
</
body
>
</
html
>
浏览器请求:http://localhost:8888/book/list
进入:
点击 “添加图书”:
进入:
我们随便输入名称,点击“提交”,
转发执行到列表页面,然后点“修改”,
进入修改页面,修改下名称,点击“提交”,
再次转发到列表页面,我们点击“删除”,
删掉数据后,再次转发到列表页面;
1-5SpringBoot操作之Spring-Data-Jpa(二)CRUD实现的更多相关文章
- <Spring Data JPA>二 Spring Data Jpa
1.pom依赖 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="htt ...
- Spring Data Jpa (二)JPA基础查询
介绍Spring Data Common里面的公用基本方法 (1)Spring Data Common的Repository Repository位于Spring Data Common的lib里面, ...
- Spring Boot使用Spring Data Jpa对MySQL数据库进行CRUD操作
只需两步!Eclipse+Maven快速构建第一个Spring Boot项目 构建了第一个Spring Boot项目. Spring Boot连接MySQL数据库 连接了MySQL数据库. 本文在之前 ...
- SpringBoot入门:Spring Data JPA 和 JPA(理论)
参考链接: Spring Data JPA - Reference Documentation Spring Data JPA--参考文档 中文版 纯洁的微笑:http://www.ityouknow ...
- SpringBoot总结之Spring Data Jpa
一.Spring Data Jpa简介 JPA(Java Persistence API)定义了一系列对象持久化的标准,目前实现这一规范的产品有Hibernate.TopLink等. Spring D ...
- Springboot 系列(十)使用 Spring data jpa 访问数据库
前言 Springboot data jpa 和 Spring jdbc 同属于 Spring开源组织,在 Spring jdbc 之后又开发了持久层框架,很明显 Spring data jpa 相对 ...
- 【Spring】Spring Data JPA
原始JDBC操作数据库 传统JDBC方式实现数据库操作 package com.imooc.util; import java.io.InputStream; import java.sql.*; i ...
- spring boot学习(4) SpringBoot 之Spring Data Jpa 支持(1)
第一节:Spring Data Jpa 简介 Spring-Data-Jpa JPA(Java Persistence API)定义了一系列对象持久化的标准,目前实现这一规范的产品有Hibernate ...
- Spring Data JPA 和MyBatis比较
现在Dao持久层的解决方案中,大部分是采用Spring Data JPA或MyBatis解决方案,并且传统企业多用前者,互联网企业多用后者. Spring Data JPA 是Spring Data ...
- SpringBoot整合持久层技术--(三)Spring Data JPA
简介: JPA(java Persistence API)和SpringData是两个范畴的概念.spring data jpa是spring公司下的spring data项目的一个模块. sprin ...
随机推荐
- WORKDIR 指定工作目录 每一个 RUN 都是启动一个容器、执行命令、然后提交存储层文件变更
WORKDIR 指定工作目录 格式为 WORKDIR <工作目录路径>. 使用 WORKDIR 指令可以来指定工作目录(或者称为当前目录),以后各层的当前目录就被改为指定的目录,如该目录不 ...
- tkinter学习(3)scale尺度条和menu菜单
1.scale学习(尺度条)1.1 代码: #第1步:导出模块 import tkinter as tk #第2步:定义窗口,及其标题.大小和位置 win = tk.Tk() win.title('s ...
- 收藏---wordpress搭建出来的blog
http://blog.luofei.org/2012/02/painters-and-paintings-through-the-eyes-of-faith/
- FreeSWITCH调用第三方TTS 使用tts_commandline
FreeSWITCH 支持调用第三方TTS命令,本身已经搭好了框架,只需要配置即可用. 下面写一下步骤,以免忘记,也希望给你带来帮助. 第一步:编译模块mod_tts_commandline,并加载. ...
- oracle 高级函数
原 oracle 高级函数 2017年08月17日 16:44:19 阅读数:1731 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/u013278 ...
- WKWebView单个界面添加请求头
https://www.jianshu.com/p/14b9ea4bf1d4 https://github.com/Yeatse/NSURLProtocol-WebKitSupport/blob/ma ...
- 1.ORM介绍,基本配置及通过ORM框架创建表
1.介绍 ORM全拼Object-Relation Mapping(对象-关系映射) 作用:主要实现模型对象到关系数据库数据的映射 通过ORM框架作为一个中间者或者是一个桥梁,开发者通过定义模型类,属 ...
- PTA的Python练习题(四)
从 第3章-1 3-1.大于身高的平均值 开始 1. 引入列表的概念 a=list(map(int,input().split())) b=sum(a) c=len(a) d=b/c for i in ...
- pta 7-1 找出不是两个数组共有的元素
给定两个整型数组,本题要求找出不是两者共有的元素. 输入格式: 输入分别在两行中给出两个整型数组,每行先给出正整数N(≤20),随后是N个整数,其间以空格分隔. 输出格式: 在一行中按照数字给出的顺序 ...
- 四阶幻方-蓝桥杯-DFS
答案:416 用next_permutation()全部排列的话会超时 所以用dfs搜索,只搜索前三行就好,前三行确定之后,第四行也就确定 #include<iostream> #incl ...