计应134(实验班) 罗超
在Hibernate中,对于数据库的操作语句为HQL,这是一种与SQL有很大区别的语句。为了更好地运用Hibernate来帮助开发,学习HQL语句的使用显得犹为重要。
HQL语句面向项目的具体对象,而不是数据库中的表,所以在写HQL语句的时候一定要注意运用面向对象的思想来编写HQL语句,在HQL语句中,相对于SQL不同的是语句中的表名替换为了类名+对象名的组合,而列名被替换为了对象名.属性的方式,这一点完全体现了面向对象编程的思想,对于长期使用SQL语句开发的程序员来说,突然转变为HQL编程可能会感到不理解。
HQL语句主要实现对数据库的查询、修改、删除操作,对数据库的添加操作则不能使用HQL语句来完成。
查询操作:
HQL主要运用select子句来实现查询操作,select子句也可以省略,直接用from子句进行查询。
当select子句被省略时,返回对象List;没有被省略时,返回泛型为Object[]的List。
例如:
String hql = "select s.stuId, s.stuName, s.age, s.classes.claName, s.classes.clsId from Students s";
此句返回List<Object[]>。
修改与删除:
HQL语句中修改使用的是update语句,删除使用的是delete语句。
具体用法与查询语句相似。
例如,删除语句:
String hql = "delete from Students s where s.stuId=?";
修改语句:
String hql = "update Students s set s.stuName=?, s.age=? where s.stuId=?";
HQL语句中,上述三种操作都可以用where子句指定条件。
值得注意的一点是,java语言区分大小写,所以HQL语句也对大小写敏感。