手把手搭建springboot项目,并测试springDataJPA
创始人
2024-02-02 03:05:53

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

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

点击访问

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

在这里插入图片描述

在这里插入图片描述

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

下图的JPAdemo就是我的项目
在这里插入图片描述

4.打开idea,导入项目

在这里插入图片描述

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

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

mysqlmysql-connector-java

在这里插入图片描述

6.在application.properties中添加配置

如果发现application.properties中文乱码,就更改下图所示的地方
在这里插入图片描述
添加如下配置:

# 数据库连接
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

在这里插入图片描述
配置说明:
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
在这里插入图片描述

8.创建实体类

package com.yangjunbo.JPADemo.pojo;import javax.persistence.*;@Entity
@Table(name = "Users")
public class User {@GeneratedValue(strategy= GenerationType.IDENTITY)@Idprivate 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;}
}

在这里插入图片描述

9.启动项目

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

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 {}

在这里插入图片描述

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 {@Resourceprivate UserRepository userRepository;@Testpublic void testSave(){User user = new User("yaogunxia","123456",40);userRepository.save(user);}@Testpublic void testUpdate() {User user = userRepository.findById(1L).get();user.setPassword("12345678");userRepository.save(user);}@Testpublic void testDelete() {User user = new User("yaogunxia","12345678",40);userRepository.delete(user);}@Testpublic void testSelect() {userRepository.findById(1L);}
}

在这里插入图片描述

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

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

相关内容

热门资讯

应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...
埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...