当前位置: 首页 > 面试题库 >

如何将Spring Boot与MySQL数据库和JPA一起使用?

敖硕
2023-03-14
问题内容

我想用MySQL和JPA设置Spring Boot。为此,我创建: Person

package domain;

import javax.persistence.*;

@Entity
@Table(name = "person")
public class Person {

@Id
@GeneratedValue
private Long id;

@Column(nullable = false)
private String firstName;

// setters and getters
}

PersonRepository

package repository;

import domain.Person;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.repository.CrudRepository;


public interface PersonRepository extends CrudRepository<Person, Long> {

Page<Person> findAll(Pageable pageable);
}

PersonController

package controller;

import domain.Person;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import repository.PersonRepository;

@Controller
public class PersonController {

@Autowired
private PersonRepository personRepository;

@RequestMapping("/")
@ResponseBody
public String test() {
    Person person = new Person();
    person.setFirstName("First");
    person.setLastName("Test");
    personRepository.save(person);
    return "hello";
}
}

开始课程示例:

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class Example {

public static void main(String[] args) throws Exception {
    SpringApplication.run(Example.class, args);
}

}

对于数据库配置,我创建了application.properties

spring.jpa.hibernate.ddl-auto=create-drop
spring.jpa.properties.hibernate.globally_quoted_identifiers=true

spring.datasource.url=jdbc:mysql://localhost/test_spring_boot
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driverClassName=com.mysql.jdbc.Driver

所以我有项目结构:

但是结果是我有例外:

org.springframework.beans.factory.BeanDefinitionStoreException: Failed to parse configuration class [Example]; nested exception is java.io.FileNotFoundException: class path resource [org/springframework/security/config/annotation/authentication/configurers/GlobalAuthenticationConfigurerAdapter.class] cannot be opened because it does not exist

问题答案:

我像你一样创建了一个项目。结构看起来像这样

这些类只是复制自你的类。

我将application.properties更改为:

spring.datasource.url=jdbc:mysql://localhost/testproject
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driverClassName=com.mysql.jdbc.Driver
spring.jpa.hibernate.ddl-auto=update

但我认为你的问题出在你的pom.xml中:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.4.1.RELEASE</version>
</parent>

<artifactId>spring-boot-sample-jpa</artifactId>
<name>Spring Boot JPA Sample</name>
<description>Spring Boot JPA Sample</description>

<dependencies>
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>
</dependencies>
<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

检查这些文件是否有差异。希望这可以帮助



 类似资料:
  • 当我意识到数据库位置硬编码到PU中时,我正在使用UCanAccess并设置实体和持久化单元。xml(可以构建实体,但我需要变量)。 我正在创建一个应用程序,将提供给需要访问自己数据库的人,但这是一个随机路径。 我很好奇我到底如何才能更改PU中的信息? 我能想到的唯一方法是如何编辑xml文件,或者动态创建xml文件。 有人知道我是怎么做到的吗? 使用常规java.sql命令很简单,所以我希望它在JP

  • 我有以下的类描述片段: 此代码在HiberNate 4上不起作用,因为不支持 我从Joda Time看到了关于如何使用LocalDateTime的建议,但我使用的是Java 8。

  • 我想用MySQL和JPA设置Spring Boot。为此,我创建了:Person PersonRepository公司 个人控制器 开始上课示例: 对于数据库配置,我创建application.properties 所以我有项目结构: 但结果我有例外: 作为一个例子,我使用:spring boot示例数据jpa/pom。xml

  • 我是通过阅读Spring Boot in Action这本书开始学习Spring Boot的,我正在学习这本书中的示例,试图自己运行它们,但我在使用时遇到了问题。 我已经翻遍了这一章,寻找我可能的不匹配。然而,它就是不起作用。 这个项目应该是一个简单的阅读清单。 代码如下: 读者@实体: Jpa接口:

  • 问题内容: 我想在创建PHP PDO对象之后选择要使用的MySQL数据库。我该怎么做呢? 有等于mysqli :: select_db的PDO吗? 也许我试图不当使用PDO?请帮助或解释。 编辑 我不应该使用PDO创建新数据库吗?我知道使用PDO的大部分好处会因为很少使用的操作而丢失,该操作不会插入数据,例如,但是不得不使用其他连接创建数据库,然后创建PDO连接进行其他调用似乎很奇怪。 问题答案:

  • 我试图在我的codeigniter应用程序中包含甘特图。接下来的教程一是:https://docs.dhtmlx.com/tutorials__connector_codeigniter__step6.html 当我深入研究这个问题并直接点击控制器时,我发现了一个问题: Sub_文件夹是实际的项目文件夹,其中有复制粘贴dhtmlx、dhtmlxGantt和dhtmlxScheduler文件夹。我不