private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
try {
String sql =" select * from '"+name+"' ";
pst = conn.prepareStatement(sql);
rs = pst.executeQuery();
table.setModel(DbUtils.resultSetToTableModel(rs));
}
catch(Exception e) {
JOptionPane.showMessageDialog(null, e);
}
finally {
try {
rs.close();
pst.close();
}
catch(Exception e) {
}
}
}
我在string sql="select * from '"+name+"'"
名称文本字段中使用用户输入但是它给出了错误。但是,当我输入表名时,它显示但不是通过名称文本字段获取表名。
答案 0 :(得分:0)
就像这样将输入字段的值赋给name string。
jTextField1表示保存名称的文本字段。
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
try {
String name= jTextField1.getText();
String sql =" select * from '"+name+"' ";
pst = conn.prepareStatement(sql);
rs = pst.executeQuery();
table.setModel(DbUtils.resultSetToTableModel(rs));
}
catch(Exception e) {
JOptionPane.showMessageDialog(null, e);
}
finally {
try {
rs.close();
pst.close();
}
catch(Exception e) {
}
}
}
答案 1 :(得分:0)
在选择语句中,'" +名称+"' used是获取jTextField值的字符串。因此,使用以下SQL语句从textfield值中获取表。
String s1 = jTextField1.getText();
try
{
Class.forName("org.apache.hive.jdbc.HiveDriver");
Connection con = DriverManager.getConnection("jdbc:hive2://localhost:10000/default","arunachalam", "");
Statement st = con.createStatement();
String sql = "select * from " + s1;
int rs = st.executeUpdate(sql);
showMessageDialog(null,"Query Executed");
}
catch(Exception e)
{
showMessageDialog(null,e);
}
在之后留一个空格然后再做声明。指定您用于文本字段的变量名称,这将起作用。 使用您在代码中使用的替代类驱动程序和连接语句。