现有Student.XML文件
< Student >
< StuNo >HB2080001 StuNo >
< StuName >小明 StuName >
< Sex >男 Sex >
< Brithday >1987-01-01 Brithday >
< Telphone >13800000000 Telphone >
< Address >北京 Address >
< Remark >This is Remark Remark >
Student >
要求:
读取文件数据,将数据插入到表中,如果文件解析出错就显示错误页面.
有学生信息表(Student)
字段名
类型
StuId(主键)
Number
StuNo
Varchar2(8)
StuName
Varchar2(16)
Sex
Number (1)
Brithday
Date
Address
Varchar2 (64)
Telphone
Varchar2 (16)
Remark
Varchar2 (128)
package com.hb2080.service;
import java.util.*;
import javax.xml.parsers.*;
import org.w3c.dom.*;
import org.apache.crimson.tree.XmlDocument;
import dao.DBTool;
import po.Student;
public class XMLTest {
public Student readXMLFile(String inFile) throws Exception {
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = null;
try {
db = dbf.newDocumentBuilder();
} catch (ParserConfigurationException pce) {
pce.printStackTrace();
}
Document doc = null;
doc = db.parse(inFile);
Element root = doc.getDocumentElement(); // 先取跟元素Student
Student student = new Student();
Random random = new Random();
student.setStuId(new Long(random.nextLong()));
NodeList stuNo = root.getElementsByTagName("StuNo");
student.setStuNo(stuNo.item(0).getFirstChild().getNodeValue());
NodeList stuName = root.getElementsByTagName("StuName");
student.setStuName((stuName.item(0).getFirstChild().getNodeValue()));
NodeList sexs = root.getElementsByTagName("Sex");
String sexTemp = sexs.item(0).getFirstChild().getNodeValue();
int sex = 0;
if (sexTemp.equals("男")) {
sex = 1;
}
student.setSex(new Long(sex));
NodeList brithday = root.getElementsByTagName("Birthday");
student.setBirthday((brithday.item(0).getFirstChild().getNodeValue()));
NodeList telephone = root.getElementsByTagName("Telephone");
student
.setTelephone((telephone.item(0).getFirstChild().getNodeValue()));
NodeList address = root.getElementsByTagName("Address");
student.setAddress((address.item(0).getFirstChild().getNodeValue()));
NodeList remark = root.getElementsByTagName("Remark");
student.setRemark((remark.item(0).getFirstChild().getNodeValue()));
return student;
}
public boolean writeIntoDB(Student student) {
try{
DBTool dbTool = new DBTool();
dbTool.add(student);
}catch(Exception e){
e.printStackTrace();
return false;
}
return true;
}
}
package dao;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import po.Student;
public class DBTool {
private Connection conn;
public void initConnection(){
String url = "jdbc:oracle:thin:@localhost:1521:orcl";
String user = "hch";
String password = "huchunhua";
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
conn = DriverManager.getConnection(url, user, password);
} catch (Exception e) {
e.printStackTrace();
}
}
public void closeConnection(){
try {
if(conn!=null)
conn.close();
}catch (SQLException e) {
e.printStackTrace();
}
}
public void add(Student stu){
String sql = " insert into student(stuid,stuno,stuname,sex,birthday,address,telephone,remark) values((select max(stuid) from student)+1," +
"(select max(stuno) from student)+1,'"+stu.getStuName()+"',"+stu.getSex()+",to_date('"+stu.getBirthday()+"','yyyy-MM-dd'),'"+stu.getAddress()+"','"+stu.getTelephone()
+"','"+stu.getRemark()+"')";
try {
this.initConnection();
Statement st = conn.createStatement();
st.executeUpdate(sql);
} catch (Exception e) {
e.printStackTrace();
}finally{
this.closeConnection();
}
}
}
package servlet;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import po.Student;
import com.hb2080.service.XMLTest;
public class Parse extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
this.doPost(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
XMLTest xmlTest = new XMLTest();
Student student = new Student();
try {
student = xmlTest.readXMLFile("C:/tomcat5.0.28/webapps/test6/Student.xml");
} catch (Exception e) {
e.printStackTrace();
}
boolean bool = xmlTest.writeIntoDB(student);
String message ="";
ServletContext application = this.getServletContext();
RequestDispatcher rd = null;
if(bool==true){
message ="解析成功!";
request.setAttribute("message",message);
rd = application.getRequestDispatcher("/parse.jsp");
}
else{
message ="解析失败!";
rd = application.getRequestDispatcher("/error.jsp");
}
rd.forward(request,response);
}
}
package po;
import java.util.Date;
public class Student {
private Long stuId;
private String stuNo;
private String stuName;
private Long sex;
private String birthday;
private String address;
private String telephone;
private String remark;
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public String getBirthday() {
return birthday;
}
public void setBirthday(String birthday) {
this.birthday = birthday;
}
public String getRemark() {
return remark;
}
public void setRemark(String remark) {
this.remark = remark;
}
public Long getSex() {
return sex;
}
public void setSex(Long sex) {
this.sex = sex;
}
public Long getStuId() {
return stuId;
}
public void setStuId(Long stuId) {
this.stuId = stuId;
}
public String getStuName() {
return stuName;
}
public void setStuName(String stuName) {
this.stuName = stuName;
}
public String getStuNo() {
return stuNo;
}
public void setStuNo(String stuNo) {
this.stuNo = stuNo;
}
public String getTelephone() {
return telephone;
}
public void setTelephone(String telephone) {
this.telephone = telephone;
}
}
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/9474419/viewspace-469882/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/9474419/viewspace-469882/