当前位置: 首页 > news >正文

在百度上怎么做网站/门户网站排行榜

在百度上怎么做网站,门户网站排行榜,入侵网站怎么做弹出,做网站和web前端一样吗将SQLPLUS导出的XML文件再次还原到oracle数据库由于最近工作要对数据库反复的操作,数据扭转完毕之后要将数据还原,因此这是一个很痛苦的过程,自己使用SQLPLUS工具,导出的数据没有SQL文件,(只导出查询的结果而不是整个数…

将SQLPLUS导出的XML文件再次还原到oracle数据库

由于最近工作要对数据库反复的操作,数据扭转完毕之后要将数据还原,因此这是一个很痛苦的过程,自己使用SQLPLUS工具,导出的数据没有SQL文件,(只导出查询的结果而不是整个数据表,导出表是有SQL文件的,因为数据很多的时候导出表很花费时间,实际工作中只关注自己需要的数据,因此没有必要导出整个表,我这里只是导出查询的结果)只有XML等其他四种文件格式,因此自己写了一个小程序,将导出的XML数据再次插入到数据库中,目的是将原来的数据删除掉,然后再插入,这样数据就还原了(貌似很麻烦,但数据量大了也没有办法)

对于上面的问题,个人能力有限,希望看官能给出你们的意见,下面是我代码实现XML导入数据库的过程

package hb.dom4j;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.PreparedStatement;

import java.sql.SQLException;

import java.util.Calendar;

import java.util.Date;

import java.util.HashMap;

import java.util.Iterator;

import java.util.Map;

import org.dom4j.Document;

import org.dom4j.DocumentException;

import org.dom4j.Element;

import org.dom4j.io.SAXReader;

import org.junit.Test;

/**

* 该测试类是将SQLPLUS导出的XML文件插入到数据库中

* @author huangbiao

*

*/

public class readXMLIntoDb {

private static String path = "C:\\hb\\hb.xml";

private static String tableName="person";

private static String dbName="orcl";

private static String username="huangbiao";//连接数据库的用户名

private static String password="huangbiao";//

private static String serverIP = "127.0.0.1";//数据库的IP地址

private static String serverPort = "1521";

private static int maxCoursor = 299;

//模拟数据字典的方式,下面字段的格式为日期类型

public static class DATE{

public static String BIRTHDAY = "BIRTHDAY";

}

public static class INTEGER{

public static String AGE = "AGE";

}

//使用Map方式提高运行的效率

public static Map MAP_DATE = null;

public static Map MAP_INTEGER = null;

public void init(){

if(MAP_DATE == null){

MAP_DATE = new HashMap();

MAP_DATE.put("BIRTHDAY", DATE.BIRTHDAY);

}

if(MAP_INTEGER == null){

MAP_INTEGER = new HashMap();

MAP_INTEGER.put("AGE", INTEGER.AGE);

}

}

public static void main(String[]args){

readXMLIntoDb x = new readXMLIntoDb();

x.init();//用来初始化数据

x.xmlDataIntoDB();

}

/**

* 测试能够正常读取文件

*/

@Test

public void readXML(){

// 以DOM4J默认的SAX解析器解析

SAXReader reader = new SAXReader();

// read函数的形参可以是url 也可以是 File类型,也可以是STRING类型的相对或绝对路径

Document document=null;

try {

document = reader.read(path);

} catch (DocumentException e) {

System.out.println("读取文件异常");

e.printStackTrace();

}

if(document == null){

System.out.println("读取文件失败");

}

}

/**

* 测试解析XML文件的内容,读取里面的内容

*/

@Test

public void readXMLContent(){

// 以DOM4J默认的SAX解析器解析

SAXReader reader = new SAXReader();

// read函数的形参可以是url 也可以是 File类型,也可以是STRING类型的相对或绝对路径

Document document=null;

try {

document = reader.read(path);

} catch (DocumentException e) {

System.out.println("读取文件异常");

e.printStackTrace();

}

if(document == null){

System.out.println("读取文件失败");

}

// 获得根节点

Element root = document.getRootElement();

// i为根节点孩子节点的迭代器

for (Iterator i = root.elementIterator(); i.hasNext();) {

Element element = (Element) i.next();

//根节点的名称

System.out.println(element.getName());

for(Iterator it = element.elementIterator(); it.hasNext();){

Element subElement = (Element)it.next();

System.out.println(subElement.getName()+":"+subElement.getText());

}

}

}

/**

* 连接数据库测试

*/

@Test

public void connDB(){

try {

Class.forName("oracle.jdbc.driver.OracleDriver");

Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@"+serverIP+":"+serverPort+":"+dbName, username, password);

System.out.println("连接成功!");

conn.close();

} catch (ClassNotFoundException e) {

e.printStackTrace();

} catch (SQLException e) {

e.printStackTrace();

}

}

/**

* 测试通过DOM4J解析文件拼装的插入SQL语句

*/

@Test

public void getSqlString(){

// 以DOM4J默认的SAX解析器解析

SAXReader reader = new SAXReader();

// read函数的形参可以是url 也可以是 File类型,也可以是STRING类型的相对或绝对路径

Document document=null;

try {

document = reader.read(path);

} catch (DocumentException e) {

System.out.println("读取文件异常");

e.printStackTrace();

}

if(document == null){

System.out.println("读取文件失败");

}

StringBuffer sb = new StringBuffer();

sb.append("insert into "+tableName+" (");

Element root = document.getRootElement();

Iterator it = root.elementIterator();

Element el = (Element)it.next();

int number = 0;

Iterator i = el.elementIterator();

while(i.hasNext()){

Element sub = (Element)i.next();

//System.out.println(sub.getName());

sb.append(sub.getName()+",");

number++;

}

//打印显示的内容——insert into t_user (SSID,NAME,

//System.out.println(sb.toString());

//删除最后一个逗号

String temp = sb.substring(0, sb.length()-1);

System.out.println(temp);

StringBuffer result = new StringBuffer(temp);

result.append(")").append("values(");

for(int p=0;p

result.append("?");

if(p

result.append(",");

}

}

result.append(")");

System.out.println(result);

}

/**

* 抽象出来的静态方法,解析XML文件,得到插入的SQL语句

* @return

*/

public static String getSql(){

// 以DOM4J默认的SAX解析器解析

SAXReader reader = new SAXReader();

// read函数的形参可以是url 也可以是 File类型,也可以是STRING类型的相对或绝对路径

Document document=null;

try {

document = reader.read(path);

} catch (DocumentException e) {

System.out.println("读取文件异常");

e.printStackTrace();

}

if(document == null){

System.out.println("读取文件失败");

}

StringBuffer sb = new StringBuffer();

sb.append("insert into "+tableName+" (");

Element root = document.getRootElement();

Iterator it = root.elementIterator();

Element el = (Element)it.next();

int number = 0;

Iterator i = el.elementIterator();

while(i.hasNext()){

Element sub = (Element)i.next();

//System.out.println(sub.getName());

sb.append(sub.getName()+",");

number++;

}

//打印显示的内容——insert into t_user (SSID,NAME,

//System.out.println(sb.toString());

//删除最后一个逗号

String temp = sb.substring(0, sb.length()-1);

System.out.println(temp);

StringBuffer result = new StringBuffer(temp);

result.append(")").append("values(");

for(int p=0;p

result.append("?");

if(p

result.append(",");

}

}

result.append(")");

System.out.println(result);

return result.toString();

}

/**

* 将XML文件的数据插入到数据库中,通过这个类就能够看到效果

*/

@Test

public void xmlDataIntoDB(){

Connection conn = null;

PreparedStatement pre = null;

try {

Class.forName("oracle.jdbc.driver.OracleDriver");

conn = DriverManager.getConnection("jdbc:oracle:thin:@"+serverIP+":"+serverPort+":"+dbName, username, password);

System.out.println("连接成功!");

} catch (ClassNotFoundException e1) {

e1.printStackTrace();

} catch (SQLException e) {

e.printStackTrace();

}

//String sql="insert into t_user (SSID,name)values(?,?)";

String sql=getSql();

System.out.println("sql----"+sql);

// 以DOM4J默认的SAX解析器解析

SAXReader reader = new SAXReader();

// read函数的形参可以是url 也可以是 File类型,也可以是STRING类型的相对或绝对路径

Document document=null;

try {

document = reader.read(path);

} catch (DocumentException e) {

System.out.println("读取文件异常");

e.printStackTrace();

}

if(document == null){

System.out.println("读取文件失败");

}

// 获得根节点

Element root = document.getRootElement();

// i为根节点孩子节点的迭代器

int count = 1;

for (Iterator i = root.elementIterator(); i.hasNext();) {

Element element = (Element) i.next();

//根节点的名称

System.out.println(element.getName());

String elementName="";

String elementText="";

try {

pre = conn.prepareStatement(sql);

int num=1;

for(Iterator it = element.elementIterator(); it.hasNext();){

Element subElement = (Element)it.next();

elementName = subElement.getName();

elementText = subElement.getText();

System.out.println(elementName +":"+elementText);

//如果是日期类型的字符串需要转换为日期类型

if(MAP_DATE.get(elementName)!=null){

//使用当前系统的时间

//java.util.Date utilDate = new java.util.Date();

//java.sql.Date date = new java.sql.Date( utilDate .getTime());

//System.out.println("date----"+date);

//pre.setDate(num, date);

String temp[] = elementText.split("-");

//使用下面的格式有点过时了,用Calendar对象代替了Date对象

//int year = Integer.parseInt(temp[0])-1900;

//int month = Integer.parseInt(temp[1])-1;

//int day = Integer.parseInt(temp[2]);

//Date date = new Date(year,month,day);

int year = Integer.parseInt(temp[0]);

int month = Integer.parseInt(temp[1])-1;

int day = Integer.parseInt(temp[2]);

Calendar c = Calendar.getInstance();

c.set(year, month, day);

Date date = c.getTime();

java.sql.Date time = (java.sql.Date) new java.sql.Date(date.getTime());

pre.setDate(num, time);

}

else if(MAP_INTEGER.get(elementName)!=null){

pre.setInt(num, 4);

}else{

pre.setString(num, elementText);

}

num++;

}

pre.executeUpdate();

} catch (SQLException e) {

e.printStackTrace();

}

count++;

//这个过程是为了解决一次性读取的数据量比较大,超出打开游标的最大数而抛出异常的解决办法

if(count > maxCoursor){

try {

pre.close();

pre = conn.prepareStatement(sql);

} catch (SQLException e) {

e.printStackTrace();

}

}

}

try {

pre.close();

conn.close();

} catch (SQLException e) {

e.printStackTrace();

}

}

}

工具导出xml文件的格式

654971292BD54071A18D8DC3124A9CD0

huangbiao

0FF29DCB5EEC4C97A1D4EF91D04B9CC3

biaobiao

http://www.lbrq.cn/news/1391869.html

相关文章:

  • 玉溪做网站的公司/关键词优化是怎么弄的
  • 做网站哪家便宜/百度快速排名
  • 英文网站建设600/深圳全网推广平台
  • 开发个微网站多少钱/长沙网站推广智投未来
  • wordpress添加cnzz/2022年seo还值得做吗
  • 中国建设报社门户网站/站长工具seo综合查询烟雨楼
  • 怎样查找网站域名/企业网站推广方案的策划
  • 游戏代理是做什么的/seo企业站收录
  • 泰国网站域名/百度app客服人工在线咨询
  • 党校网站建设整改情况/如何设计企业网站
  • 企业如何建设免费网站/下载百度官方版
  • 做网站的学校有哪些/新网域名注册查询
  • 怎么做网站背景图/百度爱采购官方网站
  • dw如何做网站后台/安卓aso优化
  • 如何做网站的内链优化/怎么成为百度推广代理商
  • 什么是个人网站/灰色词秒收录代发
  • 网站建设的目标是/备案域名
  • seo网站的锚文本怎么写/苏州网站建设公司
  • 百seo排名优化/谷歌seo网站优化
  • 湖南3合1网站建设价格/雅虎搜索引擎中文版
  • 值得买 wordpress/seo对网络推广的作用是什么?
  • 宜昌平台网站建设/如何快速搭建一个网站
  • 政府门户网站建设的重点/网站网上推广
  • 今日国际新闻最新新闻/搜索引擎优化排名品牌
  • 小企业财务软件免费版/如何优化网络连接
  • BC网站开发公司/跨境电商seo
  • 用ps怎么做网站/必应搜索引擎首页
  • 路由器电脑可以做网站主机/产品网络推广深圳
  • 宜昌网站推广/湛江seo
  • 上海网站建设sheji021/营销型网站的类型有哪些
  • 项目1总结其三(图片上传功能)
  • opencv学习:图像边缘检测
  • redis在Spring中应用相关
  • 机器学习聚类算法
  • Prompt魔法:提示词工程与ChatGPT行业应用读书笔记:提示词设计全能指南
  • 12KM无人机高清图传通信模组——打造未来空中通信新高度