zoukankan      html  css  js  c++  java
  • 从无到有Springboot整合Spring-data-jpa实现简单应用

    本文介绍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

          <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-jdbc</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
            </dependency>
    
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-test</artifactId>
                <scope>test</scope>
            </dependency>
            <!--MySQL依赖-->
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <scope>runtime</scope>
            </dependency>
          <!--  spring-data-jpa依赖-->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-data-jpa</artifactId>
            </dependency>

     二、配置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<User,Integer> {
    
        //方法体内可自定义方法进行操作
        
    }
    

    拦截器(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 List<User> findAll(){
            List<User> list =userMapper.findAll();//jpa自带查询方法
            return  list;
        }
    
    }
    

    四、完成以上配置后即可启动Springboot项目:

    从控制台我们可以看出Spring-data-jpa帮我们执行了创建表语句,我们可以去数据库查看一番。。。

     如图所示数据库表已经创建成功:

     我们创建几条数据到表中,接着去打开浏览器,输入url:http://localhost:8080/hello/2,可以看到结果和控制台的sql语句。

     浏览器端效果如下:

    至此Springboot整合jpa实现简单创表及查询已经都实现了,实现了的小伙伴都非常奈斯!(晚上给自己加个鸡腿)

    本人寄语:写博客希望记录当下,学习是永无止境的!努力成为IT界中的清流!

  • 相关阅读:
    C++ Vector
    难点目录
    学习图片展
    使用Github总结
    更改git bash默认的路径
    kubernetes dashboard 搭建参考
    vCenter 6.5 Appliance安装问题汇总
    转-Linux访问Windows FTP服务器中文乱码
    安装升级libpcap至1.9.0
    kubectl patch
  • 原文地址:https://www.cnblogs.com/bgyb/p/12937701.html
Copyright © 2011-2022 走看看