Java 无法使用executeQuery()和StringTokenizer发出数据操作语句
嗨,我想做这样的事情:Java 无法使用executeQuery()和StringTokenizer发出数据操作语句,java,jdbc,Java,Jdbc,嗨,我想做这样的事情: StringTokenizer tokenizer = new StringTokenizer(getCompletedAnswers, "$"); while(tokenizer.hasMoreTokens()){ System.out.println(tokenizer.nextToken()); rs = st.executeQuery("INSERT
StringTokenizer tokenizer = new StringTokenizer(getCompletedAnswers, "$");
while(tokenizer.hasMoreTokens()){
System.out.println(tokenizer.nextToken());
rs = st.executeQuery("INSERT INTO "+db+".answersTable(`answer`) VALUES ('"+tokenizer.nextToken()+"')");
}
但它给了我一个错误无法使用executeQuery()发出数据操作语句。
当我在文档中看到我必须使用executeUpdate()
时,我正在这样做:
rs = st.executeUpdate("INSERT INTO "+db+".answersTable(`answer`) VALUES ('"+tokenizer.nextToken()+"')");
它告诉我:类型不匹配:无法从int转换为ResultSet
知道如何使用StringTokenizer将这些令牌放入数据库吗?
谢谢您应该使用语句。请改为执行更新 executeUpdate方法返回一个int: 返回: (1)SQL数据操作语言(DML)语句的行数,或(2)不返回任何内容的SQL语句的行数为0
好的,它可以工作,但它只向数据库添加一个标记,如果我从标记器读取了两个标记abc1和abc2。nextToken()它只添加abc2,知道为什么吗?原因是不能重用语句(st)。所以在while循环内而不是在while循环外初始化st。这就是我所做的,但仍然没有结果,和以前一样。我使用了
语句st=null
然后st.executeUpdate(“插入“+db+”.answersTable(answer)值(“+tokenizer.nextToken()+”)”)代码>内部while loopok问题已解决,需要将tokenizer.nextToken()分配给stringstring str=tokenizer.nextToken()代码>同样糟糕的是,sql语句实际上可以重用