我怎样才能用spring连接到我的数据库并进行测试?
我正在尝试为我的spring项目创建一个连接,这非常简单。
  我想在我的application.properties上创建配置字段。  我试着用spring.datasource ,但没有得到任何错误,但仍然没有得到任何信息,只是空指针...我认为连接没有做好。 
这是我的一部分,有这种依赖:
<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>
而我的属性:
server.port=80
jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/database
jdbc.username=user
jdbc.password=password
我没有得到任何错误,但是当我查询数据库时,我总是得到一个空指针,这让我觉得工作不正常,任何想法如何配置?
谢谢
编辑:
我的配置类
@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
}
错误:
我总是得到空指针,即使数据存在...如果我更改数据库的密码错误,我没有得到任何错误..就好像它会没事。
1)请从pom中删除下面的依赖项,因为它可能会让SpringBoot使用h2而不是mysql,这使得即使使用错误的mysql密码也没有看到任何错误。
<dependency>
    <groupId>com.h2database</groupId>
    <artifactId>h2</artifactId>
</dependency>
2)在application.properties中,请使用:
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
这些属性名称可以从SpringBoot文档中找到:http://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-sql.html:
正确的数据源网址是:
jdbc:mysql://HostName:Port(3306 is the default)/DBName
  您在存储库中缺少@Repository注释。  添加,看看是否适合你。 
  如果不, 
  1.共享您正在获取的完整堆栈跟踪。 
  另外,您是否能够连接到控制器端点? 
上一篇: how can I connect to my database with spring and test it?
