Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.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
Spring boot 我试图在spring引导应用程序中执行简单的JDBC调用,但它不起作用_Spring Boot - Fatal编程技术网

Spring boot 我试图在spring引导应用程序中执行简单的JDBC调用,但它不起作用

Spring boot 我试图在spring引导应用程序中执行简单的JDBC调用,但它不起作用,spring-boot,Spring Boot,我期待着使用SpringBoot应用程序创建一个服务,我喜欢使用JDBC准备好的语句调用来执行存储过程,从而获得所需的结果。 我喜欢连接池,但不幸的是,我不知道如何实现 摘要 (使用spring引导的服务-->Simple JDBC和连接池-->Mysql) 为此,我尝试创建一个数据源并执行jdbc语句,但不起作用 @Controller public class ExampleController { @Autowired private ExampleRepository

我期待着使用SpringBoot应用程序创建一个服务,我喜欢使用JDBC准备好的语句调用来执行存储过程,从而获得所需的结果。 我喜欢连接池,但不幸的是,我不知道如何实现

摘要

(使用spring引导的服务-->Simple JDBC和连接池-->Mysql)

为此,我尝试创建一个数据源并执行jdbc语句,但不起作用

@Controller
public class ExampleController {

    @Autowired
    private ExampleRepository repo;

    @RequestMapping("/")
    public @ResponseBody String getDataBaseData() throws SQLException{
        return repo.getDataBaseData();
    }
}

@Configuration
public class DataSources {
    @Bean(name = "primary")
    @Primary
    @ConfigurationProperties(prefix="spring.datasource")
    public DataSource primaryDataSource() {
        return DataSourceBuilder.create().build();
    }
}

@Component
public class ExampleRepository {

    @Autowired
    private DataSource ds;

    public String getDataBaseData() throws SQLException {
        Connection con = ds.getConnection();
        System.out.println(con);
        Statement stmt = con.createStatement();
        ResultSet rs = stmt.executeQuery("select * from emp");
        while (rs.next())
            System.out.println(rs.getInt(1) + "  " + rs.getString(2) + "  " + rs.getString(3));
        con.close();
        return rs.toString();
    }
}
获得如下错误

com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException:无法创建到数据库服务器的连接

com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException:无法创建到数据库服务器的连接

创建在类路径资源[org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaAutoConfiguration.class]中定义的名为“entityManagerFactory”的bean时出错:调用init方法失败;嵌套异常为org.hibernate.HibernateException:未设置“hibernate.dialogue”时,对方言ResolutionInfo的访问不能为null

预期结果:数据库数据应显示在web浏览器中

这是我的github回购
在我要创建的DBscript文件中,我可以从pom.xml中看到,您使用的是spring boot starter数据jpa。它获取不必要的依赖项,从而触发SpringBoot jpa自动配置。 如果希望将纯jdbc与spring boot一起使用,请将spring boot starter数据jpa替换为spring boot starter jdbc()

在这种情况下,您需要

  • 在maven依赖项中声明mysql jdbc驱动程序
  • 在属性或yaml中定义spring.datasource.url、spring.datasource.username、spring.datasource.password(如果maven deps中只有一个jdbc驱动程序,则无需定义spring.datasource.driver)
  • 删除您的数据源配置,因为springboot将为您自动配置它

  • “不工作”是什么意思?我没有得到3点,如何在java类中获得mysql连接对象如果我想连接两个不同的数据库,该怎么办