作者cyclone350 (老子我最神)
看板java
标题[问题] Hibernate 设定动态 SQL 语法
时间Sat Dec 29 21:50:11 2012
大家好,先自我介绍一下,小弟我这几个礼拜再冲刺 JAVA EE,
甚麽意思呢? 就是从 jsp/servlet 一直冲到 SSH,然後 spring 其他延伸的也看一点
然後 CSS,Jquery,log4j,Junit,stored procedure等等....
所以我算是有一点点的广度,但是没有深度...
有很多东西都没有很详细的知道基本原理就冲实作了,算是是边做边学
在这边请教一个 hibernate 的问题
假设我有一个 Entity,有一个 Dao 层,这个Entity的类别姑且叫做 User
我在 Dao 有一个查询的 function 大概是这样写的
public List<User> findUser(User user){
String account = user.getID()==null?"%":user.getID();
String phone = user.getPhone()==null?"%":user.getPhone();
String eMail = user.getENail()==null?"%":user.getEMail();
String hql = "from User u where u.id like " + account + " and " +
"u.phone like " + phone + " and " +
"u.email like " + email;
List<User> resultList = getSession().query(hql).list();
return resultList;
}
大概类似这样
不过刚刚看到 LaPass 在 webdesign 版上看到他说有人 sql 语句用 + 号凑成
不管是用什麽 framework都不安全...
不过就我目前的想法,动态形成HQL或是SQL语句时除了这方法,想不太到别的。
另外不安全的意思是?? Hacker 会骇到我的 JVM 里面,改我的 String pool 吗?
另外就是我书是看王者归来,然後 web 是自己买一本 javascript + css + jquery 的
不过在看到 web design 版上有一个人说他面试 css 20位设计师,问了3个基本题,
几乎没人答对,我看了看题目...恩...我也不会,书上根本没写到,其中第一题的
要如何在各浏览器 css 排版一致,我前几天才问过同事,同事跟我说是慢慢改。
结果答案是 reset.css。
书上没写这东西,我也不知道要去哪里看这类知识,虽然看了很多东西,
但是总觉得并没有真正的学到...都是只能step by step
想请问这类所谓 "基础" 的东西有没有一个地方可以让我学 ...
刚刚的 sql 跟 css 书上都没有写...
我是真的很想学好,跑了很多网站,但是也不知道要看哪里,也无法得知我做的东西
到底好不好...
希望各位前辈能给我方法... 给我一个钓竿,推荐一本书也好,我自己就会去钓鱼
谢谢大家了,知道 sql 的解法也可以说一下,不燃我在网路上也不知道要用甚麽关键字
去 google
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.198.167.187
1F:推 phstudy:查hibernate prepared statement跟criteria api 12/29 22:02
2F:推 LaPass:我也想知道..... 我也有好多基础的东西不会 QQ 12/29 22:13
3F:→ cyclone350:请问phstudy大大当初是怎麽知道这个东西的 12/29 22:19
4F:→ cyclone350:我觉得我现在学东西像是在补漏洞一样,没人讲就不知道 12/29 22:21
5F:推 phstudy:PS是在调performance跟防sql injection还有从前人专案知道 12/29 22:37
6F:推 phstudy:criteria api是准备JPA2考试念书知道的 12/29 22:39
7F:推 popcorny:防sql injection+1 12/30 11:51
8F:推 luoqr:我一直觉得criteria api不是个好东西 很难一眼就明白看懂... 12/30 16:01
9F:推 hate9527:不会呀 criteria我觉得基础的一些Restrictions非常直觉耶 12/30 16:12
10F:→ luoqr:sql复杂一些 就很难懂了 XD 12/30 17:49
11F:→ luoqr:不过也可能是我没用习惯的关系啦 XD 12/31 02:31