java - MySQL Select 可在 WorkBench 中运行,但不能在 Java 中运行

标签 java mysql

我正在尝试让以下内容发挥作用,我已经阅读了大量有关此问题的在线帖子,但似乎没有任何效果。

当我在 MySQLWorkbench 中运行查询字符串时,它可以工作。 我正在使用 XPath 检索所有ExternalId 并将它们存储到列表中。

        String getExternalIds = "/FundShareClass/Fund/PortfolioList/Portfolio/Holding/HoldingDetail/@_ExternalId";
        List<String> externalIdList = new ArrayList<String>();

        XPath xPath =  XPathFactory.newInstance().newXPath();
        NodeList nodeList = (NodeList) xPath.compile(getExternalIds).evaluate(doc, XPathConstants.NODESET);

        for (int i = 0; i < nodeList.getLength(); i++)
        {
            externalIdList.add(nodeList.item(i).getFirstChild().getNodeValue() + '\n');
        }


        Connection conn = null;
        String url = "jdbc:mysql://localhost:3306/TestDb";
        String user = "root";
        String pass = "";

        Class.forName("com.mysql.jdbc.Driver").newInstance();
        conn = (Connection) DriverManager.getConnection(url, user, pass);
        System.out.print("Connection Made to Mysql Database");

for(String externalId : externalIdList)
            {
                 try
                 {
                     String currentId = externalId;

                     String query = "SELECT * FROM StructuredMappings WHERE managerCode=?";
                     PreparedStatement ps = conn.prepareStatement(query);
                     ps.setString(1, externalId);

                     ResultSet rs = ps.executeQuery();


                     Boolean response = rs.next();
                     System.out.println(response);

                     while(rs.next())
                     {
                         System.out.println("MAPPING CODE FOUND");

                         String ISIN = rs.getString("ISIN");
                         String idType = rs.getString("type");

                         System.out.println(ISIN +" , " +idType);
                     }

boolean 响应为所有有效 ID 打印出 False..

最佳答案

当您填充 externalIdList 时,您将向每个 ID 添加一个 '\n'

我不知道你的 ID,但我想你应该删除换行符。

for (int i = 0; i < nodeList.getLength(); i++)
    externalIdList.add(nodeList.item(i).getFirstChild().getNodeValue());

关于java - MySQL Select 可在 WorkBench 中运行,但不能在 Java 中运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31688958/

相关文章:

mysql - 在整个 SQL 表中搜索来自同一 MAC 地址的多个条目

php - 如何在mysql中的select语句中过滤结果

mysql - 使用 MYISAM 表中的自动增量字段进行更改

Java/Tomcat与Oracle 10g连接

java - 是否可以对 GlobalKTable 进行 ReKey?

java - 尝试从证书中获取签名时出现格式错误的内容异常

mysql - 尝试利用azure windows 2012 R2虚拟机mysql但无法访问它

java - 如何正确格式化结果集的输出

java - 如何使用 Stream API 返回 null?

php - 查询失败 SQLSTATE[42000] : Syntax error or access violation: 1064 You have an error in your SQL syntax