开发者社区> 问答> 正文

java.sql.SQLException: url not set

druid.properties

spring.datasource.type=com.alibaba.druid.pool.DruidDataSource spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.datasource.druid.initial-size=5 spring.datasource.druid.min-idle=5 spring.datasource.druid.max-active=20 spring.datasource.druid.max-wait=60000 spring.datasource.druid.time-between-eviction-runs-millis=60000 spring.datasource.druid.min-evictable-idle-time-millis=30000 spring.datasource.druid.validation-query=SELECT 'x' spring.datasource.druid.test-while-idle=true spring.datasource.druid.test-on-borrow=false spring.datasource.druid.test-on-return=false spring.datasource.druid.pool-prepared-statements=true spring.datasource.druid.max-pool-prepared-statement-per-connection-size=20 spring.datasource.druid.filters=stat,wall spring.datasource.druid.connection-properties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000 spring.datasource.druid.stat-view-servlet.login-username=admin spring.datasource.druid.stat-view-servlet.login-password=admin spring.datasource.druid.stat-view-servlet.reset-enable=false spring.datasource.druid.stat-view-servlet.allow=127.0.0.1,* spring.datasource.druid.stat-view-servlet.url-pattern=/druid/* spring.datasource.druid.stat-view-servlet.enabled=true spring.datasource.druid.web-stat-filter.exclusions=".js,.gif,.jpg,.png,.css,.ico,/druid/" spring.datasource.druid.web-stat-filter.url-pattern=/

DBUtils.java

public DataSource getDataSource(String ip, String port, String username, String password, String dbName) { DataSource dataSource = null; try { Properties properties = new Properties(); // properties.load(new FileReader("src/main/resources/druid.properties")); properties.load(MySQLDBUtils.class.getClassLoader().getResourceAsStream("druid.properties")); properties.setProperty("spring.datasource.druid.url", String.format("jdbc:mysql://%s:%s/%s", ip, port, dbName)); properties.setProperty("spring.datasource.druid.username", username); properties.setProperty("spring.datasource.druid.password", password); dataSource = DruidDataSourceFactory.createDataSource(properties); } catch (Exception e) { log.error("创建Druid数据源失败{[]}", e); } return dataSource; }

执行上述代码后会报错:

10:50:47.324 [main] ERROR com.alibaba.druid.pool.DruidDataSource - {dataSource-1} init error java.sql.SQLException: url not set

原提问者GitHub用户MstString

展开
收起
山海行 2023-07-05 19:22:03 5097 0
4 条回答
写回答
取消 提交回答
  • 北京阿里云ACE会长

    java.sql.SQLException: url not set这个错误意味着Druid数据源的URL配置有问题。

    具体来说,Druid在初始化时会检查URL是否配置,若没配置则报这个错误。

    2023-07-30 19:15:14
    赞同 展开评论 打赏
  • 错误信息表明在初始化Druid数据源时出现了问题,报错信息为"java.sql.SQLException: url not set",意味着没有设置连接URL。

    在你的代码中,你尝试通过加载druid.properties文件来获取Druid连接池的配置,然后设置连接URL、用户名和密码等属性。然而,由于Druid连接池的配置文件加载是在Spring Boot的自动配置中进行的,直接加载druid.properties文件可能无法正确设置连接URL。

    2023-07-11 09:20:48
    赞同 展开评论 打赏
  • 通过**druidDataSource.setXX **的方式解决了。

    原回答者GitHub用户MstString

    2023-07-06 10:52:01
    赞同 展开评论 打赏
  • 报错信息显示 "url not set",意味着在配置文件 "druid.properties" 中未设置数据库的 URL。

    为了解决这个问题,您可以在 druid.properties 文件中添加以下属性:

    spring.datasource.druid.url=jdbc:mysql://localhost:3306/db_name
    

    localhost 替换为您的数据库主机名或 IP 地址,将 3306 替换为您的数据库端口号,以及 db_name 替换为您要连接的数据库名称。

    DBUtils.java 文件中的代码中,根据您的需求,您可以修改以下行:

    properties.setProperty("spring.datasource.druid.url", String.format("jdbc:mysql://%s:%s/%s", ip, port, dbName));
    

    将其中的 dbname 替换为您要连接的数据库名称。

    执行这些更改后,应该能够成功创建 Druid 数据源并连接到数据库。

    2023-07-05 19:31:18
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载