1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > mysql 占位符 出错_占位符报语法错误

mysql 占位符 出错_占位符报语法错误

时间:2023-05-28 15:22:25

相关推荐

mysql 占位符 出错_占位符报语法错误

新增和更新方法类里面的占位符能够跑起来,但是删除和查询单个女神里面的占位符就会报语法错误,将占位符手动改为具体整型数字就可以正确运行。

以下是部分源码。//删除功能代码块

publicvoiddelPeople(Integerid)throwsSQLException{

//获取数据库连接

Connectionconn=DBUtil.getConnection();

//编写sql语法规范的字符串为数据库修改数据

Stringsql=""

+"DELETEFROMtest"

+"WHEREid=?";

PreparedStatementpstmt=conn.prepareStatement(sql);

pstmt.setInt(1,id);

//通过PreparedStatement对象执行SQL语句

pstmt.execute();

}

//查询功能代码块

publicPeopleget(Integerid)throwsException{

//获取数据库连接

Connectionconn=DBUtil.getConnection();

//编写sql语法规范的字符串为数据库修改数据

Stringsql=""

+"SELECT*FROMtest"

+"WHEREid=?";

PreparedStatementpstmt=conn.prepareStatement(sql);

pstmt.setInt(1,id);

//通过PreparedStatement对象的executeQuery方法查询数据库存储的信息

ResultSetrs=pstmt.executeQuery(sql);

Peoplep=null;

while(rs.next()){

p=newPeople();

p.setAge(rs.getInt("age"));

p.setUsername(rs.getString("username"));

p.setId(rs.getInt("id"));

p.setSex(rs.getInt("sex"));

}

returnp;

}

//错误信息

Exceptioninthread"main"com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:YouhaveanerrorinyourSQLsyntax;checkthemanualthatcorrespondstoyourMySQLserverversionfortherightsyntaxtousenear'?'atline1

atsun.reflect.NativeConstructorAccessorImpl.newInstance0(NativeMethod)

atsun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)

atsun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)

atjava.lang.reflect.Constructor.newInstance(Constructor.java:526)

atcom.mysql.jdbc.Util.handleNewInstance(Util.java:425)

atcom.mysql.jdbc.Util.getInstance(Util.java:408)

atcom.mysql.jdbc.SQLError.createSQLException(SQLError.java:943)

atcom.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3973)

atcom.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3909)

atcom.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2527)

atcom.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2680)

atcom.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2497)

atcom.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2455)

atcom.mysql.jdbc.StatementImpl.executeQuery(StatementImpl.java:1369)

atcom.javajdbc.dao.PeopleDao.get(PeopleDao.java:103)

atcom.javajdbc.peopleaction.PeopleAction.main(PeopleAction.java:35)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。