我想用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);
}
个人控制器
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
作为一个例子,我使用:spring boot示例数据jpa/pom。xml
在Spring启动参考中,它说:
当一个类不包含包声明时,它被认为是在“默认包”中。通常不鼓励使用“默认包”,应该避免。它可能会给使用@ComponentScan、@EntityScan或@SpringBootApplication注释的Spring Boot应用程序带来特殊问题,因为每个jar中的每个类都将被读取。
com
+- example
+- myproject
+- Application.java
|
+- domain
| +- Customer.java
| +- CustomerRepository.java
|
+- service
| +- CustomerService.java
|
+- web
+- CustomerController.java
在你的情况下。您必须在SpringBootApplication注释中添加scanBasePackages。就像SpringBootApplication(scanBasePackages={“domain”,“contorller”。})
当将类移动到特定的包(如存储库、控制器、域)中时,仅使用通用@SpringBootApplication
是不够的。
您必须为组件扫描指定基本包
@ComponentScan("base_package")
对于JPA
@EnableJpaRepositories(basePackages = "repository")
也需要,因此spring数据将知道在哪里查找存储库接口。
我像你一样创建了一个项目。结构看起来像这样
这些类只是从你的复制粘贴。
我把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>
检查这些文件是否存在差异。希望这有帮助
更新1:我更改了用户名。示例的链接现在是https://github.com/Yannic92/stackOverflowExamples/tree/master/SpringBoot/MySQL
问题内容: 我想用MySQL和JPA设置Spring Boot。为此,我创建: Person PersonRepository PersonController 开始课程示例: 对于数据库配置,我创建了application.properties 所以我有项目结构: 但是结果是我有例外: 问题答案: 我像你一样创建了一个项目。结构看起来像这样 这些类只是复制自你的类。 我将application.
我想使用JavaFx、Spring Boot和Spring Data JPA制作一个桌面应用程序,并将H2作为我的数据库。问题是我试图运行JUnit以将数据保存在本地目录中,但每次运行JUnit时数据都会丢失。 我的文件; 我的测试用例; 打印列表的大小是1,但当我再次像这样运行测试用例时 它打印的列表大小为0
我正在尝试创建一个spark应用程序,它对创建、读取、写入和更新MySQL数据非常有用。那么,有没有办法使用Spark创建一个MySQL表? 下面是在MySQL数据库中创建表的Scala JDBC代码。我怎样才能通过Spark做到这一点?
我将使用Apache Camel编写一个CRUD应用程序,非常像下面的示例:http://java.dzone.com/articles/rest-apache-camel 但我想使用JPA,而不仅仅是JDBC。 我看过Camel JPA组件,认为我可以使用它。但要从数据库中读取数据,它需要我定义一个消费者endpoint。 我想从JDBC示例中执行以下操作: 即调用JPA组件作为生产者。 这可能
这是我的职能。它获得产品的两个参数id和一个名称。使用MySQL命令删除数据库中的一行。我知道在我的代码中有缺失的行,我被卡住了,我不知道如何完成它。我还知道我的SQL行不正确。我不确定组合字符串“name”是否正确。
我有这个密码 E/AndroidRuntime:致命异常:AsyncTask#1进程:com.arnaway.metromap,pid:9493 java.lang.RuntimeException:在Android.os.AsyncTask$3执行doInBackground()时出错。done(AsyncTask.java:353)在java.util.concurrent.FutureTas