问题描述
- JDBC数据库查询的代码怎么使用之前输入的字符?
-
import java.sql.*;
import javax.swing.*;
public class stmt {public static void main(String[] args) { String s; s=JOptionPane.showInputDialog("请输入s:"); //这里的输入的s我希望在下面的SQL查询语句用到 select(); } static void select(){ Connection Conn = DBUtil.open(); String sql = "SELECT * FROM person where Deptno='s'"; //Deptno='s' 的s我希望是上面输入的值 try { Statement stmt = Conn.createStatement(); ResultSet rs = stmt.executeQuery(sql); while(rs.next()){ String Pno=rs.getString("Pno"); System.out.println(Pno);} } catch (SQLException e) { e.printStackTrace(); }finally{ DBUtil.close(Conn); } } 问题写在注释里了,求大神帮忙!
解决方案
public static void main(String[] args) {
String s;
s=JOptionPane.showInputDialog("请输入s:");
//这里的输入的s我希望在下面的SQL查询语句用到
select(s);
}
static void select(String s){
Connection Conn = DBUtil.open();
String sql = "SELECT * FROM person where Deptno='"+s+"'";
//Deptno='s' 的s我希望是上面输入的值
try {
Statement stmt = Conn.createStatement();
ResultSet rs = stmt.executeQuery(sql);
while(rs.next()){
String Pno=rs.getString("Pno");
System.out.println(Pno);}
} catch (SQLException e) {
e.printStackTrace();
}finally{
DBUtil.close(Conn);
}
}
解决方案二:
sql语句中使用变量参数,可以使用PreparedStatement,参数先用?代替,然后再设置参数。例如:
String sql = "SELECT * FROM person where Deptno=?";
PreparedStatement pstmt = Conn.prepareStatement(sql);
//下面的1代表第一个参数位置,从1开始;s代表你要传入的参数
pstmt.setString(1,s);
//执行查询即可
ResultSet rs = pstmt.executeQuery();
解决方案三:
select方法加一个参数就行了啊。实例代码:
static void select(String deptNo){
}
时间: 2024-09-27 00:54:09