电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

Springboot和Jpa實現學生CRUD操作代碼實例

瀏覽:4日期:2023-05-27 13:22:53

前期準備

使用idea新建個SpringBoot項目

在數據庫中建student表

Springboot和Jpa實現學生CRUD操作代碼實例

建包

Springboot和Jpa實現學生CRUD操作代碼實例

1.編寫entity包下實體類Student

(一個Javabean規范)

package com.example.stu.kudestu.stu.entity;import javax.persistence.*;@Entity@Table(name = 'student')//@Entity 應用在實體類上 @Table(name = 'student') 應用在實體類上,并且name屬性為數據庫表名public class Student { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) //ID自增 private Integer id; private String name; private int age; private String sex; @Override public String toString() { return 'Student{' +'id=' + id +', name=’' + name + ’’’ +', age=' + age +', sex=’' + sex + ’’’ +’}’; } public Student() { } public 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 int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; }}

2.編寫dao層StudentDao類

package com.example.stu.kudestu.stu.dao;import com.example.stu.kudestu.stu.entity.Student;import org.springframework.data.jpa.repository.JpaRepository;import org.springframework.data.jpa.repository.Query;import org.springframework.data.repository.query.Param;import java.util.List;public interface StudentDao extends JpaRepository<Student,Integer> {//<Student,Integer>兩個參數實體類和主鍵類型 Student findStuById(Integer id); @Query(name='findStuByName',nativeQuery = true,value = 'select * from student where name=:name ') List<Student> findStuByName(@Param('name') String name);}

3.編寫service層類StudentService,面象接口

import com.example.stu.kudestu.stu.entity.Student;import org.springframework.data.domain.Page;import java.util.List;public interface StudentService { Student save(Student student);//添加學生 Student update(Student student);//修改 void delete(Integer id);//通過id刪除學生 Student findStuById(Integer id);//通過ID查找學生,接口中沒有此方法,在StudentDao接口創建 List<Student> findStuByName(String name);//通過學生姓名查找,在StudentDao接口創建 /** * 分頁查詢所有數據 * @param page //當前頁 * @param pageSize //每頁記錄數 * @return */ Page<Student> findAll(int page,int pageSize);}

在service對接口實現

import org.springframework.stereotype.Service;import java.util.List;@Servicepublic class StudentServiceimpl implements StudentService { @Autowired//用于類中的屬性注入 private StudentDao studentDao; @Override public Student save(Student student) { return studentDao.save(student); } @Override public Student update(Student student) { return studentDao.save(student); } @Override public void delete(Integer id) { studentDao.deleteById(id); } @Override public Student findStuById(Integer id) { return studentDao.findStuById(id); } @Override public List<Student> findStuByName(String name) { return studentDao.findStuByName(name); } @Override public Page<Student> findAll(int page,int pageSize) { Pageable pageable= PageRequest.of(page,pageSize); return studentDao.findAll(pageable); }}

4.編寫Controller層StudentController類

package com.example.stu.kudestu.stu.controller;import com.example.stu.kudestu.stu.dao.StudentDao;import com.example.stu.kudestu.stu.entity.Student;import com.example.stu.kudestu.stu.service.StudentService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.data.domain.Page;import org.springframework.web.bind.annotation.*;import javax.servlet.http.HttpServletResponse;import java.util.List;@RestController /*應用在Controller層的類上面@RequestMapping('/s')public class StudentController { @Autowired//依賴注入 private StudentService studentService; /** * 添加學生 * @param student 要添加學生對象 * @return */ @PostMapping('/add') /*@PostMapping 映射一個POST請求 Spring MVC新特性 提供了對Restful風格的支持@GetMapping,處理get請求 @PostMapping,處理post請求 @PutMapping,處理put請求 @DeleteMapping,處理delete請求*/ public Student save(Student student){ return studentService.save(student); } /** * 修改學生 * @param student */ @PostMapping('/update') public Student update(Student student){ return studentService.save(student); } /** * 刪除學生 * @param id 要刪除學生id * @return */ @GetMapping('/del/{id}') public String del(@PathVariable int id){ studentService.delete(id); return 'yes'; } @GetMapping('/findByName/{name}') public List<Student> findByName(@PathVariable String name){ return studentService.findStuByName(name); } @GetMapping('/query') public Page<Student> findByPage(Integer page , HttpServletResponse response){ response.setHeader('Access-Control-Allow-Origin','*'); //解決跨域請求 if(page==null||page<=0){ page=0; }else{ page-=1; } return studentService.findAll(page,5); }}

@RestController

應用在Controller層的類上面,@RestController注解相當于@ResponseBody + @Controller合在一起的作用,同時返回的數據為json數據

使用@Controller 注解,在對應的方法上,視圖解析器可以解析return 的jsp,html頁面,并且跳轉到相應頁面若返回json等內容到頁面,則需要加@ResponseBody注解

@PostMapping(value = '/add')等價于@RequestMapping(value = '/add',method = RequestMethod.POST)

5.利用HBuilder進行前端編寫

Springboot和Jpa實現學生CRUD操作代碼實例

Jquery.js內容到https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js復制即可

主頁面:index.html

<!DOCTYPE html><html> <head> <meta charset='utf-8'> <title></title> <script src='http://www.hdgsjgj.cn/bcjs/js/jquery.js' type='text/javascript' charset='utf-8'></script><script type='text/javascript'> var page = 1; var tp = 0; $(function(){showData(); }); function upPage(){if(page>1){ page--; showData();} } function downPage(){if(page<tp){ page++; showData();} } function showData(){$.ajax({ url:’http://localhost:8888/stu/s/query?page=’+page, success:function(result){var rel = result.content; tp = result.totalPages;var htmlStr = '<table width=’80%’ algin=’center’ border=’1’>'+ '<tr><th>ID</th><th>姓名</th><th>年齡</th><th>性別</th><th>操作</th></tr>';for(var i=0;i<rel.length;i++){ var stu = rel[i]; htmlStr += '<tr><td>'+stu.id+'</td><td>'+stu.name+'</td><td>'+stu.age+'</td><td>'+stu.sex+'</td>'+ '<td><a href=’’>編輯</a>&nbsp;<a href=’http://localhost:8888/stu/s/del/'+stu.id+'’>刪除</a></td></tr>'; }htmlStr += '</table>';$('#show').html(htmlStr); }}); } </script> </head> <body><h1 style='text-align: center;'>學生管理系統</h1> <hr> <a href='http://www.hdgsjgj.cn/bcjs/add.html' rel='external nofollow' >添加學生</a><div id='show'> </div><a href='javascript:upPage();' rel='external nofollow' >上一頁</a>&nbsp;&nbsp;<a href='javascript:downPage();' rel='external nofollow' >下一頁</a> </body></html>

頁面效果

Springboot和Jpa實現學生CRUD操作代碼實例

添加學生的頁面信息add.html

<!DOCTYPE html><html> <head> <meta charset='utf-8'> <title></title> </head> <body> <h1>添加學生</h1> <hr> <form action='http://localhost:8888/stu/s/add' method='post'> <p>姓名:<input type='text' name='name' /> </p> <p>年齡:<input type='text' name='age' /> </p> <p>性別:<input type='radio' name='sex' value='男' checked />男<input type='radio' name='sex' value='女' />女 </p> <p><input type='submit' value='保存' /> </p> </form> </body></html>

頁面效果

Springboot和Jpa實現學生CRUD操作代碼實例

如何利用分頁

直接調用Dao接口的父類JPA接口的分頁方法

在Service接口層定義:

/** * 分頁查詢所有數據 * @param page * @param pageSize * @return */ Page<Student> findAll(int page,int pageSize);

Service實現:

public Page<Student> findAll(int page,int pageSize) { Pageable pageable= PageRequest.of(page,pageSize); return studentDao.findAll(pageable); }

Controller層:

@GetMapping('/query') public Page<Student> findByPage(Integer page , HttpServletResponse response){ response.setHeader('Access-Control-Allow-Origin','*'); if(page==null||page<=0){ page=0; }else{ page-=1; } return studentService.findAll(page,5); }

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Spring
相關文章:
主站蜘蛛池模板: IWIS链条代理-ALPS耦合透镜-硅烷预处理剂-上海顶楚电子有限公司 lcd条形屏-液晶长条屏-户外广告屏-条形智能显示屏-深圳市条形智能电子有限公司 | 滑板场地施工_极限运动场地设计_滑板公园建造_盐城天人极限运动场地建设有限公司 | 带式过滤机厂家_价格_型号规格参数-江西核威环保科技有限公司 | 耐火浇注料-喷涂料-浇注料生产厂家_郑州市元领耐火材料有限公司 耐力板-PC阳光板-PC板-PC耐力板 - 嘉兴赢创实业有限公司 | 生产加气砖设备厂家很多,杜甫机械加气砖设备价格公道 | 拖链电缆_柔性电缆_伺服电缆_坦克链电缆-深圳市顺电工业电缆有限公司 | 车载加油机品牌_ 柴油加油机厂家 | 泰国试管婴儿_泰国第三代试管婴儿费用|成功率|医院—新生代海外医疗 | 【德信自动化】点胶机_全自动点胶机_自动点胶机厂家_塑料热压机_自动螺丝机-深圳市德信自动化设备有限公司 | Pos机办理_个人商户免费POS机申请-拉卡拉办理网 | 招商帮-一站式网络营销服务|互联网整合营销|网络推广代运营|信息流推广|招商帮企业招商好帮手|搜索营销推广|短视视频营销推广 | 油罐车_加油机_加油卷盘_加油机卷盘_罐车人孔盖_各类球阀_海底阀等车用配件厂家-湖北华特专用设备有限公司 | 比亚迪叉车-比亚迪电动叉车堆垛车托盘车仓储叉车价格多少钱报价 磁力去毛刺机_去毛刺磁力抛光机_磁力光饰机_磁力滚抛机_精密金属零件去毛刺机厂家-冠古科技 | 青岛代理记账_青岛李沧代理记账公司_青岛崂山代理记账一个月多少钱_青岛德辉财税事务所官网 | 多功能真空滤油机_润滑油全自动滤油机_高效真空滤油机价格-重庆润华通驰 | 环讯传媒,永康网络公司,永康网站建设,永康小程序开发制作,永康网站制作,武义网页设计,金华地区网站SEO优化推广 - 永康市环讯电子商务有限公司 | 不锈钢轴流风机,不锈钢电机-许昌光维防爆电机有限公司(原许昌光维特种电机技术有限公司) | 莱州网络公司|莱州网站建设|莱州网站优化|莱州阿里巴巴-莱州唯佳网络科技有限公司 | 石家庄救护车出租_重症转院_跨省跨境医疗转送_活动赛事医疗保障_康复出院_放弃治疗_腾康26年医疗护送转诊团队 | 临海涌泉蜜桔官网|涌泉蜜桔微商批发代理|涌泉蜜桔供应链|涌泉蜜桔一件代发 | 派克防爆伺服电机品牌|国产防爆伺服电机|高低温伺服电机|杭州摩森机电科技有限公司 | 吹塑加工_大型吹塑加工_滚塑代加工-莱力奇吹塑加工有限公司 | 青岛球场围网,青岛车间隔离网,青岛机器人围栏,青岛水源地围网,青岛围网,青岛隔离栅-青岛晟腾金属制品有限公司 | 变色龙云 - 打包app_原生app_在线制作平台_短链接_ip查询 | 成都珞石机械 - 模温机、油温机、油加热器生产厂家 | 中国玩具展_玩具展|幼教用品展|幼教展|幼教装备展 | 西宁装修_西宁装修公司-西宁业之峰装饰-青海业之峰墅级装饰设计公司【官网】 | 热熔胶网膜|pes热熔网膜价格|eva热熔胶膜|热熔胶膜|tpu热熔胶膜厂家-苏州惠洋胶粘制品有限公司 | 杭州中央空调维修_冷却塔/新风机柜/热水器/锅炉除垢清洗_除垢剂_风机盘管_冷凝器清洗-杭州亿诺能源有限公司 | Safety light curtain|Belt Sway Switches|Pull Rope Switch|ultrasonic flaw detector-Shandong Zhuoxin Machinery Co., Ltd | 一氧化氮泄露报警器,二甲苯浓度超标报警器-郑州汇瑞埔电子技术有限公司 | 欧版反击式破碎机-欧版反击破-矿山石料破碎生产线-青州奥凯诺机械 | 致胜管家软件服务【在线免费体验】 | 软瓷_柔性面砖_软瓷砖_柔性石材_MCM软瓷厂家_湖北博悦佳软瓷 | 尼龙PA610树脂,尼龙PA612树脂,尼龙PA1010树脂,透明尼龙-谷骐科技【官网】 | 鑫达滑石-辽宁鑫达滑石集团| 电磁流量计厂家_涡街流量计厂家_热式气体流量计-青天伟业仪器仪表有限公司 | 北京印刷厂_北京印刷_北京印刷公司_北京印刷厂家_北京东爵盛世印刷有限公司 | 北京签证代办_签证办理_商务签证_旅游签证_寰球签证网 | 广州各区危化证办理_危险化学品经营许可证代办 | 防火窗_耐火窗_防火门厂家_防火卷帘门-重庆三乐门业有限公司 |