zoukankan      html  css  js  c++  java
  • SpringBoot_04springDataJPA

    说明:底层使用Hibernate

    一.springDataJPA和mybatisPlus的使用区别

    第一步:

    把mybatisPlus的依赖、配置删除 包括:实体类的注解、引导类的mapperScan、dao接口的父接口

    第二步:

    添加启动器

            <dependency>

                <groupId>org.springframework.boot</groupId>

                <artifactId>spring-boot-starter-data-jpa</artifactId>

            </dependency>

    第三步:

    修改pojo实体类

        在类名上添加一个注解@Table(name="表名") 用于表和实体类的映射关系和@Entity //构建关系

        在注解上添加一个@Id  表名是主键

        @Entity //构建关系

    第四步:

    修改dao,让Dao的接口继承一个父接口JpaRepository<User,Long>  ,默认就有了CRUD方法

    第五步:

    修改Service实现类中dao的方法 userDao.selectById(id)

    第六步:

    引导类上不需要 mapperScan

    二.SpringDataJPA的使用步骤

    1.    导入依赖

    <dependency>

                <groupId>org.springframework.boot</groupId>

                <artifactId>spring-boot-starter-data-jpa</artifactId>

            </dependency>

    完整依赖

        <dependencies>
            <!--通过项目模板,已经自动配置上了springmvc启动器,lombok启动器和test启动器-->
            <!--项目模板自动配置 开始-->
           
    <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
            </dependency>

            <dependency>
                <groupId>org.projectlombok</groupId>
                <artifactId>lombok</artifactId>
                <optional>true</optional>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-test</artifactId>
                <scope>test</scope>
            </dependency>
            <!--项目模板自动配置 结束-->

            <!--配置springboot整合mybatis 开始-->
            <!--配置mybatis 开始-->
    <!--        <dependency>
                <groupId>org.mybatis.spring.boot</groupId>
                <artifactId>mybatis-spring-boot-starter</artifactId>
                <version>2.0.1</version>
            </dependency>-->
            <!-- 通用mapper -->
            <!--<dependency>-->
                <!--<groupId>com.baomidou</groupId>-->
                <!--<artifactId>mybatis-plus-boot-starter</artifactId>-->
                <!--<version>3.1.2</version>-->
            <!--</dependency>-->
           
    <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-data-jpa</artifactId>
            </dependency>

            <!--配置mybatis 结束-->
            <!--配置jdbc 开始-->
                <!--spring中的jdbc连接和事务是配置中的重要一环,在SpringBoot中该如何处理呢?
                我们只要找到SpringBoot提供的启动器即可:
                 -->
           
    <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-jdbc</artifactId>
            </dependency>
            <!--配置jdbc 结束-->
            <!--配置mysql 开始-->
           
    <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>5.1.47</version>
            </dependency>
            <!--配置mysql 结束-->
            <!--配置Druid连接池 开始-->
           
    <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>druid</artifactId>
                <version>1.1.6</version>
            </dependency>
            <!--配置Druid连接池 结束-->
            <!--配置springboot整合mybatis 结束-->
       
    </dependencies>

    2.    引导类

    package com.ahd;

    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;

    @SpringBootApplication
    public class SpringbootDemo02Application {

       public static void main(String[] args) {
          SpringApplication.run(SpringbootDemo02Application.class, args);
       }

    }

    3.    实体类

    package com.ahd.pojo;

    import javax.persistence.Entity;
    import javax.persistence.Id;
    import javax.persistence.Table;
    import java.util.Date;

    /*@Data   //lombok的注解,在工程编译时自动为实体类添加上get,set,...方法
    @TableName("tb_user")  //告诉对应的数据库表的名字*/
    @Table(name="tb_user")
    @Entity
    public class User {
        // id
    //    @TableId //
    告诉 谁是主键
       
    @Id
        private Long id;
        // 用户名
       
    private String userName;
        // 密码
       
    private String password;
        // 姓名
       
    private String name;
        // 年龄
       
    private Integer age;
        // 性别,1男性,2女性
       
    private Integer sex;
        // 出生日期
       
    private Date birthday;
        // 创建时间
       
    private Date created;
        // 更新时间
       
    private Date updated;
        // 备注
       
    private String note;
    }

    4.    dao层

    package com.ahd.dao;

    import com.ahd.pojo.User;
    import org.springframework.data.jpa.repository.JpaRepository;
    public interface UserDao extends JpaRepository<User,Long> {//添加泛型,告知通用Mapper实体类是谁

    }

    5.    application.yml配置文件

    spring:
      datasource:
        type:
    com.alibaba.druid.pool.DruidDataSource
        username: root
        url: jdbc:mysql:///saas-export-96
        password: 123456
        driver-class-name: com.mysql.jdbc.Driver
    #mybatis:
    #  configuration:
    #    map-underscore-to-camel-case: true
    #  type-aliases-package: com.ahd.pojo
    #  mapper-locations: /mapper/**
  • 相关阅读:
    bootstrap select动态赋值与赋默认值
    json学习
    JsonObject学习遇到的一个奇葩的问题,当value为空时,key不见了
    servlet+jsp实现文件上传,和图片预览
    解决webstorm运行vue项目时不能同步的问题
    webStrom配置less且自动生成.css和自动压缩为.min.css
    怎么升级本地vue版本
    css这一段时间学习中遇到的比较有用,但是容易忘记的属性
    vue.js将unix时间戳转换为自定义时间格式
    文档碎片——createDocumentFragment
  • 原文地址:https://www.cnblogs.com/aihuadung/p/11592825.html
Copyright © 2011-2022 走看看