Connection conn = DBConnection.getConnection(); //获得连接对象
String findSQL = "select * from tb_message " +
"order by publishTime desc limit ?,?";
PreparedStatement pstmt = null; //声明预处理对象
ResultSet rs = null;
List<Message> messages = new ArrayList<Message>();
try {
pstmt = conn.prepareStatement(findSQL); //获得预处理对象并赋值
pstmt.setInt(1, page.getBeginIndex()); //查询起始点
pstmt.setInt(2, page.getEveryPage()); //查询记录数
rs = pstmt.executeQuery(); //执行查询
while(rs.next()) {
Message message = new Message();
message.setMessageID(rs.getInt(1)); //设置消息ID
message.setMessageTitle(rs.getString(2));//设置消息标题
message.setMessageContent(
rs.getString(3)); //设置消息内容
message.setEmployeeID(rs.getInt(4));//设置员工编号
message.setPublishTime(rs.getTimestamp(5));//设置发布时间
messages.add(message);//添加消息
}
} catch (SQLException e) {
e.printStackTrace();
} finally{
DBConnection.close(rs);
DBConnection.close(pstmt);
DBConnection.close(conn);
}
当我访问网页的时候,控制台抛出异常:com.microsoft.sqlserver.jdbc.SQLServerException: 'limit' 附近有语法错误。我查看了一下,异常是在 rs = pstmt.executeQuery(); 这一行抛出的。我使用的数据库是SQL server2008。当我去掉"order by publishTime desc limit ?,?" 然后不使用PreparedStatement类来查询数据库时候,运行就正常,所以问题应该是出现在sql语法上了,但是我在网上查,却查不到类似的语法,请求大神帮助。
String findSQL = "select * from tb_message " +
"order by publishTime desc limit ?,?";
PreparedStatement pstmt = null; //声明预处理对象
ResultSet rs = null;
List<Message> messages = new ArrayList<Message>();
try {
pstmt = conn.prepareStatement(findSQL); //获得预处理对象并赋值
pstmt.setInt(1, page.getBeginIndex()); //查询起始点
pstmt.setInt(2, page.getEveryPage()); //查询记录数
rs = pstmt.executeQuery(); //执行查询
while(rs.next()) {
Message message = new Message();
message.setMessageID(rs.getInt(1)); //设置消息ID
message.setMessageTitle(rs.getString(2));//设置消息标题
message.setMessageContent(
rs.getString(3)); //设置消息内容
message.setEmployeeID(rs.getInt(4));//设置员工编号
message.setPublishTime(rs.getTimestamp(5));//设置发布时间
messages.add(message);//添加消息
}
} catch (SQLException e) {
e.printStackTrace();
} finally{
DBConnection.close(rs);
DBConnection.close(pstmt);
DBConnection.close(conn);
}
当我访问网页的时候,控制台抛出异常:com.microsoft.sqlserver.jdbc.SQLServerException: 'limit' 附近有语法错误。我查看了一下,异常是在 rs = pstmt.executeQuery(); 这一行抛出的。我使用的数据库是SQL server2008。当我去掉"order by publishTime desc limit ?,?" 然后不使用PreparedStatement类来查询数据库时候,运行就正常,所以问题应该是出现在sql语法上了,但是我在网上查,却查不到类似的语法,请求大神帮助。
解决方案 »
- java学了有一段时间,要继续看什么书好?
- java解析xlsx
- Struts 2 action 怎么获得另外一个action对应的输入框的数据?
- ssh异常处理跟日志记录
- Myeclipse Xfire 根据已有wsdl文件创建 client时抱错('Generate Client' has encountered a problem ),请问如何解决
- baseFormController 的执行过程是怎么样的啊?
- 我想建一个Record类。对数据库进行封装。请大家指点一二
- 关于java连接池问题
- ■■struts标签如何使用css美化呢,大家指教一下,例如:■■
- 使用ssm框架实现一个表单同时将数据存入两张表(存一个问题,多个答案)
- Struts2 3.1.2 result 问题
- 图片上传与表单提交
我记得limit语句好像是在mysql中用吧,你是要分页查询么,sqlserver中是用的top,这个是数据库查询方面的知识哎,那你说然后不使用PreparedStatement类来查询数据库时候,运行就正常,就是用limit能查出来正确的数据?