我整天都在为这个问题苦苦挣扎。在阅读了 Statements(S) 和 PreparedStatements(PS) 之间的好处之后,我决定将我所有的 S 转换为 Netbeans 中的 PS。我惊讶地发现没有错误,但是......我的代码执行也没有输出。
import java.sql.*;
public class ViewingMySQL {
public static void main(String[] args) {
//Declare Variables
Connection con;
ResultSet rs;
Statement stmt;
String sqlappname;
PreparedStatement findAppID_lookup= null;
String findAppID_lookup_stmt="select app.ID as APPID"
+" from IntergraphIN_AppTranslation"
+" inner join app on app.unit=IntergraphIN_AppTranslation.UnitName"
+" where IntergraphIN_AppTranslation.IntergraphUnitName=(?)";
try{
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
con = DriverManager.getConnection("jdbc:odbc:database","username","password");
sqlappname="'XXXY01'";
findAppID_lookup= con.prepareStatement(findAppID_lookup_stmt);
findAppID_lookup.setString(1, sqlappname);
rs = findAppID_lookup.executeQuery();
if(rs.next()){
System.out.println(rs.getInt("APPID"));
}
rs.close();
findAppID_lookup.close();
}
catch(Exception e){
System.err.println(e);
}
}
}`
当上面的代码执行和构建时......没有输出。运行:BUILD SUCCESSFUL(总时间:1 秒)
我原来是:
import java.sql.*;
public class ViewingMySQL {
public static void main(String[] args) {
//Declare Vars
Connection con;
ResultSet rs;
Statement stmt;
String sqlappname;
try{
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
con = DriverManager.getConnection("jdbc:odbc:Database","username","password");
sqlappname="'XXXY01'";
stmt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_READ_ONLY);
rs = stmt.executeQuery("SELECT ID FROM app where AppName="+sqlappname);
if(!rs.isBeforeFirst()){
rs.close();
rs = stmt.executeQuery("select app.ID from IntergraphIN_AppTranslation"
+" inner join app"
+" on app.unit=IntergraphIN_AppTranslation.UnitName"
+" where IntergraphIN_AppTranslation.IntergraphUnitName="+sqlappname);
}
if(rs.next()){
System.out.println(rs.getInt(1));
}
rs.close();
stmt.close();
con.close();
}catch(Exception e){
System.err.println(e);
}
}
}`
此代码输出:运行:2020603 BUILD SUCCESSFUL(总时间:1 秒)
您在上面看到的 Int 是我要查找的列的 ID。
有人可以帮我理解我在做什么...是我传递给 PS 的变量的格式吗?谢谢,斯科利斯