Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用spring连接到数据库并对其进行测试?_Java_Spring_Spring Mvc_Jdbc - Fatal编程技术网

Java 如何使用spring连接到数据库并对其进行测试?

Java 如何使用spring连接到数据库并对其进行测试?,java,spring,spring-mvc,jdbc,Java,Spring,Spring Mvc,Jdbc,我正在尝试为我的spring项目创建一个连接,所以这非常简单 我想在application.properties上创建配置字段。我尝试了spring.datasource,但没有得到任何错误,但仍然没有得到任何信息,只有空指针。。。我认为这些连接没有正确连接 以下是我的pom的一部分,其中包含以下依赖项: <dependency> <groupId>org.springframework.boot</groupId> <a

我正在尝试为我的spring项目创建一个连接,所以这非常简单

我想在application.properties上创建配置字段。我尝试了
spring.datasource
,但没有得到任何错误,但仍然没有得到任何信息,只有空指针。。。我认为这些连接没有正确连接

以下是我的pom的一部分,其中包含以下依赖项:

<dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>
    <dependency>
        <groupId>com.h2database</groupId>
        <artifactId>h2</artifactId>
    </dependency>

    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-jdbc</artifactId>
        <version>4.2.1.RELEASE</version>
    </dependency>

    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.35</version>
    </dependency>
我没有得到任何错误,但是当我查询数据库时,我总是得到一个空指针,这让我觉得它工作不正常,知道如何配置它吗

谢谢

编辑:

我的配置类

@SpringBootApplication
public class Application {

    public static void main(String[] args) {
        ApplicationContext ctx = SpringApplication.run(Application.class, args);

    }

}
控制器

@Autowired
private MyService myService;


@RequestMapping("/")
public String index() {
    User myUser = myService.findUserById(1L);
    System.out.println(myUser);
    return myUser.getFirstName();
}
我的服务实现

@Service
public class MyServiceImpl implements MyService {

    @Autowired
    UserRepository userRepository;


    public User findUserById(Long id){
        return userRepository.findOne(id);
    };
}
我的实体

@Entity
public class User {

    @Id
    @GeneratedValue(strategy=GenerationType.AUTO)
    private Long id;
    private String firstName;
    private String lastName;


    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getFirstName() {
        return firstName;
    }

    public void setFirstName(String firstName) {
        this.firstName = firstName;
    }

    public String getLastName() {
        return lastName;
    }

    public void setLastName(String lastName) {
        this.lastName = lastName;
    }

}
和我的存储库

public interface UserRepository extends CrudRepository<User, Long> {

    //User findOne(Long id); this is a default method
}
public interface UserRepository扩展了crudepository{
//用户findOne(长id);这是默认方法
}
错误:


我总是得到空指针,即使数据存在。。。如果我把数据库密码改错了,我不会得到任何错误。。如果可以的话。

正确的数据源url是:

jdbc:mysql://HostName:Port(3306 is the default)/DBName

您缺少存储库上的
@Repository
注释。加上这个,看看是否对你有用

如果没有,
1。共享您获得的完整堆栈跟踪。

2.另外,您是否能够访问控制器端点?

我注意到您的实体没有实现可序列化接口

如果这不是问题所在,请查看github存储库中的spring引导示例,以供参考

1)请从pom中删除以下依赖项,因为它可能会让SpringBoot使用h2而不是mysql,这会导致即使使用错误的mysql密码,您也看不到任何错误

<dependency>
    <groupId>com.h2database</groupId>
    <artifactId>h2</artifactId>
</dependency>

这些属性名可以从SpringBoot文档中找到::

提交SpringXML或spring注释片段到配置类?如何注入bean?哪个bean?调用数据库?或者配置bean?如何在应用程序中使用JPABean?您可以提供链配置[ok provided]->应用程序[ok provided]->服务并将JPA bean注入到使用JPA连接器的服务->方法中吗?你可以发布堆栈跟踪异常吗?它不再抛出错误,但我仍然得到null,即使我将用户更改为错误的用户,似乎我没有收到其他类型的警告,知道吗?有几件事要测试:-在服务类中放置一个断点,看看它是否达到了那里。然后清除并检查控制台是否实际触发了查询。如果是,那是什么问题检查用户表中是否有id=1的条目。-在控制器中,若返回的用户对象为null,那个么您应该得到一个null指针异常。
<dependency>
    <groupId>com.h2database</groupId>
    <artifactId>h2</artifactId>
</dependency>
spring.datasource.url=jdbc:mysql://localhost:3306/database
spring.datasource.username=user
spring.datasource.password=password
spring.datasource.driver-class-name=com.mysql.jdbc.Driver