我正在从DRIVER
和CAR
表中进行查询,并尝试按name
的字母顺序(ASC
,a-z
)对结果列表进行排序。但是,我的结果表没有反映我的sql
语句,因为它根本不是按字母顺序排序的:(Joe, Lucas, James, Ginny
应该显示为Ginny, James, Joe, Lucas
)。
在使用name
数据类型将它们存储在我的RSA Encryption
表中之前,我已经使用DRIVER
加密了这些BLOB
值。会影响为什么我的查询未按我想要的方式排序吗?
下面的详细信息。
我的表格:
DRIVER (driverID, username, name,....)
CAR (license, brand,....)
我的结果表格打印输出:
Driver ID | username | Name | License Plate | Brand
----------------------------------------------------
004 | joe867 | Joe | M8M UZX | Toyota
001 | luke99 | Lucas | A99 PX3 | Hyundai
003 | james3 | James | YPL 393 | Ford
002 | ginny23 | Ginny | HP2 111 | Subaru
我的selectDriver()
查询方法(为简便起见,省略了方法名称括号,try-catch等内容)。
String sql = "SELECT driverID, username, name, license, brand
FROM driver, car
WHERE driver.driverID = car.driverID_FK
ORDER BY name ;"
PreparedStatement pst = connect.prepareStatement(sql);
rs = pst.executeQuery();
List<Driver> list = new ArrayList<Driver>();
while (rs.next()){
Driver driver = new Driver(); //My Driver bean class
driver.setDriverID(rs.getInt(1));
driver.setUsername(rs.getString(2));
...
driver.setBrand(rs.getString(5));
list.add(driver);
}
rs.close();
connect.close();
return list;
我的带有JSTL结果表的 JSP :
<table>
<tr>
<th>Driver ID</th>
<th>Username</th>
<th>Name</th>
<th>License Plate</th>
<th>Brand</th>
</tr>
<c:forEach var="driver" items="${driverArray}">
<tr>
<td><c:out value="${driver.driverID }"/></td>
<td><c:out value="${driver.username }"/></td>
<td><c:out value="${driver.name }"/></td>
<td><c:out value="${driver.license }"/></td>
<td><c:out value="${driver.brand }"/></td>
</tr>
</c:forEach>
</table>
答案 0 :(得分:0)
只需稍作更改。像
这样写查询String sql = "SELECT driverID, username, name, license, brand
FROM driver, car
WHERE driver.driverID = car.driverID_FK
ORDER BY driver.name ;"
希望它能工作!