返回

手把手搭建springboot项目,并测试springDataJPA

发布时间:2022-12-02 13:25:07 231
# java# 后端# spring# sql# 信息

这篇文章记录了搭建springboot项目并测试springDataJPA的过程,接下来一起看看吧。

1.访问阿里云java脚手架网站

​​点击访问​​

2.按照下图勾选并获取代码

手把手搭建springboot项目,并测试springDataJPA_后端

手把手搭建springboot项目,并测试springDataJPA_java_02

3.将获取到的代码解压到idea工作空间。

下图的JPAdemo就是我的项目

手把手搭建springboot项目,并测试springDataJPA_后端_03

4.打开idea,导入项目

手把手搭建springboot项目,并测试springDataJPA_后端_04

5.在pom文件中添加JPA相关依赖


org.springframework.boot
spring-boot-starter-data-jpa


mysql
mysql-connector-java

手把手搭建springboot项目,并测试springDataJPA_JPA_05

6.在application.properties中添加配置

如果发现application.properties中文乱码,就更改下图所示的地方

手把手搭建springboot项目,并测试springDataJPA_java_06

 

添加如下配置:

# 数据库连接
spring.datasource.url=jdbc:mysql://localhost:3306/jpa_test?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8&useSSL=true
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
# JPA配置
spring.jpa.properties.hibernate.hbm2ddl.auto=create
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect
# SQL输出
spring.jpa.show-sql=true
# format 下SQL输出
spring.jpa.properties.hibernate.format_sql=true

手把手搭建springboot项目,并测试springDataJPA_springboot_07

 

配置说明:

1)spring.jpa.properties.hibernate.hbm2ddl.auto:该配置比较常用,配置实体类维护数据库表结构的具体行为。当服务首次启动时会在数据库中生成相应的表,后续启动服务时,如果实体类有增加属性就会在数据中添加相应字段,原来的数据仍然存在。

update:常用的属性,表示当实体类的属性发生变化时,表结构跟着更新。

create:表示启动时删除上一次生成的表,并根据实体类重新生成表,之前表中的数据会被清空。

create-drop:表示启动时根据实体类生成表,但是当sessionFactory关闭时表会被删除。

validate:表示启动时验证实体类和数据表是否一致。

none:什么都不做。

2)spring.jpa.show-sql:表示hibernate在操作时在控制台打印真实的SQL语句,便于调试。

3)spring.jpa.properties.hibernate.format_sql:表示格式化输出的JSON字符串,便于查看。

4)spring.jpa.properties.hibernate.dialect:指定生成表名的存储引擎为InnoDB。

7.根据上面的配置信息,创建一个数据库。

创建数据库,可以参考这篇文章:​​创建数据库命令​​ 如果没有按照mysql数据库,先安装一下mysql。

创建数据库也可以使用可视化客户端创建,更加简单方便。如DBeaver

手把手搭建springboot项目,并测试springDataJPA_spring_08

8.创建实体类

package com.yangjunbo.JPADemo.pojo;


import javax.persistence.*;


@Entity
@Table(name = "Users")
public class User {
@GeneratedValue(strategy= GenerationType.IDENTITY)
@Id
private Long id;
@Column(length = 64)
private String name;
@Column(length = 64)
private String password;
private int age;

public User(){
}
public User(String name, String password, int age) {
this.name = name;
this.password = password;
this.age = age;
}


public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public String getPassword() {
return password;
}

public void setPassword(String password) {
this.password = password;
}

public int getAge() {
return age;
}

public void setAge(int age) {
this.age = age;
}


public void setId(Long id) {
this.id = id;
}

public Long getId() {
return id;
}
}

手把手搭建springboot项目,并测试springDataJPA_spring_09

9.启动项目

启动项目,可以看到输出如下图

手把手搭建springboot项目,并测试springDataJPA_spring_10

 

系统启动后自动连接数据库,创建数据表结构,并打印出执行的SQL语句。如果查看数据库,可以看到数据库中对应的Users表也创建成功了,说明项目已经成功集成JPA并创建实体表。

手把手搭建springboot项目,并测试springDataJPA_后端_11

10.测试增删改查功能

1.先创建一个UserRepository类

package com.yangjunbo.JPADemo.repository;

import com.yangjunbo.JPADemo.pojo.User;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;

@Repository
public interface UserRepository extends JpaRepository<User,Long> {

}

手把手搭建springboot项目,并测试springDataJPA_java_12

2.创建UserRepositoryTest测试类

package com.yangjunbo.JPADemo;

import com.yangjunbo.JPADemo.pojo.User;
import com.yangjunbo.JPADemo.repository.UserRepository;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;

import javax.annotation.Resource;

@RunWith(SpringRunner.class)
@SpringBootTest
public class UserRepositoryTest {
@Resource
private UserRepository userRepository;
@Test
public void testSave(){
User user = new User("yaogunxia","123456",40);
userRepository.save(user);
}

@Test
public void testUpdate() {
User user = userRepository.findById(1L).get();
user.setPassword("12345678");
userRepository.save(user);
}

@Test
public void testDelete() {
User user = new User("yaogunxia","12345678",40);
userRepository.delete(user);
}

@Test
public void testSelect() {
userRepository.findById(1L);
}
}

手把手搭建springboot项目,并测试springDataJPA_JPA_13

3.执行测试方法验证数据是否插入更新删除查询。

参考书籍:《springboot从入门到实战-章为忠著》

 

特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(0)
按点赞数排序
用户头像
精选文章
thumb 中国研究员首次曝光美国国安局顶级后门—“方程式组织”
thumb 俄乌线上战争,网络攻击弥漫着数字硝烟
thumb 从网络安全角度了解俄罗斯入侵乌克兰的相关事件时间线