📄 indexcategorydaoimpl.java
字号:
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 + -