• Springboot整合SpringDataJpa入门篇(一)


      • spring-data-Jpa简介                                                                                                                                                                                                                                                                                          首先我们已经知道JPA(Java Persistence  API),中文名是Java 持久层 Api,是JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。它的诞生是为了整合第三方ORM框架,建立统一的标准。ORM框架中最著名的就是Hibernate,在mybaits没有流行之前,Hibernate是程序员最喜欢用的持久层框架之一,功能也非常强大。而事实上,Jpa的实现都是用Hibernate做的。spring-data-jpa又是什么呢?从名字就可以看出是spring和JPA的整合。使用spring-data-jpa最大的好处在于,我们在进行开发的过程中,常用的功能,我们几乎不需要写一条sql语句。下面开始介绍springdatajpa的使用方法:
      • spring-data-Jpa
      1. 在pom文件中引入依赖
          <!--springdatajpa依賴-->
                <dependency>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-data-jpa</artifactId>
                    <version>2.1.3.RELEASE</version>
                </dependency>
                <!--mysql 依賴-->
                <dependency>
                    <groupId>mysql</groupId>
                    <artifactId>mysql-connector-java</artifactId>
                    <scope>runtime</scope>
                </dependency>  
      2. 在application.properties中加入连接数据库的条件,我这里使用的是MySQL。
        server.port=8081
        spring.datasource.url=jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=utf8&serverTimezone=UTC
        spring.datasource.username=root
        spring.datasource.password=123456
        spring.datasource.driver-class-name=com.mysql.jdbc.Driver
        
        #配置自动建表
        spring.jpa.hibernate.ddl-auto=update
        spring.jpa.show-sql=true
        

          

      3. 接下来是写持久层的代码,很简单只有实现JpaRepository接口就可以实现基本的查询功能,其中Student是实体类,Integer是主键的类型
        public interface StudentRepository extends JpaRepository<Student,Integer> {
            
        }
        

        Student.java的代码。@Entitry表示该类是实体类,@Table在MySQL创建的表名,项目一启动就会自动创建,@Data需要引入lombok,这里我是为了方便,可以不用写get/set方法。

        @Data
        @Entity 
        @Table(name = "tb_student")
        @Component
        public class Student {
            @Id
            @GeneratedValue(strategy = GenerationType.AUTO)
            private Integer id ;
            @Column(name = "name",length = 50)
            private String name;
            @Column(name = "email",length = 100)
            private String email;
        }  

         controller层代码,我是跳过了业务层直接跳持久层了,当然实际开发是不会这样的。

        @RestController
        public class StudentController {
            @Autowired
            StudentRepository studentRepository;
             @Autowired
             Student student;
        
            @RequestMapping("/getAll")
            public List<Student> queryStudent(){
                List<Student> list  = new ArrayList<>();
                list = studentRepository.findAll();
                return list  ;
        
            }
             @RequestMapping("/getByID")
            public Optional<Student> queryStudentbyid() {
                List<Student> list = new ArrayList<>();
                Optional<Student> student= studentRepository.findById(1);
                return student;
            }
            
            @RequestMapping("/add")
           public Student addStudent(){
                student.setId(121111);
                student.setEmail("wewsdsdfs");
                student = studentRepository.save(student);
                 return student;
           }
           
        }
        

          在浏览器访问的结果

        "id":1,"name":"qinda","email":"1214111520@qq.com"},{"id":2,"name":"haha","email":"121"},{"id":3,"name":null,"email":"wewsdsdfs"}]  
      4.  

  • 相关阅读:
    18、led驱动程序的实现
    17、字符设备控制技术
    16、驱动访问大揭秘
    14、字符驱动编程模型
    个人开发—进度记录(一)
    个人开发—需求
    学习进度条
    敏捷开发第二阶段个人(七)
    敏捷开发第二阶段个人(六)
    敏捷开发第二阶段个人(五)
  • 原文地址:https://www.cnblogs.com/qinda/p/10965178.html
Copyright © 2020-2023  润新知