⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 indexcategorydaoimpl.java.svn-base

📁 用户模块和指标模块等等,还有其它的模块吧
💻 SVN-BASE
字号:
package com.srit.gcz.dao.impl;

import java.util.Iterator;
import java.util.List;
import java.util.Map;

import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapperResultSetExtractor;

import com.srit.gcz.bean.IndexCategory;
import com.srit.gcz.bean.rowmapper.IndexCategoryRowMapper;
import com.srit.gcz.dao.IndexCategoryDao;
import com.srit.gcz.util.SysConstant;

/**
 * 指标分类
 * 
 * @Company 国研科技
 * @author 陈鹏昊
 * @date 2009-3-24
 * @version 1.0
 * @since 1.0
 */
public class IndexCategoryDaoImpl implements IndexCategoryDao {
	// 查询某节点
	private static final String QUERY_CATEGORY = "SELECT * FROM "
			+ SysConstant.TABLE_INDEX_CATEGORY + " WHERE ID = ?";
	// 查询某节点是否含有子节点
	private static final String QUERY_HASCHILD_CATEGORY = "SELECT HASCHILD FROM "
			+ SysConstant.TABLE_INDEX_CATEGORY + " WHERE ID = ?";
	// 查询某节点含有子节点个数
	private static final String QUERY_SUBCHILD_CATEGORY = "SELECT COUNT(1) FROM "
			+ SysConstant.TABLE_INDEX_CATEGORY + " WHERE PARENTID = ?";
	// 查询某节点子节点
	private static final String QUERY_SUB_CATEGORY = "SELECT * FROM "
			+ SysConstant.TABLE_INDEX_CATEGORY + " WHERE PARENTID = ?";
	// 查询某节点子节点ID列表
	private static final String QUERY_SUBID_CATEGORY = "SELECT ID FROM "
			+ SysConstant.TABLE_INDEX_CATEGORY + " WHERE PARENTID = ?";
	// 查询指标表,查看某分类下是否含有指标
	private static final String QUERY_INDEXS = "SELECT COUNT(1) FROM "
			+ SysConstant.TABLE_INDEX_INDEXS + " WHERE CATEGORYID = ?";
	// 新增
	private static final String INSERT_CATEGORY = "INSERT INTO "
			+ SysConstant.TABLE_INDEX_CATEGORY
			+ "(ID, NAME, REMARK, PARENTID, TYPE, CREATEUSER) VALUES(?, ?, ?, ?, ?, ?)";
	// 更新
	private static final String UPDATE_CATEGORY = "UPDATE "
			+ SysConstant.TABLE_INDEX_CATEGORY
			+ " SET NAME = ?, REMARK = ? WHERE ID = ?";
	// 更新 父节点状态(删除节点时父节点无子节点,新增节点为父节点第一个子节点)
	private static final String UPDATE_HASCHILD_CATEGORY = "UPDATE "
			+ SysConstant.TABLE_INDEX_CATEGORY
			+ " SET HASCHILD = ? WHERE ID = ?";
	// 删除
	private static final String DELETE_CATEGORY = "DELETE FROM "
			+ SysConstant.TABLE_INDEX_CATEGORY + " WHERE ID = ?";
	// Spring注入
	private JdbcTemplate jdbcTemplate;

	@SuppressWarnings("unchecked")
	public boolean isHasIndex(int ID) {
		// 先查询所选分类是否含有指标
		if (jdbcTemplate.queryForInt(QUERY_INDEXS, new Object[] { ID }) > 0) {
			return true;
		}
		List rows = jdbcTemplate.queryForList(QUERY_SUBID_CATEGORY,
				new Object[] { ID });
		Iterator it = rows.iterator(); 
		while(it.hasNext()) {  
		    Map map = (Map) it.next();  
		    int id = Integer.parseInt(map.get("ID").toString());
			// 先判断该分类是否还有子分类若有则进入递归
			if (isHasChild(id) > 0) {
				// 若返回true则结束递归
				if (isHasIndex(id)) {
					return true;
				}
			}
		}
		return false;
	}

	public boolean isHasIndexNoSub(int ID) {
		// 先查询所选分类是否含有指标
		int operateMark = jdbcTemplate.queryForInt(QUERY_INDEXS, new Object[] { ID });
		return (operateMark > 0) ? true: false;
	}
	
	@SuppressWarnings("unchecked")
	public boolean delete(int ID) {
		// 先查询所选分类是否含有指标
		if (jdbcTemplate.queryForInt(QUERY_INDEXS, new Object[] { ID }) > 0) {
			return false;
		}
		// 查询所选分类所有子分类
		List rows = jdbcTemplate.queryForList(QUERY_SUBID_CATEGORY,
				new Object[] { ID });
		Iterator it = rows.iterator(); 
		while(it.hasNext()) {  
		    Map map = (Map) it.next();  
		    int id = Integer.parseInt(map.get("ID").toString());
			// 先判断该分类是否还有子分类若有则进入递归
			if (isHasChild(id) > 0) {
				if (!delete(id)){
					return false;
				}
			}
			if (jdbcTemplate.update(DELETE_CATEGORY, new Object[] { id }) < 1) {
				return false;
			}
		}
		if (jdbcTemplate.update(DELETE_CATEGORY, new Object[] { ID }) < 1) {
			return false;
		}
		return true;
	}

	public IndexCategory getIndexCategoryByID(int ID) {
		IndexCategory bean = (IndexCategory) jdbcTemplate.queryForObject(
				QUERY_CATEGORY, new Object[] { ID },
				new IndexCategoryRowMapper());
		return bean;
	}

	@SuppressWarnings("unchecked")
	public List<IndexCategory> getSubCategoryTreeByID(int ID) {
		Object obj = jdbcTemplate.query(QUERY_SUB_CATEGORY,
				new Object[] { ID }, new RowMapperResultSetExtractor(
						new IndexCategoryRowMapper()));
		return (List<IndexCategory>) obj;
	}

	public boolean save(IndexCategory bean) {
		int operMark = jdbcTemplate.update(INSERT_CATEGORY, new Object[] {
				bean.getId(), bean.getName(), bean.getRemark(), bean.getPid(),
				bean.getType(), bean.getCreateUser() });
		return (operMark > 0) ? true : false;
	}

	public boolean update(IndexCategory bean) {
		int operMark = jdbcTemplate.update(UPDATE_CATEGORY, new Object[] {
				bean.getName(), bean.getRemark(), bean.getId() });
		return (operMark > 0) ? true : false;
	}

	public boolean updateHasChild(int ID, int type) {
		int operMark = jdbcTemplate.update(UPDATE_HASCHILD_CATEGORY,
				new Object[] { type, ID });
		return (operMark > 0) ? true : false;
	}

	public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
		this.jdbcTemplate = jdbcTemplate;
	}

	public int isHasChild(int ID) {
		return jdbcTemplate.queryForInt(QUERY_SUBCHILD_CATEGORY,
				new Object[] { ID });
	}

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -