SpringBoot-MySql-JPA

前言:使用IDEA,Git相关工具进行编码和拉取源代码。

一:IDEA的相关配置

1:IDEA之Maven的配置

SpringBoot-MySql-JPA

之后选择自动更新就好

2:git的下载和安装

下载Git客户端安装包。安装非常简单,按提示单击“下一步”并选择好安装路径即可。安装完成后,在Windows的资源管理器中,单击鼠标右键弹出的菜单中将会多出如下 ,几个选择菜单:Git Init Here Git Gui

SpringBoot-MySql-JPA

2.1:在idea中配置github

SpringBoot-MySql-JPA

2.2:配置git

SpringBoot-MySql-JPA

2.3:使用git的客服端进行clone

SpringBoot-MySql-JPA

二:SpringBoot使用各种关系、非关系数据库

1:springboot整合mysql

         使用数据库是开发基本应用的基础。借助于开发框架,我们已经不用编写原始的访问数据库的代码,也不用调用JDBC (Java Data Base Connectivity)或者连接池等诸如此类的被称作底层的代码,我们将在高级的层次上访问数据库。而Spring Boot更是突破了以前所有开发框架访问数据库的方法,在前所未有的更加高级的层次上访问数据库。因为Spring Boot包含一个功能强大的资源库,为使用Spring Boot的开发者提供了更加简便的接口进行访问。本章将介绍怎样使用传统的关系型数据库,以及近期一段时间异军突起的NosQL (Not Only SQL)数据库。

       对于传统关系型数据库来说, Spring Boot使用JPA (Java Persistence API)资源库第2章在Spring Boot中使用数据库25来实现对数据库的操作,使用MySQL也是如此。简单地说, JPA就是为POJO ( Plain Ordinary Java Object)提供持久化的标准规范,即将Java的普通对象通过对象关系映射 Object-Relational Mapping, ORM)持久化到数据库中

2:开启项目之旅

2.1:创建项目:

SpringBoot-MySql-JPA

选择在当前页面打开

2.2:添加相关依赖

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.3.2.RELEASE</version>
</parent>

  <dependencies>
      <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-test -->
      <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-test</artifactId>
          <version>2.1.1.RELEASE</version>
          <scope>test</scope>
      </dependency>

      <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-web -->
      <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-web</artifactId>
          <version>2.1.3.RELEASE</version>
      </dependency>

      <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-data-jpa -->
      <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-data-jpa</artifactId>
          <version>2.1.4.RELEASE</version>
      </dependency>
      <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
      <dependency>
          <groupId>mysql</groupId>
          <artifactId>mysql-connector-java</artifactId>
          <version>5.1.38</version>
      </dependency>

2.3:准备数据库数据

假如现在有三个实体:部门、用户和角色,并且它们具有一定的关系,即一个用户只能隶属于一个部门,一个用户可以拥有多个角色。

SpringBoot-MySql-JPA

部门实体的建模如代码清单2-2所示,其中注解@Table指定关联的数据库的表名,注解@ld定义一条记录的唯一标识,并结合注解@GeneratedValue将其设置为自动生成。部门实体只有两个字段: id和name,程序中省略了Getter和Setter方法的定义.这些方法可以使用IDEA的自动生成工具很方便地生成。

SpringBoot-MySql-JPA

用户实体包含三个字段: id, name和createdate。其中注解@ManyToOne定义它与部门的多对一关系,并且在数据库表中用字段did来表示部门的ID,注解@ManyToMany定义与角色实体的多对多关系,并且用中间表 user role来存储它们各自的ID,以表示它们的对应关系。日期类型的数据必须使用注解@DateTimeFormat来进行格式化,以保证它在存取时能提供正确的格式,避免保存失败。注解@JsonBackReference用来防止关系对象的递归访问。

SpringBoot-MySql-JPA

SpringBoot-MySql-JPA

角色实体建模比较简单,只要按设计的要求,定义id和name字段即可,当然同样必须保证id的唯一性并将其设定为自动生成。

SpringBoot-MySql-JPA

2.4:实体类的持久化

通过上面三个实体的定义,实现了使用Java的普通对象(POJO)与数据库表建立映射关系(ORM),接下来使用JPA来实现持久化。用户实体使用JPA进行持久化的例子如代码清单2-5所示。它是一个接口,并继承于JPA资源库JpaRepository接口,使用注解@Repository将这个接口也定义为一个资源库,使它能被其他程序引用,并为其他程序提供存取数据库的功能。使用相同的方法,可以定义部门实体和角色实体的资源库接口。接口同样继承于 JpaRepository接口,只要注意使用的参数是各自的实体对象即可。

SpringBoot-MySql-JPA

Repositor的体系结构

SpringBoot-MySql-JPA

JPA还提供了一些自定义声明方法的规则,例如,在接口中使用关键字findBy.readBy. getBy作为方法名的前缀,拼接实体类中的属性字段(首个字母大写),并可选·择拼接一些SQL查询关键字来组合成一个查询方法。例如,对于用户实体,下列查询关键字可以这样使用:

SpringBoot-MySql-JPA

2.5:使用测试类进行测试

首先,增加一个使用JPA的配置类,如代码清单2-6所示。其中@EnableTransac tionManagement启用了JPA的事务管理;@EnableJpaRepositories启用了JPA资源库并指定了上面定义的接口资源库的位置;@EntityScan指定了定义实体的位置,它将导入我们定义的实体。注意,在测试时使用的JPA配置类可能与这个配置略有不同,这个配置的一些配置参数是从配置文件中读取的,而测试时使用的配置类把一些配置参数都包含在类定义中了。

SpringBoot-MySql-JPA

 SpringBoot-MySql-JPA

2.6:yml配置数据源

SpringBoot-MySql-JPA

测试:

SpringBoot-MySql-JPA

SpringBoot-MySql-JPA

SpringBoot-MySql-JPA

ok  到此结束    需要源代码的微我 

整合的redis,mongoDB等等。。