问题描述
java.rmi.ConnectException: Connection refused to host: santafe.mightygumball.com; nested
exception is:
java.net.ConnectException: Connection timed out: connect
at java.rmi/sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:623)
at java.rmi/sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:209)
at java.rmi/sun.rmi.transport.tcp.TCPChannel.newConnection(TCPChannel.java:196)
at java.rmi/sun.rmi.server.UnicastRef.newCall(UnicastRef.java:343)
at java.rmi/sun.rmi.registry.RegistryImpl_Stub.rebind(RegistryImpl_Stub.java:150)
at java.rmi/java.rmi.Naming.rebind(Naming.java:177)
at gumball.GumballMachineTestDrive.main(GumballMachineTestDrive.java:17)
Caused by: java.net.ConnectException: Connection timed out: connect
at java.base/sun.nio.ch.Net.connect0(Native Method)
at java.base/sun.nio.ch.Net.connect(Net.java:493)
at java.base/sun.nio.ch.Net.connect(Net.java:482)
at java.base/sun.nio.ch.NioSocketImpl.connect(NioSocketImpl.java:588)
at java.base/java.net.socksSocketImpl.connect(SocksSocketImpl.java:339)
at java.base/java.net.socket.connect(Socket.java:603)
at java.base/java.net.socket.connect(Socket.java:552)
at java.base/java.net.socket.<init>(Socket.java:475)
at java.base/java.net.socket.<init>(Socket.java:249)
at
java.rmi/sun.rmi.transport.tcp.TCPDirectSocketFactory.createSocket
(TCPDirectSocketFactory.java:40)
at java.rmi/sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:617)
... 6 more
StringBuilder myquery = new StringBuilder();
myquery.append("SELECT * from Student stu")
.append(" WHERE stu.Roll IN ( '120','140') AND stuv2.Roll is null ")
.append(" AND date(stu.admission) between ")
.append("timestamp(").append("?").append(")").append(" AND CURRENT DATE- 30 DAY");
final Object[] args = new Object[] {
getAdm()
} ; //its returning '2020-10-01 03:00:00'
int[] types = new int[] { Types.CHAR };
List<Students> result = null;
result = jdbcTemplate.query(myquery,args,types,new Mapper());
我遇到以下错误:
SELECT * from Student stu WHERE stu.Roll IN ( '120','140') AND stuv2.Roll is null
AND date(stu.admission) between timestamp(?) AND CURRENT DATE-100 DAY
解决方法
看着错误,看来参数至少没有被识别或不被视为日期...
尝试将论点强制转换为日期CAST( "parameter_here" AS DATE)
此外,我宁愿使用MapSqlParameterSource parameters = new MapSqlParameterSource();
,但这是不同的主题
编辑bis:jarlh指出并纠正了查询中的错误,您应该纠正一些错字。
您可以查看此线程,该线程类似于:NamedJdbcParameterTemplate : -418 SQL error with setting Date