我使用预处理语句编写了select语句。每次尝试运行它都会出现此错误。 我怎么过来这个错误? 我的jdbc连接器是mysql-connector-java-5.1.13-bin.jar。 我的代码:
public Main_add_ad_to getAdDetail(int ad_id) {
Dbconnection db = new Dbconnection();
Connection con = db.getConnection();
ResultSet rs = null;
PreparedStatement stmt = null;
Main_add_ad_to detail_to = new Main_add_ad_to();
try {
String selectSQL = "SELECT * FROM ads_tbl where id = ?";
stmt = con.prepareStatement(selectSQL);
stmt.setInt(1, ad_id);
rs = stmt.executeQuery(selectSQL);
while (rs.next()) {
detail_to.setCat_ad(rs.getString("cat"));
detail_to.setType_ad(rs.getString("sale_type"));
detail_to.setBrand(rs.getString("brand"));
}catch (SQLException ex) {
Logger.getLogger(Lands_cls.class.getName()).log(Level.SEVERE, null, ex);
}
return detail_to;
}
错误代码..
2013年10月1日下午1:23:23 sanin.lands.model.View_ads_cls getAdDetail
SEVERE: null
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '?' at line 1
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
答案 0 :(得分:8)
错误就在这一行
rs = stmt.executeQuery(selectSQL);
这样做
rs = stmt.executeQuery();
答案 1 :(得分:1)
executeQuery(your QUERY)
当你们处理Statment
对象时,支持
rs = stmt.executeQuery();