【发布时间】:2016-01-12 15:38:00
【问题描述】:
我在 wamp 服务器的 MySQL 控制台中尝试了相同的查询,函数中的另一个查询返回相同的值并返回结果,但它在 java 中返回 null,为什么? 我正在使用 eclipse 和 tomcat 版本 6,下面是我的代码:-
public String startpgm(String x){
String np = null;
String North = null;
String Wb_SWLat = null;
String Wb_SWLon = null;
String Wb_NELat = null;
String Wb_NELon = null;
String qryWb = "select SW_lat, SW_lon, NE_lat, NE_lon from tbl_zones where zone='west'";
// String qrywest = "select priority from tbl_vcl";
String qrywest = "select priority from tbl_vcl where latitude >=? and latitude <=? and longitude >=? and longitude<=?";
try {
Statement stmt = (Statement) conn.createStatement();
ResultSet Wb=stmt.executeQuery(qryWb);//storing the result into result set
while(Wb.next()){ // looping through the resultset
Wb_SWLat=Wb.getString("SW_lat");
Wb_NELat=Wb.getString("NE_lat");
Wb_SWLon=Wb.getString("SW_lon");
Wb_NELon=Wb.getString("NE_lon");
System.out.println("DBSWlat:"+Wb_SWLat);
System.out.println("DBNElat:"+Wb_NELat);
System.out.println("DBSWLon:"+Wb_SWLon);
System.out.println("DBNELon:"+Wb_NELon);
}
PreparedStatement ps = conn.prepareStatement(qrywest);// creating statement on the db connection for executing query
ps.setString(1, Wb_SWLat);
ps.setString(2, Wb_SWLon);
ps.setString(3, Wb_NELat);
ps.setString(4, Wb_NELon);
ResultSet rsWest= ps.executeQuery();//storing the result into result set
// System.out.println("test");
// System.out.println("DBrset:"+rsWest);
while(rsWest.next()){ // looping through the resultset
np=rsWest.getString("priority");
System.out.println("np:"+np);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
// e.printStackTrace();
}
North=np;
System.out.println("DB:"+North);
return North ;
}
np 返回 null,当我删除诸如“纬度 >=?和纬度 =?和经度 =" 条件有什么问题?
【问题讨论】:
-
您是否尝试过调试?实际分配的值是多少?
-
@shmosel 从 tbl_vcl 中选择优先级,其中纬度 >=9.994042 纬度 =76.356653 和经度
-
@shmosel 我尽我所能...从 MySQL 控制台返回的结果是 2,列名优先。而在java页面中返回null
-
你只需要重新排列参数,
-
1 - Wb_SWLat,2 - Wb_NELat,3 - Wb_SWLon,4 - Wb_NELon。此外,将其作为字符串而不是双精度/长整数或某种数字类型来处理有点奇怪。