- public void updateStudent(String studentId, int studentCourseNum) {
- String hql="Update Student as s set s.studentCourse.num= ? where s.studentId= ? ";
- Query q=getSession().createQuery(hql);
- q.setParameter(0, studentCourseNum);
- q.setParameter(1, studentId);
- q.executeUpdate();
- }
与sql语句不同,HQL是面向对象的,它不是直接面向数据库表的,它是对实体类做操作的。
二、应用实例
- public void updateStudent(String studentId, int studentCourseNum) {
- String hql="Update Student as s set s.studentCourse.num= ? where s.studentId= ? ";
- Query q=getSession().createQuery(hql);
- q.setParameter(0, studentCourseNum);
- q.setParameter(1, studentId);
- q.executeUpdate();
- }
这里updateStudent()方法实现的是修改学生课程号的功能。Student是一个类,这个类中包含一个String类型的studentId和
一个StudentCourse(是一个类)类型的变量studentCourse,学生的studentCourseNum就在StudentCourse类中。
从例子中的hql语句可以看出它是对类及其中的属性进行操作的,而不是像sql一样对表和column进行操作。