举例:学生表: 表名 Student 字段名:id , name , age
1、根据学生姓名查询数据
//根据学生姓名查询数据
@Override
public Student getStudentByname(String name) throws ServiceException {
String hql = "from " + Student.class.getName() + " student where student.name= '" + name+ "'";
List<Student> StudentList = getHibernateTemplate().find(hql);
if (ObjectUtil.isNotEmpty(StudentList)) {
return (Student) StudentList.get(0);
}
return null;
}
2、添加学生
//添加数据
@Override
public Boolean addStudent(Student student) throws ServiceException {
student.setName("小白");
student.setAge(8);
getHibernateTemplate().save(student);
return true;
}
3、修改学生
@Override
public Boolean updateStudent(Student student) throws ServiceException {
student.setName("小红");
student.setAge(10);
getHibernateTemplate().update(student);
return true;
}
4、根据学生ID删除学生
有两种:
①物理删除:就是直接删除,数据库中也删没有了
执行的是 getHibernateTemplate().delete() ;方法
//物理删除
@Override
public Boolean deleteStudentById(Long id) throws ServiceException {
if (StrUtil.isNotBlank(id)) {
Student student = (Student) getHibernateTemplate().get(Student.class, Long.parseLong(id));
if (ObjectUtil.isNotEmpty(student)) {
getHibernateTemplate().delete(student);
return true;
}
}
return false;
}
②逻辑删除:其实就是修改设定字段的值,设置成删除状态,查询时要查询不是删除状态的数据(通俗的讲:就是假删除,数据库中的数据并未删除,可以设定一个字段设置。比如:delFlag 字段,值存入(0,1)可以设置0是未删除,1是删除的意思)
执行的是 getHibernateTemplate().update() ;方法
//逻辑删除
@Override
public Boolean deleteStudentById(Long id) throws ServiceException {
if (StrUtil.isNotBlank(id)) {
Student student = (Student) getHibernateTemplate().get(Student.class, Long.parseLong(id));
if (ObjectUtil.isNotEmpty(student)) {
student.setDelFlag("1");
getHibernateTemplate().update(student);
return true;
}
}
return false;
}
上面的方法是简单的写法
可以把它当成增删查改的通用方法(其他方法有用到时可以直接调用传参数就可以了)比如:setAge里面值,可以设置成通用的,也可以不写