簡體   English   中英

Java MySQL如何選擇ID大於特定值的所有元素

[英]Java MySQL how to select all elemnts with id greater than particular

我有一個這樣的數據庫:

ID ---- ----名地方

1 ----喬治-----

2——約翰------有些

3 ---- STEFI ------夏威夷

我有一個從servlet獲得的變量,它是我們要與之比較的值。 假設它的idOwn = 1,所以我們要選擇id大於1的所有內容,在這種情況下為John和Stefi。 這是我到目前為止所做的,但它說存在語法問題。

else if (idOwn != 0) {
        sql = "SELECT * FROM posts WHERE id>? LIMIT 25";

        try {
            stmt = (PreparedStatement) GetConnection.buildConnection()
                    .prepareStatement(sql);
            stmt.setLong(1, idOwn);
            st = stmt.executeQuery();
            while (st.next()) {
                list.add(new PostBuilder()
                        .setName(st.getString("name"))
                        .setTime(st.getTimestamp("time"))
                        .setMessage(st.getString("message"))
                        .setId(st.getLong("id"))
                        .setUserId(st.getLong("userID"))
                        .setComments(CommentRegistry.getInstance().fetchComments(idOwn)).build());
               return list;
            }

預先謝謝您:)既然您在這里問了StackTrace

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.GeneratedConstructorAccessor14.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:408)
at com.mysql.jdbc.Util.getInstance(Util.java:383)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1062)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4226)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4158)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2615)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2776)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2834)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2783)
at com.mysql.jdbc.StatementImpl.executeQuery(StatementImpl.java:1569)
at com.kasapin40.social.comments.CommentRegistry.fetchComments(CommentRegistry.java:46)
at com.kasapin40.social.posts.PostRegistry.getPostList(PostRegistry.java:87)
at com.kasapin40.social.servlet.FetchPosts.doGet(FetchPosts.java:36)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:618)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.kasapin40.social.filter.LoginFilter.doFilter(LoginFilter.java:33)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:142)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:610)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:534)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1081)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:658)
at org.apache.coyote.http11.Http11NioProtocol$Http11ConnectionHandler.process(Http11NioProtocol.java:222)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1566)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1523)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Unknown Source)

"SELECT * FROM posts WHERE id>? LIMIT 25"錯誤,請嘗試以下方式: "SELECT * FROM posts WHERE id>? AND ROWNUM<=25"

@nitheism,您可以在此處打印stacktrace嗎?

我認為這與MySql問題無關,因為我毫無疑問地執行了查詢。

CREATE TABLE POSTS (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(30) NOT NULL,
place VARCHAR(50)
);

insert into POSTS values (1, 'George', 'New York');
insert into POSTS values (2, 'John', 'Colorado');
insert into POSTS values (3, 'Stefi', 'Hawaii');

SELECT * FROM POSTS WHERE id>1 LIMIT 25;
sql = "SELECT * FROM posts WHERE id>"+ idOwn +" LIMIT 25"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM