在spring mvc+hibernate+mysql中,講解下如何做比如在文字框裡輸入中文,然後查詢的一些套路。
1 MYSQL中,首先要做到的是my.ini的客戶編碼為UTF8,而資料庫中的表,表裡的欄位也用utf-8來整理
2 在serachcontroller中,如下結構
private ModelAndView searchResultList(HttpServletRequest request) {
try {
request.setCharacterEncoding("utf8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
HttpSession session = request.getSession();
String contextPath = request.getContextPath();
//獲得關鍵字
String keyword = ParamUtil.getString(request,"keyword","").trim();
System.out.println(keyword);
Member mem = new Member();
mem.setName(keyword);
之後調用商務邏輯層
//獲得記錄條數
int total = this.getMemberFacade().getTotalByMember(mem);
..........................
而在實際的DAO實現層中,這樣搞
public int getTotalByMember(final Member mem) {
return getHibernateTemplate().executeFind(new HibernateCallback() {
public Object doInHibernate(Session s) throws HibernateException,
SQLException {
Criteria cr = s.createCriteria(Memberh.class);
cr.add(Expression.like("name", "%" + mem.getName() + "%"));
List list = cr.list();
return list;
}
}).size();
}