亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Hibernate (MySQL) 上的區分大小寫的查詢

Hibernate (MySQL) 上的區分大小寫的查詢

九州編程 2021-09-29 09:35:49
我想對我的 Hibernate 項目進行一些區分大小寫的查詢,但是每當我在查詢上使用“BINARY”或“COLLATE”以使其區分大小寫時,我都會收到此錯誤:org.hibernate.hql.internal.ast.QuerySyntaxException: unexpected token: BINARY near line 1, column 51 [SELECT u FROM entidades.Usuario u WHERE u.login = BINARY 'XNC' AND u.contrasenya = BINARY 'xnc']這是完整的(和原始的)代碼:Session session = sessionFactory.getCurrentSession();String select;try {        session.beginTransaction();        select = "SELECT u FROM " + getEntityClass().getName() + " u WHERE u.login ='" + login + "' AND u.contrasenya ='" + contrasenya +"'";    }    Query query = session.createQuery(select);    Usuario usu =  (Usuario) query.uniqueResult();    session.getTransaction().commit();    return usu;    }catch (Exception ex) {        ex.printStackTrace();        funciones.mostrarMensajeError(ex.getMessage());    }我的表也是 utf8_bin,所以,有人可以幫我做一個區分大小寫的查詢嗎?謝謝。
查看完整描述

1 回答

?
富國滬深

TA貢獻1790條經驗 獲得超9個贊

只需使用 binary 作為函數,這在 SQL 中仍然是有效的語法,但也被 Hibernate 接受:

"... WHERE u.login = binary( '" + login + "' ) AND u.contrasenya = binary( '" + contrasenya +"' ) ";

此外,您可能希望通過使用查詢參數而不是字符串連接來避免 SQL 注入。


查看完整回答
反對 回復 2021-09-29
  • 1 回答
  • 0 關注
  • 156 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號