MyBatis----查询排序
一、英文字母排序
注意解决方案是使用$不能使用#
<select id="selectOrderByClomn" parameterType="String" resultType="user">
select * from smbms_user order by ${value}
</select>
void testSelectOrderByClomn() throws Exception {
SqlSession session = MyBatisUtils.getSession();
//5 使用Mapper接口绑定的方式实现数据操作
UserDAO userDAO = session.getMapper(UserDAO.class);
List<User> userList = userDAO.selectOrderByClomn("userCode");
for(User user : userList) {
System.out.println(user.getUserCode()+"\t"+user.getUserName());
}
MyBatisUtils.closeSession(session);
}
二、中文的排序查询
使用了SQL语句中的字符转换函数 CONVERT 将字符类型转换为gbk 编码 (备注:如果gbk 还是没有反应的话 可以尝试utf8编码)
<select id="selectOrderByClomn" parameterType="String" resultType="user">
select * from smbms_user order by CONVERT(${value} using gbk)
</select>
void testSelectOrderByClomn() throws Exception {
SqlSession session = MyBatisUtils.getSession();
//5 使用Mapper接口绑定的方式实现数据操作
UserDAO userDAO = session.getMapper(UserDAO.class);
List<User> userList = userDAO.selectOrderByClomn("userName");
for(User user : userList) {
System.out.println(user.getUserCode()+"\t"+user.getUserName());
}
MyBatisUtils.closeSession(session);
}