Spring Boot 整合 Spring Data

mac2026-06-07  7

创建Spring Boot 工程

1)在pom文件中导入依赖

<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> <exclusions> <exclusion> <groupId>org.junit.vintage</groupId> <artifactId>junit-vintage-engine</artifactId> </exclusion> </exclusions> </dependency> </dependencies>

2)在 application.yml 文件中导入数据源。

spring: datasource: username: root password: root url: jdbc:mysql://localhost:3306/springdata?serverTimezone=Asia/Shanghai driver-class-name: com.mysql.cj.jdbc.Driver

3)创建实体类。

@Entity @Table(name = "tbl_user") public class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Integer id; @Column private String lastName; @Column private String email; //setter getter toString 有参无参构造 }

4)编写一个接口来操作实体类

public interface UserRepository extends JpaRepository<User, Integer> { }

    4.1) JpaRepository 继承 PagingAndSortingRepository<T, ID>, QueryByExampleExecutor<T> 实现了分页功能

          

@NoRepositoryBean public interface JpaRepository<T, ID> extends PagingAndSortingRepository<T, ID>, QueryByExampleExecutor<T> { @Override List<T> findAll(); @Override List<T> findAllById(Iterable<ID> ids); // ... }

      4.2)  PagingAndSortingRepository<T, ID>, QueryByExampleExecutor<T>  继承了  CrudRepository<T, ID>  可以实现基本的Crud 功能。

      

@NoRepositoryBean public interface PagingAndSortingRepository<T, ID> extends CrudRepository<T, ID> { Iterable<T> findAll(Sort sort); Page<T> findAll(Pageable pageable); }

    4.3)CrudRepository<T, ID> 继承了  Repository<T, ID>

@NoRepositoryBean public interface CrudRepository<T, ID> extends Repository<T, ID> { <S extends T> S save(S entity); <S extends T> Iterable<S> saveAll(Iterable<S> entities); Optional<T> findById(ID id); boolean existsById(ID id); Iterable<T> findAll(); Iterable<T> findAllById(Iterable<ID> ids); long count(); void deleteById(ID id); void delete(T entity); void deleteAll(Iterable<? extends T> entities); void deleteAll(); }

     4.4)Repository 就是一个接口类。

@Indexed public interface Repository<T, ID> { }

5)在application.yml 文件中配置api。

# 配置 jpa jpa: hibernate: # 更新或者创建 数据库表结构 ddl-auto: update # 控制台展示sql show-sql: true

6)配置成功之后可运行主方法,就会在数据库中创建相对应的表,在运行日志会出现。

Hibernate: create table tbl_user (id integer not null auto_increment, email varchar(255), last_name varchar(255), primary key (id)) engine=InnoDB

    这表示Spring Data 底层是 Hibernate  进行对数据进行操作的。

7) 创建控制层controller, 再创建UserController 控制类。

    

@RestController public class UserController { @Autowired UserRepository userRepository; @RequestMapping("/get/{id}") public User getUser(@PathVariable("id") Integer id) { return userRepository.getOne(id); } @RequestMapping("/save/user") public User insertUser(User user) { return userRepository.save(user); } }

8) 运行主方法,在地址栏中调试即可。

最新回复(0)