最近一直在搞flex前台+java后台+oracle的开发。tree是个重头戏。tree增加节点,删除节点很重要。
在tree中增加节点首先要做的就是要判断要增加的节点是在哪个节点下,也就是要判断其父节点的等级。
(1)增加节点:增加的内容有DepartNum、DepartName、DepartNumStartdate、DepartLevel、(前四个在tbdepart中)SuperDepartNum(在表tbdepart_depart中),而SuperDepartNum与前面四个不在同一个表中。
首先:在flex中写一些java的pojo类;
package com.sampleone.pm.model;
public class PmRow {
?private int DepartNum;
?private String DepartName;
?private String DepartNumStartdate;
?private int DepartLevel;
?private int SuperDepartNum;
?private int DutyNum;
?private String DutyName;
?private int DutyLevel;
?
?public int getDutyLevel() {
??return DutyLevel;
?}
?public void setDutyLevel(int dutyLevel) {
??DutyLevel = dutyLevel;
?}
?public int getDepartNum() {
??return DepartNum;
?}
?public void setDepartNum(int departNum) {
??DepartNum = departNum;
?}
?public String getDepartName() {
??return DepartName;
?}
?public void setDepartName(String departName) {
??DepartName = departName;
?}
?public String getDepartNumStartdate() {
??return DepartNumStartdate;
?}
?public void setDepartNumStartdate(String departNumStartdate) {
??DepartNumStartdate = departNumStartdate;
?}
?public int getSuperDepartNum() {
??return SuperDepartNum;
?}
?public void setSuperDepartNum(int superDepartNum) {
??SuperDepartNum = superDepartNum;
?}
?public int getDepartLevel() {
??return DepartLevel;
?}
?public void setDepartLevel(int departLevel) {
??DepartLevel = departLevel;
?}
?public int getDutyNum() {
??return DutyNum;
?}
?public void setDutyNum(int dutyNum) {
??DutyNum = dutyNum;
?}
?public String getDutyName() {
??return DutyName;
?}
?public void setDutyName(String dutyName) {
??DutyName = dutyName;
?}}
其次要写xml的sql语句:就是在oracle中插入新的表包含以上5个字段(DepartNum、DepartName、DepartNumStartdate、DepartLevel、SuperDepartNum)。
?? <!--向tbDepart里面插入新行-->
???? <insert id="addRowDepart"? parameterType="com.sampleone.pm.model.PmRow"? >
???? INSERT INTO tbdepart
? (departnum,
?? departname,
?? departnumstartdate,
?? departnumenddate,
?? departsystitle,
?? departlevel)
VALUES
? (#{DepartNum},#{DepartName},to_date(#{DepartNumStartdate},'YYYY-MM-DD HH24:MI:SS'),'',#{DepartLevel})?
???? </insert>
??? ??
???? <!--向tbDepart_depart里面插入新行-->
???? <insert id="addRowtbDepart_Depart"? parameterType="com.sampleone.pm.model.PmRow">
???? INSERT INTO tbdepart_depart
???? (superdepartnum,
???? juniordepartnum)?
???? VALUES
???? (#{SuperDepartNum},#{DepartNum})
???? </insert>
????然后:写DAO接口和对应的类DAOImpl
DAO:
package com.sampleone.pm.DAO;
import java.sql.Date;
import java.util.HashMap;
import java.util.List;
public interface PmDepartDAO {
?public List<HashMap<String,Integer>> getDepartName();
?public List<HashMap<String,Integer>> getDepartandNum();
?public void addRowDepart(int departNum,String departName,String departNumStartDate,int departLevel);
??? public void addRowtbDepart_Depart(int superDepartNum,int departNum1);
??? public void addRowtbDuty(int DutyNum,String DutyName,int DutyLevel);
??? public void updateManaDepart(int DutyNum);
??? public void delRowDepart(int DepartNum);
}
DAOImpl:
package com.sampleone.pm.DAO;
import java.util.List;
import java.lang.Integer;
import java.util.HashMap;
import java.sql.Date;
import com.sampleone.pm.model.PmRow;
import org.mybatis.spring.support.SqlSessionDaoSupport;
public class PmDepartDAOImpl extends SqlSessionDaoSupport implements? PmDepartDAO
{
?PmRow myaddRow=new PmRow();
?public List? getDepartName()
?{
??List? list = getSqlSession().selectList("com.cons.pm.model.PmUser.getDepartName");
??return (list == null) ? null : list;
?}
?public List getDepartandNum()
?{
??List list=getSqlSession().selectList("com.cons.pm.model.PmUser.getDepartandNum");
??return (list==null)? null:list;
?}
?//向tbDepart里面插入新行
?public void addRowDepart(int departNum,int departLevel)
?{
??myaddRow.setDepartNum(departNum);
??myaddRow.setDepartName(departName);
??myaddRow.setDepartNumStartdate(departNumStartDate);
??myaddRow.setDepartLevel(departLevel);
??//List list=getSqlSession().selectList("com.cons.pm.model.PmUser.addRowDepart",myaddRow);
??//return (List)getSqlSession().selectOne("com.cons.pm.model.PmRow.addRowDepart",myaddRow);
??//return (List)getSqlSession().insert("com.cons.pm.model.PmRow.addRowDepart",myaddRow);
??//return (List)getSqlSession().i
??getSqlSession().insert("com.cons.pm.model.PmRow.addRowDepart",myaddRow);
?}
?//向tbDepart_depart里面插入新行
?public void addRowtbDepart_Depart(int superDepartNum,int departNum1)
?{
??myaddRow.setDepartNum(departNum1);
??myaddRow.setSuperDepartNum(superDepartNum);
??getSqlSession().insert("com.cons.pm.model.PmRow.addRowtbDepart_Depart",myaddRow);
?}?
?
?
?//向tbDuty里面插入新行
?public void addRowtbDuty(int DutyNum,int DutyLevel)
?{
????? myaddRow.setDutyNum(DutyNum);
????? myaddRow.setDutyName(DutyName);
????? myaddRow.setDepartLevel(DutyLevel);
????? getSqlSession().insert("com.cons.pm.model.PmRow.addRowtbDuty",myaddRow);
?}
?
?//改变tbDuty里面管理科室的属性
?public void updateManaDepart(int DutyNum)
?{
??getSqlSession().update("com.cons.pm.model.PmUser.updateManaDepart",DutyNum);
?}
?
?
?
?//删除tbDepart里面的行
?public void delRowDepart(int DepartNum)
?{
??getSqlSession().delete("com.cons.pm.model.PmUser.delRowDepart",DepartNum);
?}
}
然后:就是Action了。
Action:
package com.sampleone.pm.action;
import com.sampleone.pm.DAO.PmDepartDAO;
import java.sql.Date;
import java.util.List;
public class PmDepartAction {
??? private PmDepartDAO pmDepartDAO = null;
????
?
?public void setPmDepartDAO(PmDepartDAO pmDepartDAO) {
??this.pmDepartDAO = pmDepartDAO;
?}
?
?public List getDepartName()
?{
??return pmDepartDAO.getDepartName();
?}
?public List getDepartandNum()
?{
??? return pmDepartDAO.getDepartandNum();?
?}
?public void addRowDepart(int departNum,int departLevel )
?{
??int departNum1=departNum;
??String departName1=departName;
??String departNumStartDate1=departNumStartDate;
??int departLevel1=departLevel;
??pmDepartDAO.addRowDepart(departNum1,departName1,departNumStartDate1,departLevel1);
?}
?
?public void addRowtbDepart_Depart(int superNum,int departNum)
?{
??int superNum1=superNum;
??int departNum1=departNum;
??pmDepartDAO.addRowtbDepart_Depart(superNum1,departNum1);
?}
?
?
?public void addRowtbDuty(int DutyNum,int DutyLevel)
?{
??int dutyNum=DutyNum;
??String dutyName=DutyName;
??int dutyLevel=DutyLevel;
??pmDepartDAO.addRowtbDuty(dutyNum,dutyName,dutyLevel);
?}
?
?
?public void updateManaDepart(int DutyNum)
?{
??pmDepartDAO.updateManaDepart(DutyNum);
?}
?
?public void delRowDepart(int DepartNum)
?{
??pmDepartDAO.delRowDepart(DepartNum);
?}
}
接下来就是配置DAO和Action了:
DAo:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
??? xmlns:flex="http://www.springframework.org/schema/flex?????? xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance?????? xsi:schemaLocation="http://www.springframework.org/schema/beans
??????http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
????????????
??????http://www.springframework.org/schema/flex/spring-flex-1.0.xsd">
??? <flex:message-broker />
??? <bean id="abstractDAO" class="org.mybatis.spring.support.SqlSessionDaoSupport" abstract="true">
??<property name="sqlSessionFactory"?? ref ="sqlSessionFactory" />
?</bean>
?
?<bean id="pmUserDAO" class="com.sampleone.pm.DAO.PmUserDAOImpl" parent="abstractDAO">
?? <flex:remoting-destination />
??<bean id="pmDepartDAO" class="com.sampleone.pm.DAO.PmDepartDAOImpl" parent="abstractDAO">
??
?? ?<bean id="pmDutyDAO" class="com.sampleone.pm.DAO.PmDutyDAOImpl" parent="abstractDAO">
</beans>
Action
?<bean id="helloworldDest" class="com.sampleone.Helloworld">
?</bean>
??? <bean id="pmUserAction" class="com.sampleone.pm.action.PmUserAction">
?? <property name="pmUserDAO" ref="pmUserDAO"/>
?</bean>
? <bean id="pmDepartAction" class="com.sampleone.pm.action.PmDepartAction">
?? <property name="pmDepartDAO" ref="pmDepartDAO"/>
?</bean>?
? <bean id="pmDutyAction" class="com.sampleone.pm.action.PmDutyAction">
?? <property name="pmDutyDAO" ref="pmDutyDAO"/>
</beans>
最后就是在主程序中增加<remote object>了。 ?