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