日期:2014-05-19  浏览次数:20581 次

java web开发中数据库操作问题
Java code
    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语法上了,但是我在网上查,却查不到类似的语法,请求大神帮助。

------解决方案--------------------
SQL SERVER 可以用limit 语句么,我记得好像只有TOP吧,难道是2008支持?