Spring Boot 添加MySQL数据库及JPA实例

下面是详细的“Spring Boot 添加MySQL数据库及JPA实例”的攻略。

1. 准备工作

  • 安装Java和MySQL
  • 新建Spring Boot项目(可使用IntelliJ IDEA等集成开发环境)

2. 添加MySQL依赖

pom.xml文件中添加mysql-connector-javaspring-boot-starter-data-jpa依赖。

<dependency>
   <groupId>mysql</groupId>
   <artifactId>mysql-connector-java</artifactId>
   <version>8.0.21</version>
</dependency>
<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>

3. 配置数据库连接和JPA

application.properties配置文件中添加数据库连接信息和JPA配置。

spring.datasource.url=jdbc:mysql://localhost:3306/your_database_name?useSSL=false&serverTimezone=UTC
spring.datasource.username=your_database_username
spring.datasource.password=your_database_password
spring.jpa.show-sql=true
spring.jpa.hibernate.ddl-auto=update
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL8Dialect

4. 创建实体类和数据访问接口

创建一个新的实体类,并使用@Entity@Id注解,指定表名和主键。接着创建一个数据访问接口,使用@Repository@Transactional注解,定义相应的数据访问方法。

示例1:创建实体类

@Entity
@Table(name = "users")
public class User {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    private String name;

    private String email;

    // getter、setter、toString方法省略
}

示例2:创建数据访问接口

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

    User findUserByEmail(String email);

    List<User> findUsersByNameContaining(String name);
}

5. 使用数据访问接口

在Spring Boot的控制器或服务中使用数据访问接口中定义的数据访问方法实现相应功能。

示例3:在控制器中使用数据访问接口

@RestController
@RequestMapping("/users")
public class UserController {

    @Autowired
    private UserRepository userRepository;

    @GetMapping("/{id}")
    public User getUserById(@PathVariable Long id) {
        return userRepository.findById(id).orElse(null);
    }

    @GetMapping
    public List<User> getAllUsers() {
        return userRepository.findAll();
    }

    @PostMapping
    public User addUser(@RequestBody User user) {
        return userRepository.save(user);
    }

    @PutMapping("/{id}")
    public User updateUser(@PathVariable Long id, @RequestBody User user) {
        User existingUser = userRepository.findById(id)
                .orElseThrow(() -> new ResourceNotFoundException("User not found"));
        existingUser.setName(user.getName());
        existingUser.setEmail(user.getEmail());
        return userRepository.save(existingUser);
    }

    @DeleteMapping("/{id}")
    public void deleteUser(@PathVariable Long id) {
        userRepository.deleteById(id);
    }
}

以上就是完整的“Spring Boot 添加MySQL数据库及JPA实例”的攻略了,希望能对你有所帮助!

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Spring Boot 添加MySQL数据库及JPA实例 - Python技术站

(0)
上一篇 2023年5月20日
下一篇 2023年5月20日

相关文章

  • java 创建线程的四种方式

    当需要创建多个任务并行执行时,我们可以通过创建线程来实现。Java中创建线程有四种方式,分别是继承Thread类、实现Runnable接口、实现Callable接口并使用FutureTask包装器把Callable装载成一个线程、使用Executor框架创建线程池。下面依次介绍这四种方式: 继承Thread类 我们可以继承Thread类并重写run()方法实…

    Java 2023年5月18日
    00
  • Jsp页面实现文件上传下载类代码

    JSP 页面可以通过文件上传下载类代码实现文件上传、下载功能。下面是实现文件上传下载功能的完整攻略: 1. 实现文件上传 1.1. 前端界面 用户通过 JSP 页面上传文件,需要在 JSP 页面中添加文件上传的 HTML 界面: <form action="upload.jsp" method="post" en…

    Java 2023年6月15日
    00
  • Mybatis 自动映射(使用需谨慎)

    Mybatis 自动映射 (Auto-mapping) 是指Mybatis在进行 SQL 查询结果和Java对象映射时,自动查找Java对象对应属性名和SQL查询结果列名相同的项,并进行赋值。自动映射虽然能够简化开发工作,但也存在一些需要注意的地方,使用时需谨慎。 自动映射的配置方式 方式一: 自动映射全局开启 Mybatis提供了全局配置自动映射的方式,即…

    Java 2023年5月19日
    00
  • 鉴权认证+aop+注解+过滤feign请求的实例

    “鉴权认证+aop+注解+过滤feign请求”的实例攻略如下: 一、背景说明 随着Web应用系统的不断发展,安全问题越来越引人注目。其中,用户鉴权认证及授权是Web应用的基础。在实际项目中,基于Spring Boot微服务的架构是最常见的,如何在此架构中实现用户鉴权认证成为关键问题。 本文将介绍一种实现用户鉴权认证的方式,通过AOP和注解来实现统一鉴权验证,…

    Java 2023年5月20日
    00
  • 什么是线程安全问题?

    以下是关于什么是线程安全问题的完整使用攻略: 什么是线程安全问题? 线程安全问题是指在多线程环境下,对共享资源的访问可能会出现数据不一致或者数据污染的问题。在多线程环境下,如果多个线程同时访问同一个共享资源,那么就有可能出现数据一致的问题,这就是线程全问题。 为了保证线程安全需要采取一些措施,比如使用同步机制、使用线程安全的数据结构。 1. 同步机制 同步机…

    Java 2023年5月12日
    00
  • java 格式化时间的示例代码

    下面是“java格式化时间的示例代码”的完整攻略。 格式化时间的方法 在Java中,可以使用SimpleDateFormat类中的format方法对时间进行格式化。 代码演示 下面给出一个示例,假设有如下需要格式化的时间: Date date = new Date(); 要把这个时间格式化为“yyyy-MM-dd HH:mm:ss”的形式,可以使用以下代码:…

    Java 2023年6月1日
    00
  • JavaWeb之Filter过滤器详解

    下面是“JavaWeb之Filter过滤器详解”的完整攻略: 一、Filter过滤器概述 1.1 过滤器基本介绍 Filter是JavaWeb中非常重要的一个概念,可以用于拦截请求、修改响应内容等操作。在Web服务器中,Filter的位置位于Servlet容器和客户端浏览器之间,每个Web应用程序(Web App)都可以定义若干个Filter,用于完成特定的…

    Java 2023年6月15日
    00
  • java实现客户信息管理系统

    Java实现客户信息管理系统攻略 步骤一:需求分析 在开始Java实现客户信息管理系统前,我们首先需要进行需求分析,以便确定开发的目标和功能要求。以下是客户信息管理系统的主要需求: 系统应该能够记录客户的基本信息,例如客户姓名、性别、年龄、联系方式等。 系统应该能够对客户信息进行增、删、改、查、排序等操作。 系统应具有用户登录、权限管理等功能,以确保系统的安…

    Java 2023年5月30日
    00
合作推广
合作推广
分享本页
返回顶部