用了一段时间的JPA,相比MyBatis来说使用JPA代码真的是简洁了不少。
以下为创建一个SpringBoot+JAP的入门项目的步骤。
- 我们先创建一个数据库备用,数据库的名字叫:db_jpa
- 创建一个SpringBoot项目
- 在pom文件中引入以下依赖
<!-- jpa依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<!-- java连接mysql依赖 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!-- druid连接池依赖 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.0.9</version>
</dependency>
- 在全局配置文件中配置数据库与连接池
spring.datasource.driverClassName=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/db_jpa
spring.datasource.username=连接数据库的用户名
spring.datasource.password=用户口令
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
- 在全局配置文件中配置JPA
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true
spring.jpa.hibernate.ddl-auto=update的作用:每次运行程序,没有表格会新建表格;有表格,表内有数据不会清空,只会更新
spring.jpa.show-sql=true的作用:在控制台显示SQL语句
- 创建一个POJO类映射数据库中的表
- @Entiy:说明这是一个POJO类
- @Table:指明这个类和数据库中哪张表映射
- @Id:表示这个属性在表中是主键
- @GeneratedVlue:说明了主键的生成方式
- @Column:指定这个属性和表中哪个字段对应
- @Data:这是lombok工具的一个注解本身和JPA没有关系,这里我用这个注解添加getter与setter方法,你也可以把这个注解删掉然后手动添加getter与setter方法。(PS:在用JPA生成一对多关系时使用@Data产生了循环查询的异常,不知道为什么,但这与这个基本的项目无关。)
- 创建一个接口继承JpaRepository,继承的这个接口需要指定两人个范型,第一个是要操作的POJO类,第二个是主键的类型。在接口中先不写任何方法。
- 有了接口后我们就可以通过这个接口调用方法来操数据库了
- 我们编写一个测试的控制器类,在这个类中用@Autowired注入一个接口的对象,然后用这个接口调用save()方法存入一个User对象,具体代码如下。
- 启动项目,在启动项目的过程中就会在数据库中创建表,可以在控制台看到建表语句
- 使用浏览器发送请求
- 在数据库中查看是否存入
可以看到是成功的。