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

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

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

点击访问

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

手把手搭建springboot项目,并测试springDataJPA_第1张图片

手把手搭建springboot项目,并测试springDataJPA_第2张图片

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

下图的JPAdemo就是我的项目
手把手搭建springboot项目,并测试springDataJPA_第3张图片

4.打开idea,导入项目

手把手搭建springboot项目,并测试springDataJPA_第4张图片

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

<dependency>
    <groupId>org.springframework.bootgroupId>
    <artifactId>spring-boot-starter-data-jpaartifactId>
dependency>
<dependency>
    <groupId>mysqlgroupId>
    <artifactId>mysql-connector-javaartifactId>
dependency>

手把手搭建springboot项目,并测试springDataJPA_第5张图片

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

手把手搭建springboot项目,并测试springDataJPA_第6张图片
配置说明:
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)
    @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_第7张图片

9.启动项目

启动项目,可以看到输出如下图
手把手搭建springboot项目,并测试springDataJPA_第8张图片
系统启动后自动连接数据库,创建数据表结构,并打印出执行的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<User,Long> {

}

手把手搭建springboot项目,并测试springDataJPA_第9张图片

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_第10张图片

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

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

你可能感兴趣的:(Mac开发,springboot,java,后端,spring,JPA)