package cn.edu.xaut.datamanager.action;import java.io.BufferedReader;
import java.io.StringReader;
import java.sql.*;
import java.util.Iterator;import javax.swing.JOptionPane;import org.dom4j.Document;
import org.dom4j.Element;import cn.edu.xaut.datamanager.ActionCode;
import cn.edu.xaut.datamanager.util.DataProp;
import cn.edu.xaut.datamanager.util.XMLUtil;
import cn.edu.xaut.datamanager.comm.ActionResponse;
import cn.edu.xaut.app_pub.conn.SetupConnectionFactory;
import cn.edu.xaut.app_pub.guanyuan.CodeNumber;public class Action_class_Response extends ActionResponse{
public Action_class_Response(){
super(ActionCode.classcode);
}
public String getActionname(){
return "班级管理";
}
public String execute(String str){
if(checkXml(getXMLSchema(),str)){
try{
String[][] xmlArr=getDataInfo(str);
return saveData(xmlArr);
}catch(Exception e){
System.out.println(e.getMessage());
e.printStackTrace();
return "班级管理保存失败";
}
}else return "班级管理XML格式错误,保存失败";
}
public String getXMLSchema(){
return XMLUtil.getXmlFile(this.getClass(), "schemaclass.xsd");
}
public String[][] getDataInfo(String xmlStr){
String[][] xmlArr=null;
if(checkXml(getXMLSchema(),xmlStr)){
try{
BufferedReader br = new BufferedReader(new StringReader(xmlStr));
Document doc = XMLUtil.getDocument(br);
Element root = doc.getRootElement();
xmlArr=new String[root.nodeCount()+1][2];
Iterator it = root.elementIterator("row");
xmlArr[0][0]="clname";
xmlArr[0][1]="xueyuan";
int j=1;
while(it.hasNext()){
Element ele = (Element) it.next();
xmlArr[j][0]=ele.element("clname").getTextTrim();
xmlArr[j][1]=ele.element("xueyuan").getTextTrim();
System.out.println("xmlArr["+j+"][0]="+xmlArr[j][0]);
j++;
}
}catch(Exception e){
e.printStackTrace();
}
}else JOptionPane.showMessageDialog(null, "xml错误");
return xmlArr;
}
public String saveData(String[][]xmlArr){
StringBuffer returnStr=new StringBuffer();
for(int i=1;i<xmlArr.length;i++){
if(xmlArr[i][0]!=null&&(!xmlArr[i][0].equals("null"))&&(!xmlArr[i][0].trim().equals(""))){
try{
String sql_sel="select * from db_class where clname='"+xmlArr[i][0]+"'";
SetupConnectionFactory conn=new SetupConnectionFactory();
Statement st=conn.oracleConnection().createStatement();
System.out.println(sql_sel);
ResultSet rs=st.executeQuery(sql_sel);
if(rs.next()){
if(!(xmlArr[i][1]==null||xmlArr[i][1].trim().equals("")||xmlArr[i][1].trim().equals("null")))
{
String sql_upd="update db_class set xueyuan='"+DataProp.getLOVId("xueyuan",xmlArr[i][1])+"' where clname='"+xmlArr[i][0]+"'";
st.executeUpdate(sql_upd);
System.out.println(sql_upd);
}
}else{
String sql_ins="insert into db_class (clid,clname,xueyuan) " +
"values("+CodeNumber.codeNumber("db_class", "clid",null)+",'"+xmlArr[i][0]+"','"+DataProp.getLOVId("xueyuan",xmlArr[i][1])+"')";
st.executeUpdate(sql_ins);
System.out.println(sql_ins);
}
}catch(SQLException e){
returnStr.append("班级管理--班级名:").append(xmlArr[i][0]).append(" 保存失败!\n");
//e.printStackTrace();
}
}
}
return (returnStr.toString()==null||returnStr.toString().equals(""))?"班级管理全部保存成功":returnStr.toString();
}
}//----------------------------------
/*
*这是我工程中的一个类,和你要实现的功能差不多,先解析XML,将数据存储到数组中,然后再对数组操作,将数据存入数据库.
*这需要DOM4J包. 你解读一下吧,希望对你有用.
*/
import java.io.StringReader;
import java.sql.*;
import java.util.Iterator;import javax.swing.JOptionPane;import org.dom4j.Document;
import org.dom4j.Element;import cn.edu.xaut.datamanager.ActionCode;
import cn.edu.xaut.datamanager.util.DataProp;
import cn.edu.xaut.datamanager.util.XMLUtil;
import cn.edu.xaut.datamanager.comm.ActionResponse;
import cn.edu.xaut.app_pub.conn.SetupConnectionFactory;
import cn.edu.xaut.app_pub.guanyuan.CodeNumber;public class Action_class_Response extends ActionResponse{
public Action_class_Response(){
super(ActionCode.classcode);
}
public String getActionname(){
return "班级管理";
}
public String execute(String str){
if(checkXml(getXMLSchema(),str)){
try{
String[][] xmlArr=getDataInfo(str);
return saveData(xmlArr);
}catch(Exception e){
System.out.println(e.getMessage());
e.printStackTrace();
return "班级管理保存失败";
}
}else return "班级管理XML格式错误,保存失败";
}
public String getXMLSchema(){
return XMLUtil.getXmlFile(this.getClass(), "schemaclass.xsd");
}
public String[][] getDataInfo(String xmlStr){
String[][] xmlArr=null;
if(checkXml(getXMLSchema(),xmlStr)){
try{
BufferedReader br = new BufferedReader(new StringReader(xmlStr));
Document doc = XMLUtil.getDocument(br);
Element root = doc.getRootElement();
xmlArr=new String[root.nodeCount()+1][2];
Iterator it = root.elementIterator("row");
xmlArr[0][0]="clname";
xmlArr[0][1]="xueyuan";
int j=1;
while(it.hasNext()){
Element ele = (Element) it.next();
xmlArr[j][0]=ele.element("clname").getTextTrim();
xmlArr[j][1]=ele.element("xueyuan").getTextTrim();
System.out.println("xmlArr["+j+"][0]="+xmlArr[j][0]);
j++;
}
}catch(Exception e){
e.printStackTrace();
}
}else JOptionPane.showMessageDialog(null, "xml错误");
return xmlArr;
}
public String saveData(String[][]xmlArr){
StringBuffer returnStr=new StringBuffer();
for(int i=1;i<xmlArr.length;i++){
if(xmlArr[i][0]!=null&&(!xmlArr[i][0].equals("null"))&&(!xmlArr[i][0].trim().equals(""))){
try{
String sql_sel="select * from db_class where clname='"+xmlArr[i][0]+"'";
SetupConnectionFactory conn=new SetupConnectionFactory();
Statement st=conn.oracleConnection().createStatement();
System.out.println(sql_sel);
ResultSet rs=st.executeQuery(sql_sel);
if(rs.next()){
if(!(xmlArr[i][1]==null||xmlArr[i][1].trim().equals("")||xmlArr[i][1].trim().equals("null")))
{
String sql_upd="update db_class set xueyuan='"+DataProp.getLOVId("xueyuan",xmlArr[i][1])+"' where clname='"+xmlArr[i][0]+"'";
st.executeUpdate(sql_upd);
System.out.println(sql_upd);
}
}else{
String sql_ins="insert into db_class (clid,clname,xueyuan) " +
"values("+CodeNumber.codeNumber("db_class", "clid",null)+",'"+xmlArr[i][0]+"','"+DataProp.getLOVId("xueyuan",xmlArr[i][1])+"')";
st.executeUpdate(sql_ins);
System.out.println(sql_ins);
}
}catch(SQLException e){
returnStr.append("班级管理--班级名:").append(xmlArr[i][0]).append(" 保存失败!\n");
//e.printStackTrace();
}
}
}
return (returnStr.toString()==null||returnStr.toString().equals(""))?"班级管理全部保存成功":returnStr.toString();
}
}//----------------------------------
/*
*这是我工程中的一个类,和你要实现的功能差不多,先解析XML,将数据存储到数组中,然后再对数组操作,将数据存入数据库.
*这需要DOM4J包. 你解读一下吧,希望对你有用.
*/
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货