你百度下更快
prepareStatement和Statement区别
prepareStatement可以替换变量 
在SQL语句中可以包含?,可以用
    ps=conn.prepareStatement("select * from Cust where ID=?"); 
    int sid=1001; 
    ps.setInt(1, sid); 
    rs = ps.executeQuery(); 
可以把?替换成变量。
 
而Statement只能用 
    int sid=1001; 
    Statement stmt = conn.createStatement(); 
    ResultSet rs = stmt.executeQuery("select * from Cust where ID="+sid); 
来实现
 
PrepareStatement是欲编译方式执行SQL,多次调用此连接时,速度要比Statement快,所以建议用PrepareStatement.度是一样的还有就是PrepareStatement可以防Sql语句屏蔽(用于登录时):Eg:如果用Statement:产生select * from Cust where ID="+sid and '--