思路:
定义一个方法getParentName参数为int类型的configId,返回类型为String类型.
在方法getParentName内部进行如下操作:
1 根据当前节点configId查询数据库,得到一条记录,存入实体类中。
2 判断存入的实体类是否为空,如果不为空,定义变量configName用来存储当前节点的名称再跟","用于分割,内部调用getParentName(参数为刚才存入实体类的父节点parentId),定义变量returnConfigName用于存储方法getParentName的返回值,然后将configName和returnConfigName进行拼接返回.
如果存入的实体类为空,则返回空.
方法用例:
/**
* 递归得到当前节点的所有父节点
* @param configId 当前节点
* @return 所有父节点
* @throws Exception 抛出的异常
*/
public String getParentName(int configId)throws Exception{
//和数据库交互,得到当前节点记录
PatrolConfigVO patrolConfigEntity = patrolConfigDao.getPatrolConfigByConfigId(configId);
if(patrolConfigEntity != null){
String configName = patrolConfigEntity.getConfigName()+"mmc";
//参数patrolConfigEntity.getConfigParentId()表示当前节点的父节点ID
String returnConfigName = getParentName(patrolConfigEntity.getConfigParentId());
return returnConfigName+configName;
}else{
return "";
}
}
PatrolConfigVO实体类:
import java.io.Serializable;
/**
* 巡检配置对象类
* @author zhoujie
* @version 0.1 2013-8-19 8:54
*/
public class PatrolConfigVO implements Serializable {
private static final long serialVersionUID = 1L ;
/**
* 巡检配置编号
*/
private int configId;
/**
* 信号编号
*/
private int signalNr;
/**
* 巡检配置名称
*/
private String configName;
/**
* 巡检配置类型(0:有子项,1:单选,2:复选,3:文本框,4:文本域,5:上传照片)
*/
private int configType;
/**
* 级别
*/
private int level;
/**
* 巡检父配置编号
*/
private int configParentId;
/**
* 巡检类型(1:日常巡检,2:月度巡检,3:季度巡检,4:年度巡检)
*/
private int patrolType;
/**
* 设备类别编号
*/
private int zequipId;
/**
* 选项
*/
private String options;
/**
* 是否显示备注(0:不显示,1:显示)
*/
private int isRemark;
/**
* 是否选中(0:不选中,1:选中)
*/
private int isChoosed;
/**
* 英文名
*/
private String englishName;
/**
* 备注(表头信息、设备信息、设备运行信息、附件)
*/
private String patrolFormType;
/**
* 选项名字集合
*/
private String[] optionNames;
/**
* 构造器
*/
public PatrolConfigVO(){
configId = 0;
signalNr = 0;
configName = "";
configType = 0;
level = 0;
configParentId = 0;
patrolType = 0;
zequipId = 0;
options = "";
isRemark = 0;
isChoosed = 0;
englishName = "";
patrolFormType = "";
}
/**
* 获取巡检配置编号
* @return
*/
public int getConfigId() {
return configId;
}
/**
* 设置巡检配置编号
* @param configId 巡检配置编号
*/
public void setConfigId(int configId) {
this.configId = configId;
}
/**
* 获取信号编号
* @return 信号编号
*/
public int getSignalNr() {
return signalNr;
}
/**
* 设置信号编号
* @param signalNr 信号编号
*/
public void setSignalNr(int signalNr) {
this.signalNr = signalNr;
}
/**
* 获取巡检配置名称
* @return 巡检配置名称
*/
public String getConfigName() {
return configName;
}
/**
* 设置巡检配置名称
* @param configName 巡检配置名称
*/
public void setConfigName(String configName) {
this.configName = configName;
}
/**
* 获取巡检配置类型
* @return 巡检配置类型
*/
public int getConfigType() {
return configType;
}
/**
* 设置巡检配置类型
* @param configType 巡检配置类型
*/
public void setConfigType(int configType) {
this.configType = configType;
}
/**
* 获取级别
* @return 级别
*/
public int getLevel() {
return level;
}
/**
* 设置级别
* @param level 级别
*/
public void setLevel(int level) {
this.level = level;
}
/**
* 获取巡检父配置编号
* @return 巡检父配置编号
*/
public int getConfigParentId() {
return configParentId;
}
/**
* 设置巡检父配置编号
* @param configParentId 巡检父配置编号
*/
public void setConfigParentId(int configParentId) {
this.configParentId = configParentId;
}
/**
* 获取巡检类型
* @return 巡检类型
*/
public int getPatrolType() {
return patrolType;
}
/**
* 设置巡检类型
* @param patrolType 巡检类型
*/
public void setPatrolType(int patrolType) {
this.patrolType = patrolType;
}
/**
* 获取设备类别编号
* @return 设备类别编号
*/
public int getZequipId() {
return zequipId;
}
/**
* 设置设备类别编号
* @param zequipId 设备类别编号
*/
public void setZequipId(int zequipId) {
this.zequipId = zequipId;
}
/**
* 获取选项
* @return 选项
*/
public String getOptions() {
return options;
}
/**
* 设置选项
* @param options 选项
*/
public void setOptions(String options) {
this.options = options;
}
/**
* 获取是否显示备注
* @return 是否显示配置
*/
public int getIsRemark() {
return isRemark;
}
/**
* 设置是否显示配置
* @param isRemark 是否显示配置
*/
public void setIsRemark(int isRemark) {
this.isRemark = isRemark;
}
/**
* 获取是否选中
* @return 是否选中
*/
public int getIsChoosed() {
return isChoosed;
}
/**
* 设置是否选中
* @param isChoosed
*/
public void setIsChoosed(int isChoosed) {
this.isChoosed = isChoosed;
}
/**
* 获取英文名
* @return 英文名
*/
public String getEnglishName() {
return englishName;
}
/**
* 设置英文名
* @param englishName 英文名
*/
public void setEnglishName(String englishName) {
this.englishName = englishName;
}
/**
* 获取备注
* @return 备注
*/
public String getPatrolFormType() {
return patrolFormType;
}
/**
* 设置备注
* @param patrolFormType 备注
*/
public void setPatrolFormType(String patrolFormType) {
this.patrolFormType = patrolFormType;
}
public String[] getOptionNames() {
return optionNames;
}
public void setOptionNames(String[] optionNames) {
this.optionNames = optionNames;
}
}