java - 无法创建 PoolableConnectionFactory(未知系统变量 'language')

标签 java mysql database ibatis sqlmap

有人遇到过这个错误吗?

Cannot create PoolableConnectionFactory (unknown system variable 'language')

使用java、mysql、ibatis编程。添加了一些代码,现有代码也会出现此错误。

以下是错误信息。

org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (Unknown system variable 'language')

at org.apache.commons.dbcp.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:1549)
at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1388)
at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044)
at com.ibatis.sqlmap.engine.transaction.jdbc.JdbcTransaction.init(JdbcTransaction.java:48)
at com.ibatis.sqlmap.engine.transaction.jdbc.JdbcTransaction.getConnection(JdbcTransaction.java:89)
at com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQueryForObject(GeneralStatement.java:104)
at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForObject(SqlMapExecutorDelegate.java:566)
at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForObject(SqlMapExecutorDelegate.java:541)
at com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.queryForObject(SqlMapSessionImpl.java:106)
at com.ibatis.sqlmap.engine.impl.SqlMapClientImpl.queryForObject(SqlMapClientImpl.java:83)
at kes.db.dao.BaseDao.getObject(BaseDao.java:116)
at ocserver.android.service.dao.TB_OC_USER_BADGE_INFO_DAO.confirmNotification(TB_OC_USER_BADGE_INFO_DAO.java:21)
at ocserver.android.service.action.PushNotificationBadgeModAction.requestTEXT(PushNotificationBadgeModAction.java:66)
at kes.controller.TEXTServletAction.requestTEXT(TEXTServletAction.java:82)
at kes.controller.TEXTServletAction.doPost(TEXTServletAction.java:58)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Unknown Source)

下面是我的sql语句。

    <select id="select_TB_OC_USER_BADGE_INFO_001" parameterClass="TB_OC_USER_BADGE_INFO_VO" resultClass="TB_OC_USER_BADGE_INFO_VO">
        <![CDATA[
            SELECT
                    BADGE_MC,
                    BADGE_WB
                FROM
                    TB_OC_USER_BADGE_INFO
                WHERE
                    USER_ID = #USER_ID#
                AND
                    COMPANY_CODE = #COMPANY_CODE#
        ]]>
    </select>

下面是 TB_OC_USER_BADGE_INFO_VO。没有带getter和setter。

public class TB_OC_USER_BADGE_INFO_VO {

    private String USER_ID;
    private String COMPANY_CODE;
    private String TYPE;
    private int BADGE_MC;
    private int BADGE_WB; }

最佳答案

问题是防火墙。防火墙阻止了 java 访问其他计算机上的数据库。当允许访问时,我的程序开始工作。

关于java - 无法创建 PoolableConnectionFactory(未知系统变量 'language'),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39242433/

相关文章:

java - 删除特定按钮

java - 尽管在方法中返回 int,但 compareTo() 方法抛出 "This method must return int"错误

MySQL Join Query 错误,我做错了什么?

Java第二类mysql连接失败

mysql - 保持动态数据库字段的最佳方式?

Microsoft SQL 中的 MySQL 长文本模拟?

Java:在 JPanel/JFrame 中创建可编辑的项目列表

java - 在不同的类文件中将 JScrollPane 设置为 JTextArea

java - 我们如何存储任何文本语言(英语、印地语、西类牙语等)并从数据库中检索相同的值

sql - 在数据库中存储人员数据(名字、姓氏)的最佳方法