StringBuffer response = new StringBuffer(20);
BufferedInputStream buff = new BufferedInputStream(System.in);
char inchar;
do{
in = buff.read();
inchar = (char)in;
if (in != -1){
response.append(inchar);
}
}while((in != -1) && (inchar != '\n'));
System.out.println(response);// 1 ResultSet rec = st.executeQuery("SELECT * FROM t WHERE id = "+response+"");
// 2 ResultSet rec = st.executeQuery("response");如果用1,输入response为3就可以查询到结果但是如果我用2,然后输入的是我输入的是SELECT * FROM t WHERE id = 3,就报
SQL Errorjava.sql.SQLException: [Oracle][ODBC][Ora]ORA-00900: invalid SQL statement 900 37000请问该怎么解决呢,我就想手动输入一串SQL进行查询。谢谢~!
改成这样子 试下 吧
ResultSet rec = st.executeQuery("SELECT * FROM t WHERE id = ='" + response + "'");
改为
ResultSet rec = st.executeQuery(response.toString());
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String sql = "";
ResultSet rs = null;
try {
while((sql=br.readLine())!=null){
rs = st.executeQuery(sql);
}
while(rs.next()){
System.out.println(rs.getString(0));
}
} catch (IOException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
StringBuffer response = new StringBuffer(20);
BufferedInputStream buff = new BufferedInputStream(System.in);
char inchar;
do {
in = buff.read();
inchar = (char) in;
if (in != -1) {
response.append(inchar);
}
} while ((in != -1) && (inchar != '\n'));java.sql.PreparedStatement ps = conn.prepareStatement("SELECT * FROM t WHERE id =?");ps.setInt(1, Integer.valueOf(response.toString()));
ResultSet rs = ps.executeQuery();rs.close();
ps.close();
conn.close();