java递归根据节点configId得到节点configId的所有父节点名称
思路:
定义一个方法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()表示当前节点的父节点IDString returnConfigName = getParentName(patrolConfigEntity.getConfigParentId());return returnConfigName+configName;}else{return "";}}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;}}