SpringCloud+JPA实现增删查改(附源码,java内存回收机制面试题

public interface StudentService {

/**

  • 查询全部学生信息

  • @return 学生信息

*/

public List findAllStudent();

/**

  • 通过id查询学生信息

  • @param sid 传入的id

  • @return 学生对象

*/

public Student findStuById(Integer sid);

/**

  • 添加记录到数据表

  • @param student 无主键

  • @return student 有主键

*/

public Student addStudent(Student student);

/**

  • @param student 修改的对象信息(必须有主键)

  • @return student对象 返回指定修改主键的对象所有信息

*/

public Student updateStudent(Student student);

/**

  • 删除学生信息

  • @param sid 传入的id

  • @return 是否删除成功

*/

public boolean deleteStudentById(Integer sid);

}

3.4.2 StudentServiceImpl实现类

@Resource 注解注入:默认先按照类型搜索

  • 如设置了type属性,只按照type搜索,搜不到抛异常
  • 设置name属性,只按照name搜索,搜不到,抛异常

@Autowried 默认按照类型搜索,搜不到抛null

  • 按照名称搜索与@Qualifer配合

/**

  • Created by Kak on 2020/9/25.

*/

@Service

@Slf4j

public class StudentServiceImpl implements StudentService{

@Resource

private StudentRepository studentRepository;

@Override

public List findAllStudent() {

List all = studentRepository.findAll();

return all;

}

@Override

public Student findStuById(Integer sid) {

Optional byId = studentRepository.findById(sid);

return byId.get();

}

@Override

public Student addStudent(Student student) {

Student save = studentRepository.save(student);

return save;

}

@Override

public Student updateStudent(Student student) {

Student student1 = studentRepository.saveAndFlush(student);

return student1;

}

@Override

public boolean deleteStudentById(Integer sid) {

try{

studentRepository.deleteById(sid);

return true;

}catch (Exception ex){

log.info(ex.getMessage());

}

return false;

}

}

3.5 StudentController的实现


用于提供服务信息

/**

  • Created by Kak on 2020/9/25.

*/

@RestController

public class StudentController {

@Autowired(required = false)

private StudentService studentService;

@RequestMapping(value = “/students”,method = RequestMethod.GET)

public List findAll(){

List allStudent = studentService.findAllStudent();

return allStudent;

}

@RequestMapping(value = “/student/{id}”,method = RequestMethod.GET)

public Student findOneStudent(@PathVariable(value = “id”) int sid){

Student stuById = studentService.findStuById(sid);

return stuById;

}

@RequestMapping(value = “/student”,method = RequestMethod.POST)

public Student addStudent(@RequestBody Student student){

Student student1 = studentService.addStudent(student);

return student1;

}

@RequestMapping(value = “/student”,method = RequestMethod.PUT)

public Student updateStudent(@RequestBody Student student){

Student student1 = studentService.updateStudent(student);

return student1;

}

@RequestMapping(value = “/student/{id}”,method = RequestMethod.DELETE)

public Boolean deleteStudent(@PathVariable(value = “id”) int sid){

boolean b = studentService.deleteStudentById(sid);

return b;

}

}

4. 创建consumer_feign

========================================================================================

创建SpringBoot项目(springcloud_consumer_feign),选择以下依赖;(数据源可以不加)

在这里插入图片描述

4.1 修改SpringcloudConsumerFeignApplication启动文件


在启动文件中加入:

  • @EnableEurekaClient用于启动Eureka客户端注册功能;
  • @EnableFeignClients用于开启feign客户端

4.2 配置application.yml


server:

port: 9093

eureka:

client:

service-url:

defaultZone: http://localhost:8761/eureka/

spring:

application:

name: feign-client

4.3 Student实体类的实现


/**

  • Created by Kak on 2020/9/25.

*/

@Data

@NoArgsConstructor

@AllArgsConstructor

public class Student implements Serializable{

private Integer ssId;

private String ssname;

private String sex;

private String age;

}

4.4 ActionResult的实现


/**

  • Created by Kak on 2020/9/25.

*/

@Data

@AllArgsConstructor

@NoArgsConstructor

public class ActionResult {

private Integer statueCode;

private String msg;

private Object data;

}

4.5 编写RemoteFeignServer接口


/**

  • Created by Kak on 2020/9/25.

*/

@FeignClient(value = “producer-service-jpa”)

public interface RemoteFeignService {

@RequestMapping(value = “/students”,method = RequestMethod.GET)

public List findStudent();

@RequestMapping(value = “/student/{id}”,method = RequestMethod.GET)

public Student findOneStudent(@PathVariable(value = “id”) int sid);

@RequestMapping(value = “/student”,method = RequestMethod.POST)

public Student addStudent(@RequestBody Student student);

@RequestMapping(value = “/student”,method = RequestMethod.PUT)

public Student updateStudent(@RequestBody Student student);

@RequestMapping(value = “/student/{id}”,method = RequestMethod.DELETE)

public Boolean deleteStudent(@PathVariable(value = “id”) int sid);

}

4.6 StuController的实现


全部使用了get请求,可以分别使用,用postman测试;

/**

  • Created by Kak on 2020/9/25.

*/

@RestController

public class StudentController {

@Autowired(required = false)

private RemoteFeignService remoteFeignService;

@RequestMapping(“/students”)

public ActionResult findAllStu() {

List student = remoteFeignService.findStudent();

ActionResult actionResult = new ActionResult(200, “find all success”, student);

return actionResult;

}

@RequestMapping(“/student/{id}”)

public ActionResult findOneStu(@PathVariable(value = “id”) int sid){

Student oneStudent = remoteFeignService.findOneStudent(sid);

ActionResult actionResult = new ActionResult(200, “find one success”, oneStudent);

return actionResult;

}

@RequestMapping(“/addstudent”)

public ActionResult addStu(Student student){

Student student1 = remoteFeignService.addStudent(student);

ActionResult actionResult = new ActionResult(200, “add student success”, student1);

return actionResult;

}

@RequestMapping(“/updateStudent”)

public ActionResult updateStu(Student student){

Student student1 = remoteFeignService.updateStudent(student);

ActionResult actionResult = new ActionResult(200, “update student success”, student1);

return actionResult;

}

@RequestMapping(“/deleteStudent/{id}”)

public ActionResult deleteStu(@PathVariable(value = “id”)Integer sid){

Boolean aBoolean = remoteFeignService.deleteStudent(sid);

ActionResult actionResult = new ActionResult(200, “delete student success”, aBoolean);

return actionResult;

}

}

5. 创建zuul

=============================================================================

创建SpringBoot项目(springcloud_zuul),选择以下依赖;

在这里插入图片描述

5.1 修改启动文件


在启动文件中加入以下注解:

  1. @EnableDiscoveryClient:用于启动Eureka客户端注册功能
  1. @EnableZuulProxy:用于开启zuul路由代理服务

5.2 配置application.yml


server:

port: 9098

spring:

application:

name: consumer-server-zuul

eureka:

client:

service-url:

defaultZone: http://localhost:8761/eureka

#自定义路由

zuul:

routes:

stu:

path: /stu/**

serviceId: feign-client

5.3 配置AuthenFilter


设置过滤文件,模拟token当token=200时可以访问,否则拦截;

/**

  • Created by Kak on 2020/9/25.

*/

@Component

public class AuthenFilter extends ZuulFilter {

//定义过滤器的类型

@Override

public String filterType() {

return FilterConstants.PRE_TYPE;

}

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加V获取:vip1024b (备注Java)
img

总结

就写到这了,也算是给这段时间的面试做一个总结,查漏补缺,祝自己好运吧,也希望正在求职或者打算跳槽的 程序员看到这个文章能有一点点帮助或收获,我就心满意足了。多思考,多问为什么。希望小伙伴们早点收到满意的offer! 越努力越幸运!

金九银十已经过了,就目前国内的面试模式来讲,在面试前积极的准备面试,复习整个 Java 知识体系将变得非常重要,可以很负责任的说一句,复习准备的是否充分,将直接影响你入职的成功率。但很多小伙伴却苦于没有合适的资料来回顾整个 Java 知识体系,或者有的小伙伴可能都不知道该从哪里开始复习。我偶然得到一份整理的资料,不论是从整个 Java 知识体系,还是从面试的角度来看,都是一份含技术量很高的资料。

三面蚂蚁核心金融部,Java开发岗(缓存+一致性哈希+分布式)

302)]
[外链图片转存中…(img-1PXeN3L8-1711960888302)]
[外链图片转存中…(img-ouZZ7KLZ-1711960888303)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加V获取:vip1024b (备注Java)
[外链图片转存中…(img-kca8BAQo-1711960888303)]

总结

就写到这了,也算是给这段时间的面试做一个总结,查漏补缺,祝自己好运吧,也希望正在求职或者打算跳槽的 程序员看到这个文章能有一点点帮助或收获,我就心满意足了。多思考,多问为什么。希望小伙伴们早点收到满意的offer! 越努力越幸运!

金九银十已经过了,就目前国内的面试模式来讲,在面试前积极的准备面试,复习整个 Java 知识体系将变得非常重要,可以很负责任的说一句,复习准备的是否充分,将直接影响你入职的成功率。但很多小伙伴却苦于没有合适的资料来回顾整个 Java 知识体系,或者有的小伙伴可能都不知道该从哪里开始复习。我偶然得到一份整理的资料,不论是从整个 Java 知识体系,还是从面试的角度来看,都是一份含技术量很高的资料。

[外链图片转存中…(img-XaVHm7SB-1711960888303)]

  • 19
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SpringSpring MVC是两个不同的框架,它们都可以用于增删查改操作。 在Spring中,可以使用Spring Data JPA来进行数据库操作。它提供了一种简单的方式来定义实体、仓库和查询方法。以下是一个简单的示例: 1.定义实体类 @Entity public class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String name; private String email; //getter和setter方法 } 2.定义仓库接口 @Repository public interface UserRepository extends JpaRepository<User, Long> { //自定义查询方法 User findByName(String name); } 3.使用仓库 @Service public class UserService { @Autowired private UserRepository userRepository; public User addUser(User user) { return userRepository.save(user); } public void deleteUser(Long userId) { userRepository.deleteById(userId); } public User updateUser(User user) { return userRepository.save(user); } public User getUserById(Long userId) { return userRepository.findById(userId).orElse(null); } public User getUserByName(String name) { return userRepository.findByName(name); } } 在Spring MVC中,可以使用Spring Data REST来创建RESTful服务。它可以自动为实体创建RESTful接口,包括增删查改操作。以下是一个简单的示例: 1.定义实体类 @Entity public class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String name; private String email; //getter和setter方法 } 2.使用Spring Data REST @RepositoryRestResource(collectionResourceRel = "users", path = "users") public interface UserRepository extends JpaRepository<User, Long> {} 3.使用HTTP请求进行操作 POST /users - 创建用户 GET /users - 获取所有用户 GET /users/{id} - 获取指定ID的用户 PUT /users/{id} - 更新指定ID的用户 DELETE /users/{id} - 删除指定ID的用户 以上是两种不同的方式来进行增删查改操作,具体使用哪种方式取决于具体的需求和场景。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值