首页 > 开发 > Java > 正文

SpringBoot集成JPA的示例代码

2024-07-13 10:17:10
字体:
来源:转载
供稿:网友

本文介绍了SpringBoot集成JPA的示例代码,分享给大家,具体如下:

1.创建新的maven项目

Spring,Boot,JPA,SpringBoot

2. 添加必须的依赖

  <!--springboot的必须依赖-->  <parent>    <groupId>org.springframework.boot</groupId>    <artifactId>spring-boot-starter-parent</artifactId>    <version>1.5.9.RELEASE</version>  </parent>  <dependencies>    <!--启动springmvc的相关配置,springboot的自动配置-->    <dependency>      <groupId>org.springframework.boot</groupId>      <artifactId>spring-boot-starter-web</artifactId>    </dependency>    <!--jpa-->    <dependency>      <groupId>org.springframework.boot</groupId>      <artifactId>spring-boot-starter-data-jpa</artifactId>    </dependency>    <!--mysql驱动-->    <dependency>      <groupId>mysql</groupId>      <artifactId>mysql-connector-java</artifactId>    </dependency>  </dependencies>

3. 新建springboot启动类

import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplicationpublic class Application {  public static void main(String[] args) {    SpringApplication.run(Application.class,args);  }}

4. 在resources跟目录下新建application.properties

#建立/更新数据表的配置spring.jpa.hibernate.ddl-auto=update#数据库地址spring.datasource.url=jdbc:mysql://localhost:3306/qian?useUnicode=true&characterEncoding=utf-8#数据库用户名spring.datasource.username=root#数据库密码spring.datasource.password=123
  1. update:Hibernate根据给定的Entity结构改变数据库。
  2. create: 每次都会创建数据库,关闭时不会删除
  3. none: mysql的默认设置 , 不改变数据结构
  4. create-drop: 创建数据库,但是每次sessionFactory关闭后都会删除

5. 新建实体类User

这个时候其实已经可以启动springboot, 但是不会生成数据表,因为还没有配置实体类的jpa

Spring,Boot,JPA,SpringBoot

先新建user.java

import org.hibernate.annotations.GenericGenerator;import javax.persistence.Entity;import javax.persistence.GeneratedValue;import javax.persistence.Id;/** * Created by Andy on 2018/1/20. *///表明这是个需要生成数据表的类@Entitypublic class User {//  定义主键id  @Id//  声明一个策略通用生成器,name为”system-uuid”,策略strategy为”uuid”。  @GenericGenerator(name = "system-uuid", strategy ="uuid")//  用generator属性指定要使用的策略生成器。  @GeneratedValue(generator = "system-uuid")  private String id;  private String name;  private Integer age;  private Boolean sex;  public String getId() {    return id;  }  public void setId(String id) {    this.id = id;  }  public String getName() {    return name;  }  public void setName(String name) {    this.name = name;  }  public Integer getAge() {    return age;  }  public void setAge(Integer age) {    this.age = age;  }  public Boolean getSex() {    return sex;  }  public void setSex(Boolean sex) {    this.sex = sex;  }}

这时候启动项目,就会在指定位置下生成一个user数据表

Spring,Boot,JPA,SpringBoot

6. 实现CRUD

CrudRepository是一个提供了普通增删改查方法的接口,由spring内部提供,我们只需调用即可

@NoRepositoryBeanpublic interface CrudRepository<T, ID extends Serializable> extends Repository<T, ID> {  <S extends T> S save(S var1);  <S extends T> Iterable<S> save(Iterable<S> var1);  T findOne(ID var1);  boolean exists(ID var1);  Iterable<T> findAll();  Iterable<T> findAll(Iterable<ID> var1);  long count();  void delete(ID var1);  void delete(T var1);  void delete(Iterable<? extends T> var1);  void deleteAll();}

新建UserRepository.java

public interface UserRepository extends CrudRepository<User, String> {}

7. 实现controller控制

新建UserController.java

@RestControllerpublic class UserController {  @Autowired  private UserRepository userRepository;  @RequestMapping("/add")  public User add(String name){    User user = new User();    user.setName(name);    return userRepository.save(user);  }  @RequestMapping("/list")  public Iterable<User> list(){    Iterable<User> all = userRepository.findAll();    return all;  }}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持VeVb武林网。


注:相关教程知识阅读请移步到JAVA教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表