zoukankan      html  css  js  c++  java
  • com.microsoft.sqlserver.jdbc.SQLServerException: 对象名 ‘DUAL‘ 无效 | Druid双数据源MySQL+SQL server

    原文地址:https://blog.csdn.net/qq_35764460/article/details/113392270

    Druid双数据源
    解决方法
    背景信息:使用若依框架,配置mysql和sql server的双数据源,报错 'DUAL’无效

    com.microsoft.sqlserver.jdbc.SQLServerException: 对象名 'DUAL' 无效。
    1
    nested exception is org.apache.ibatis.exceptions.PersistenceException:
    ### Error querying database.
    Cause: org.springframework.jdbc.CannotGetJdbcConnectionException:
    Failed to obtain JDBC Connection; nested exception is com.microsoft.sqlserver.jdbc.SQLServerException: 对象名 'DUAL' 无效。
    ### The error may exist in file [D:workspace(IDEA)xxxxxxx argetclassesmapperxxxxxx.xml]
    ### The error may involve com.xxx.xxx.mapper.xxx.countMaleXunwu
    ### The error occurred while executing a query
    ### Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection;
    nested exception is com.microsoft.sqlserver.jdbc.SQLServerException: 对象名 'DUAL' 无效。

    com.microsoft.sqlserver.jdbc.SQLServerException: 对象名 'DUAL' 无效。

    ### Error querying database.
    Cause: org.springframework.jdbc.CannotGetJdbcConnectionException:
    Failed to obtain JDBC Connection; nested exception is com.microsoft.sqlserver.jdbc.SQLServerException: 对象名 'DUAL' 无效。
    ### The error may exist in file [D:workspace(IDEA)xxxxxx argetclassesmapperxxxxxx.xml]
    ### The error may involve com.xxx.xxx.xxx.xxxx.countMaleXunwu
    ### The error occurred while executing a query
    ### Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is com.microsoft.sqlserver.jdbc.SQLServerException: 对象名 'DUAL' 无效。]
    15:24:52.057 [Druid-ConnectionPool-Create-1458706578] ERROR c.a.d.p.DruidDataSource - [run,2787] - create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;DatabaseName=test, errorCode 208, state S0002
    com.microsoft.sqlserver.jdbc.SQLServerException: 对象名 'DUAL' 无效。
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    我们在自己的代码里面全局搜索这个DUAL,只有在Druid里面使用了这个语句去验证数据库的连接信息

    # 配置检测连接是否有效
    validationQuery: SELECT 1 FROM DUAL
    1
    2
    SELECT 1 FROM DUAL
    1
    在MySQL下面可以正常的使用返回1,MySQL有对象DUAL

    但是SQL server 没有对象DUAL,也就是这个语句在SQL server下面是不能运行的,所以报错了

    解决方法
    改成

    validationQuery: SELECT 1

  • 相关阅读:
    Linux下rabitMq的部署(源码安装)
    yum安装时出现:Cannot retrieve metalink for repository: epel. Please verify its path and try again
    性能实战分析-问题分析(三)
    当前服务器的并发连接数查看
    性能实战分析-问题分析(二)
    数据库中文乱码及分析
    HDU 4857 逃生 (优先队列+反向拓扑)
    HNU 12826 Balloons Colors
    HNU 12827 NASSA’s Robot
    HNU 12812 Broken Audio Signal
  • 原文地址:https://www.cnblogs.com/eyesfree/p/15062447.html
Copyright © 2011-2022 走看看