本文介绍Springboot整合Spring-data-jpa实现简单应用
Spring-data-jpa是什么?这不由得我们思考一番,其实通俗来说Spring-data-jpa默认使用hibernate,使用Spring-data-jpa这样的技术,它实现了模板Dao层,只需要在Dao,通过继承一个接口,就可轻松完成“增删改查,所以本质就是springboot和hibernate的整合,已经有了hibernate为什么还要Spring-data-jpa!!!其实开发jpa和开发hibernate的居然是同一个作者...emmmm...
话不多说开始实施!
一、创建Springboot项目添加相关依赖:(大家可以参考我这篇文章创建Springboot项目哦!)
https://www.cnblogs.com/bgyb/p/12070279.html
org.springframework.boot spring-boot-starter-jdbc org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-test test mysql mysql-connector-java runtime org.springframework.boot spring-boot-starter-data-jpa
二、配置application.yml进行配置:(注意层级关系,按住Ctrl键,移动到属性上面鼠标键变为小手形状则为正确)
spring: datasource: url: jdbc:mysql://localhost:3306/easybuy?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai driver-class-name: com.mysql.jdbc.Driver username: root password: root jpa: hibernate: ddl-auto: update #启动应用,自动的去数据库帮我们创建表 show-sql: true #显示sql
三、创建实体类(entity)、数据接口(mapper)、拦截器(controller)
实体类(entity):
import org.springframework.boot.autoconfigure.domain.EntityScan; import javax.persistence.*; //使用JPA注解配置映射关系 @Entity //告诉JPA这是一个实体类(和数据表映射的类) @Table(name="user") //@Table来指定和哪个数据表对应;如果省略默认表名就是user public class User { @Id //表示主键 @GeneratedValue(strategy = GenerationType.IDENTITY) //设置主键 private Integer id; @Column(name = "u_name") //这是和数据表对应的一个列,如果注解中name不指定,表中列名默认和属性名一样 private String name; @Column(name = "u_email") private String email; 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 String getEmail() { return email; } public void setEmail(String email) { this.email = email; } }
数据接口(mapper):
import com.poje.myspringjpa.entity.User; import org.springframework.data.jpa.repository.JpaRepository; //继承JpaRepository来完成对数据库的操作,指定javabean类型,其javabean主键属性类型 public interface UserMapper extends JpaRepository{ //方法体内可自定义方法进行操作 }
拦截器(controller):
import com.poje.myspringjpa.entity.User; import com.poje.myspringjpa.mapper.UserMapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import java.util.List; @Controller public class UserController { @Autowired UserMapper userMapper; //注入mapper层 //根据id查询,查询单个 @RequestMapping("/hello/{id}") @ResponseBody public User hello(@PathVariable("id") Integer id){ // User user = userMapper.findOne(id); Spring Boot2.0.0以上本版本,把findOne(id)改成findById(id).get() User user = userMapper.findById(id).get(); //jpa自带查询方法 return user; } //查询全部 @RequestMapping("/findAll") @ResponseBody public ListfindAll(){ List list =userMapper.findAll();//jpa自带查询方法 return list; } }
四、完成以上配置后即可启动Springboot项目:
从控制台我们可以看出Spring-data-jpa帮我们执行了创建表语句,我们可以去数据库查看一番。。。
我们创建几条数据到表中,接着去打开浏览器,输入url:http://localhost:8080/hello/2,可以看到结果和控制台的sql语句。
浏览器端效果如下:
至此Springboot整合jpa实现简单创表及查询已经都实现了,实现了的小伙伴都非常奈斯!(晚上给自己加个鸡腿)
本人寄语:写博客希望记录当下,学习是永无止境的!努力成为IT界中的清流!