Hibernate-easyui后台的增删改查

注意:前台我使用的是easyUI,我会单独的写一个博客主要描述easyUI,然后跟我的后台的信息是一起的,配套的

1.首先是写实体类,把你需要的字段都写上,也可以使用注解就不用再数据库中建表了,项目启动的时候表就会主动的建起来

2.其次是我创建了四个文件,一个是controller,dao,service还有serviceimpl的文件

3.在service中写下方法,增加,删除,修改,分页,查询所有


	/**
	 * 查询所有
	 * @return
	 */
	List<Teachers> findAll();
	/**
	 * 保存教师信息
	 * @param teachers
	 */
	void save(Teachers teachers);

	/**
	 * 删除教师信息
	 * @param id
	 */
	void delete(Long id);

    /**
	 * 分页,条件查询
	 * @param page
	 * @param deptId
	 * @param name
	 * @return
	 */
	Page<Teachers> findByPage(Page<Teachers> page, Long deptId, String name);

4.在service中写的是(interface)的文件,在serviceimpl文件中写的是service文件中每个方法的实现,最基本的方法就是在底层封装好的方法,直接调用就行了,保存和修改调用的是一个方法

    /**
	 * 多表查询
	 */
	@Override
	public List<Teachers> findAll() {
		final String hql = "select t,d.name as deptName,m.name as majorName from Teachers t,Major m,Department d where t.deptId = d.id and t.majorId = m.id and m.deptId = d.id and t.status=:status";
		Map<String, Object> map = new HashMap<>();
		map.put("status", Status.正常.getValue());
		return teachersDao.executeQuery(hql, map);
	}
	/**
	 * 保存教师的信息
	 */
	@Transactional(readOnly = false)
	@Override
	public void save(Teachers teachers) {
		teachersDao.save(teachers);
	}

	/**
	 * 删除教师的信息,改变教师的状态(假删除)
	 */
	@Transactional(readOnly = false)
	@Override
	public void delete(Long id) {
		final String hql = "update Teachers set status=:status where id = :id";
		Map<String, Object> map = new HashMap<>();
		map.put("id", id);
		map.put("status", Status.删除.getValue());
		teachersDao.executeUpdate(hql, map);
	}

/**
	 * 分页,条件查询
	 */
	@Override
	public Page<Teachers> findByPage(Page<Teachers> page, Long deptId, String name) {
		StringBuilder hqlBuilder = new StringBuilder();
		hqlBuilder.append(
				"select t,d.name as deptName,m.name as majorName from Teachers t,Major m,Department d where t.deptId = d.id and t.majorId = m.id and m.deptId = d.id and t.status=:status");

		if (deptId != null) {
			hqlBuilder.append(" and m.deptId=:deptId");
		}

		if (StringUtils.isNotBlank(name)) {
			hqlBuilder.append(" and m.name like '%" + name + "%'");
		}

		hqlBuilder.append(" order by d.name");

		Map<String, Object> map = new HashMap<>();
		map.put("status", Status.正常.getValue());

		if (deptId != null) {
			map.put("deptId", deptId);
		}

		Page<Teachers> result = teachersDao.findPage(page, hqlBuilder.toString(), map);
		transform(result);
		return result;
	}

    //在impl文件中调用的方法,都是底层中封装好的方法

    /**这就是底层封装好的方法
	 * 保存新增或修改的对象.
	 *
	 * @param entity 要保存的实体对象
	 */
	public void update(final T entity) {
		Assert.notNull(entity, "entity Can not NULL");
		
		getSession().update(entity);
		logger.debug("Save {}: {}", entityClass.getSimpleName(), entity);
	}

    /**这是底层删除的方法
	 * 删除对象.
	 * 
	 * @param entity 对象必须是session中的对象或含id属性的transient对象.
	 */
	public void delete(final T entity) {
		Assert.notNull(entity, "entity Can not NULL");
		
		getSession().delete(entity);
		logger.debug("delete {}: {}",entityClass.getSimpleName(), entity);
	}

5.在dao文件中就是继承了底层封装好了的文件主要是分页的文件

@Repository
public class TeachersDao extends BaseDao<Teachers, Long>{

}

6.最后在后台的时候就是调用impl文件中实现过得方法

    /**
	 * 增加 查询系别,并回显
	 * @return 查询系别所有信息
	 */
	@RequestMapping("dept")
	public Object find() {
		return departmentService.findAll();
	}

    /**
	 * 增加 查询专业
	 * @return 查询专业的所有信息
	 */
	@RequestMapping("major")
	public Object findmajor() {
		return majorService.findAll();
	}

    /**
	 * 增加教师信息
	 * @param teachers
	 * @return
	 */
	@RequestMapping("save")
	public HttpResult save(@Valid Teachers teachers, BindingResult bindingResult) {
		if (bindingResult.hasErrors()) {
			return returnValidationError(bindingResult.getFieldError().getDefaultMessage());
		}
		// 验证编号是否已存在
		if (teachers.getId() == null) {
			if (teachersService.isHasByCode(teachers.getCode())) {
				return returnSystemError("编号为[" + teachers.getCode() + "],的教师已经存在.");
			}
		}
		teachersService.save(teachers);
		return returnSuccess("保存教师[" + teachers.getName() + "]成功");
	}

	/**
	 * 按照教师的id删除教师的信息(假删除)
	 * @param id
	 * @return
	 */
	@RequestMapping("delete/{id}")
	public HttpResult delete(@PathVariable Long id) {
		teachersService.delete(id);
		return returnSuccess("删除教师成功,教师id为:" + id);
	}

猜你喜欢

转载自blog.csdn.net/cxc_happy111/article/details/81410248
今日推荐