最近一直在搞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,String departName,String departNumStartDate,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,String DutyName, 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,String departName,String departNumStartDate,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, String DutyName, 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
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>
<bean id="pmDepartDAO" class="com.sampleone.pm.DAO.PmDepartDAOImpl" parent="abstractDAO">
<flex:remoting-destination />
</bean>
<bean id="pmDutyDAO" class="com.sampleone.pm.DAO.PmDutyDAOImpl" parent="abstractDAO">
<flex:remoting-destination />
</bean>
</beans>
Action
<?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
http://www.springframework.org/schema/flex/spring-flex-1.0.xsd">
<flex:message-broker />
<bean id="helloworldDest" class="com.sampleone.Helloworld">
<flex:remoting-destination />
</bean>
<bean id="pmUserAction" class="com.sampleone.pm.action.PmUserAction">
<flex:remoting-destination />
<property name="pmUserDAO" ref="pmUserDAO"/>
</bean>
<bean id="pmDepartAction" class="com.sampleone.pm.action.PmDepartAction">
<flex:remoting-destination />
<property name="pmDepartDAO" ref="pmDepartDAO"/>
</bean>
<bean id="pmDutyAction" class="com.sampleone.pm.action.PmDutyAction">
<flex:remoting-destination />
<property name="pmDutyDAO" ref="pmDutyDAO"/>
</bean>
</beans>
最后就是在主程序中增加<remote object>了。