QueryRunner requires a DataSource to be invoked in this way, or a Connection should be passed in

1.注意有没有dataSoure:配置文件是否有误

2.有没有connection:runner()里面是否添加ds参数.

12.Connections could not be acquired from the underlying database!

以上问题可能有一下原因造成:

1,驱动配置有误:driver=com.mysql.jdbc.Driver

2,数据库连接地址有误:url=jdbc:mysql://localhost:3306/test?3useUnicode=true&characterEncoding=utf8

3,密码或帐号有误:username=root

      password=root

4,数据库未启动或无权访问

5,项目未引入对应的驱动jar包mysql-connector-java-5.1.6-bin.jar

6,mysql root没有远程访问的权限,需要增加权限,增加权限的步骤如下:

进入mysql数据库:

grant all privileges on *.* to 'root'@'%' identified by 'root' withgrant option;

flush privileges;

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 这个错误提示意思是:QueryRunner需要以数据源的方式调用,或者需要传入一个连接对象。 简单来说,就是你在使用QueryRunner时,要么需要使用数据源来调用,要么需要手动传入一个连接对象。 ### 回答2: 该异常是Java中的SQL异常。它是由于没有提供数据源或连接而引起的。这种情况通常发生在使用Apache Commons DbUtils库中的QueryRunner类时。 QueryRunner类用于执行基于JDBC的数据库操作。它需要一个有效的数据源或连接来执行查询或更新操作。如果在调用QueryRunner方法时没有提供这些,就会引发上述异常。 解决这个问题的常用方法是提供一个有效的数据源或连接,这可以通过在代码中创建DataSource对象或使用连接池来实现。例如,如果使用连接池,则可以使用以下代码来获取连接并将其传递给QueryRunner: ``` DataSource ds = //create a DataSource object with the required configuration Connection conn = ds.getConnection(); QueryRunner runner = new QueryRunner(); //execute database operations using the QueryRunner object, passing the connection runner.query(conn, "SELECT * FROM table", handler); ``` 另一种解决方案是让QueryRunner自己管理连接。这可以通过在代码中使用QueryRunner的构造函数来实现。例如: ``` DataSource ds = //create a DataSource object with the required configuration QueryRunner runner = new QueryRunner(ds); //execute database operations using the QueryRunner object runner.query("SELECT * FROM table", handler); ``` 无论哪种方法,都需要提供一个有效的连接或数据源来避免上述异常。 ### 回答3: java.sql.sqlexception是Java中SQL异常的一种,表示在执行SQL语句时发生了错误。而queryrunner则是Apache Commons DBUtils项目中的一个类,用于简化执行SQL查询和更新操作的代码。 当出现“queryrunner requires a datasource to be invoked in this way, or a connection should be passed in”时,意思是说在执行操作时,queryrunner需要一个数据源来调用,或者需要传递一个连接。 数据源是一个配置对象,用于管理应用程序与数据库之间的连接。如果没有指定数据源,queryrunner将无法知道如何获取连接信息,从而无法执行SQL语句。 解决这个问题的方法是在创建queryrunner对象时,传递一个数据源或连接作为参数。具体的实现步骤如下: 1. 使用数据源来创建连接 DataSource dataSource = new BasicDataSource(); ((BasicDataSource) dataSource).setUrl("jdbc:mysql://localhost:3306/test"); ((BasicDataSource) dataSource).setUsername("root"); ((BasicDataSource) dataSource).setPassword("password"); Connection connection = dataSource.getConnection(); 2. 将连接传递给queryrunner QueryRunner queryRunner = new QueryRunner(); queryRunner.query(connection, "SELECT * FROM user", new BeanHandler<>(User.class)); 通过这种方式,可以避免出现“queryrunner requires a datasource to be invoked in this way, or a connection should be passed in”的异常。如果仍然出现了异常,则需要检查连接信息是否正确,或者应该使用哪种类型的数据源来获取连接。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值