第三篇:SpringBoot中使用JPA

上一篇使用了JdbcTemplate去访问数据库,毕竟使用的是原生的SQL形式,像我这种懒人是肯定不会考虑的了。。
这次记录下使用JPA来极大的减少我们的代码量
首先,还是准备好SQL文件

DROP TABLE IF EXISTS users; CREATE TABLE users ( id INT ( 11 ) PRIMARY KEY AUTO_INCREMENT, username VARCHAR ( 255 ) NOT NULL, passwd VARCHAR ( 255 ) ) ENGINE = INNODB DEFAULT CHARSET = utf8; INSERT users VALUES ( NULL, '翠花', '123' ); INSERT users VALUES ( NULL, '王卫国', '123' ); INSERT users VALUES ( NULL, '李小花', '123' ); INSERT users VALUES ( NULL, '王二柱', '123' ); INSERT users VALUES ( NULL, '赵铁蛋', '123' );

这次需要用到的依赖

<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</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-test</artifactId> <scope>test</scope> </dependency> </dependencies>

User.java

package com.priv.gabriel.entity; import javax.persistence.*; /** * Created with Intellij IDEA. * * @Author: Gabriel * @Date: 2018-10-08 * @Desciption: */ @Entity @Table(name = "users") public class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private long id; @Column(nullable = false) private String username; @Column(nullable = false) private String passwd; public long getId() { return id; } public void setId(long id) { this.id = id; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPasswd() { return passwd; } public void setPasswd(String passwd) { this.passwd = passwd; } }

UserController.java

package com.priv.gabriel.controller; import com.priv.gabriel.entity.User; import com.priv.gabriel.repository.UserRepository; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; import java.util.List; /** * Created by Administrator on 2018/10/9. */ @RestController @RequestMapping("/users") public class UserController { @Autowired private UserRepository userRepository; @RequestMapping(value = "/",method = RequestMethod.GET) public List<User> usersList(){ return userRepository.findAll(); } @RequestMapping(value = "/" ,method = RequestMethod.PUT) public String updateUser(User user){ if(userRepository.save(user) != null){ return "修改成功"; }else{ return "修改失败"; } } @RequestMapping(value = "/{id}",method = RequestMethod.GET) public User selectUserById(@PathVariable long id){ return userRepository.findById(id).get(); } @RequestMapping(value ="/{id}",method = RequestMethod.DELETE) public String deleteUser(@PathVariable long id){ userRepository.deleteById(id); return "删除成功"; } @RequestMapping(value = "/",method = RequestMethod.POST) public String saveUser(User user){ System.out.println(userRepository); if(userRepository.save(user) != null){ return "新增成功"; }else{ return "新增失败"; } } }

此处就偷个懒不写service层了,要研究的小朋友还是不要学我哈

UserRepository.java

package com.priv.gabriel.repository; import com.priv.gabriel.entity.User; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.stereotype.Repository; /** * Created with Intellij IDEA. * * @Author: Gabriel * @Date: 2018-10-08 * @Desciption: */ @Repository public interface UserRepository extends JpaRepository<User,Long>{ }

使用jpa最大的好处就是你只需要基础一个JpaRepository接口,其余的都交给jpa自己去处理,我们只负责调用就好了,回到springboot的主题就是

just run


__EOF__

本文作者Gabriel
本文链接https://www.cnblogs.com/youarephoenix/p/15972936.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   gabriel丶  阅读(73)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
点击右上角即可分享
微信分享提示