这是一段递归代码
public string obtainPartNumberInfo ( string leftobid ) {
省略……
stmt1 = con.createStatement();
Sql1 = "select /*+RULE*/ CLASS2,RIGHTID from PDMM31A.ASSMSTRC where LEFTID='"+leftobid+"'" ;
rs1 = stmt1.executeQuery( Sql1 ) ;
stmt2 = con.createStatement();
Sql2 = "select PARTNUMBER from PDMM31A."+ rs1.getString( "CLASS2" ) + " where OBID='"+rs1.getString("RIGHTID")+"'" ;
rs2 = stmt2.executeQuery( Sql2 ); if( rs.getString( "CLASS2" ).equals( "W2ProMtr" ) ) String tableName = "W2PRODCT";
if( rs.getString( "CLASS2" ).equals( "W2AsmMtr" ) ) String tableName = "W2ASSM";
if( rs.getString( "CLASS2" ).equals( "W2CmpMtr" ) ) String tableName = "W2COMPT";
if( rs.getString( "CLASS2" ).equals( "W2FStMtr" ) ) String tableName = "W2FACSTD";
if( rs.getString( "CLASS2" ).equals( "W2BStMtr" ) ) String tableName = "W2BUYSTD";
stmt3 = con.createStatement();
Sql3 = "select OBID from PDMM31A."+ tableName +" where PARTNUMBER='"+rs2.getString( "PARTNUMBER" )+"'" ;
rs3 = stmt3.executeQuery( Sql3 );
obid = rs3.getString( "OBID" ) 省略……
obtainPartNumberInfo( obid )
}请问这段代码用 PreparedStatement 是否可以提高些速度?用prepareStatement应该如何实现,请朋友们帮我改一下
PreparedStatement pst = conn.prepareStatement(Sql1);
pst.setString(1, leftobid);
ResultSet rs = pst.executeQuery();省略……
PreparedStatement 在带参数的SQL里效率和安全性都高些!防止SQL注入