posts - 33,  articles - 177,  comments - 170, 
<2009年7月>
2829301234
567891011
12131415161718
19202122232425
2627282930311
2345678




最新随笔

留言簿

随笔分类

文章分类

相册

常用网站排排座

好友

沪友

喜欢的节目

  •  

最新评论

1. re: 日语流行口语极短句888个(18)
168、真阔气。 いいご身分(みぶん)だね。 A:来月、ヨーロツパ旅行に行くのよ。 B:いいご身分だね。つい最近、新車を買ったばかりじゃない? A:对不起,我跟京子要回去了。 B:真扫兴。正在兴上呢。... (szlxl82)
2. re: 加班
Sorry, 現在才發現您很有趣的漫畫, 有大出名的潛力喔!!!!! ~ 可以考慮多發揮哪 ~ 08學日文逛到您網頁, 覺得很受益而收藏..! 但09年現在要温故知新日文, 才又上來, 希望你仍有... (sofia)
3. re: 日语流行口语极短句888个(40)
为何大多音频已经不能下载了呢?? (西村京)
4. re: 重拾我的沪江小博
加油哦!我也是学计算机的,现在刚开始学习日语。还有很多向你学习的啊! 您的博客收藏了,谢谢! (东东)
5. re: 加班
IT人士,555...我们是IT边缘人士.. (Enjoy)
6. re: 贴几张漂漂的签名图片
とても 可愛い写真ですね。 (QQ签名)
7. re: 加班
你好,我想跟你联系一下,有个事情想和您有一个好的沟通.我也是一个日语学习者,我的QQ:35692867.您可以加我吗?或者给我写信:lucklyliu@sina.com.谢谢呀.真的想与您沟通. (小美)

阅读排行榜

评论排行榜

2005-12-05


 

1、将数据库某字段的内容导出到指定的文件

数据库表结构如下:

MAXPRESENTATION

APP

VARCHAR2(10)

PRESENTATION

CLOB

MAXPRESENTATIONID

NUMBER

ROWSTAMP

VARCHAR2(40)

[]:以APP字段的内容做为导出的文件名,PRESENTATION字段的内容做为该文件的内容,该字段的编码格式为:UTF-8

程序清单如下:

package file;

import java.io.BufferedReader;

import java.io.BufferedWriter;

import java.io.File;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.InputStreamReader;

import java.io.OutputStreamWriter;

import java.sql.Clob;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.sql.Statement;

/**

 * 文件导出

 *

 * @author songl

 * @version 1.0 2005.12.2

 */

public class ExpFile {

      

       public static void main(String args[]) throws ClassNotFoundException, IOException {

              Connection con = null;

              Statement stmt = null;

              ResultSet rs = null;

              try{

                     String url = "jdbc:oracle:thin:@IP:1521:system";

                     DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());

                     con = DriverManager.getConnection(url,"maximo","maximo");

                     stmt = con.createStatement();

                    

                     System.out.println("请指定导入的文件名:");

                     InputStreamReader irFile = new InputStreamReader(System.in);

                     BufferedReader inFile = new BufferedReader(irFile);

                     String sFile = inFile.readLine();

                     sFile = sFile.toUpperCase();  

                     if(sFile!=null && !sFile.equalsIgnoreCase("")){

                            rs = stmt.executeQuery("select * from MAXPRESENTATION

where APP='"+sFile+"'");

                     }else{

                            rs = stmt.executeQuery("select * from MAXPRESENTATION");

                     }

                     while(rs.next()){

                            //新建文件

                            System.out.println(rs.getString(1));

                            String strName = rs.getString(1);

                            strName = strName+".xml";

                            File f1= new File("/epmxes/epmxes/res/presentation",strName);

                            if(f1.isFile()==false){

                                   try {

                                          f1.createNewFile();

                                   } catch (IOException e) {

                                          e.printStackTrace();

                                   }

                                   String strNR = null;

//读取文件内容

                                   Clob clob = rs.getClob(2);

                                   strNR = clob.getSubString( (long) 1, (int) clob.length());

                                   //写入文件,此处要用字节流来读取,还要指定编码格式,以免乱码

                                   OutputStreamWriter isw = new OutputStreamWriter(new

FileOutputStream(f1),"UTF-8");

                                   BufferedWriter bw = new BufferedWriter(isw);

                                   bw.write(strNR,0,strNR.length());

                                   bw.close();

                            }else{

                                   System.out.println("文件:"+strName+"已经存在!是否覆盖?y/n");

                                   InputStreamReader ir;

                                   BufferedReader in;

                                   ir=new InputStreamReader(System.in);

                                   in=new BufferedReader(ir);

                                   String s=in.readLine();

                                   if(s.equalsIgnoreCase("y")){

                                          System.out.println("文件:"+strName+"被覆盖!");

                                          String strNR = null;

                                          Clob clob = rs.getClob(2);

                                          //读取文件内容

                                          strNR = clob.getSubString( (long) 1, (int) clob.length());

                                          System.out.println("文件内容如下:");

                                          System.out.println(strNR);

                                          //写入文件

                                          OutputStreamWriter isw = new OutputStreamWriter(new

FileOutputStream(f1),"UTF-8");

                                          System.out.println(isw.getEncoding());

                                          BufferedWriter bw = new BufferedWriter(isw);

                                          bw.write(strNR,0,strNR.length());

                                          bw.close();

                                   }else if(s.equalsIgnoreCase("n")){

                                          System.out.println("文件:"+strName+"没有被覆盖!");

                                   }else{

                                          System.out.println("输入的字符有误!请重新运行程序!");

                                   }

                            }

                     }

              }catch(SQLException ex){

                     ex.printStackTrace();

              }finally{

                     try{

                            rs.close();

                            stmt.close();

                            con.close();

                     }catch(SQLException ex){

                            ex.printStackTrace();

                     }                  

              }

       }

}

2、将文件内容存入数据库的表中相应的字段

程序清单如下:

package file;

import java.io.BufferedReader;

import java.io.File;

import java.io.FileInputStream;

import java.io.InputStreamReader;

import java.io.Writer;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.sql.Statement;

/**

 * 导入数据库

 *

 * @author songl

 * @version 1.0 2005.12.2

 */

public class ImpDb {

       public static void main(String args[]) {

              Connection con = null;

              ResultSet resultset = null;

              Statement statement = null;

              Statement pstmt = null;

              try{

                     System.out.println("请指定导入数据库的文件名:");

                     InputStreamReader irFile = new InputStreamReader(System.in);

                     BufferedReader inFile = new BufferedReader(irFile);

                     String sFile = inFile.readLine();

                     if(sFile!=null && !sFile.equalsIgnoreCase("")){

                            File f1= new File("/epmxes/epmxes/res/presentation/",sFile+".xml");

                            if(f1.isFile()==true){

                                   //读取文件内容

                                   InputStreamReader isr = new InputStreamReader(new

FileInputStream(f1),"UTF-8");

                                   BufferedReader br = new BufferedReader(isr);

                                   String strNR = "";

                                   while (true) {

//按行读取

                              String temp = br.readLine();

                              if (temp == null){

                                  break;

                              }

                              strNR += temp + "\n";

                          }

                                   br.close();

                                   System.out.println("文件内容如下:");

                                   System.out.println(strNR);

                                   String url = "jdbc:oracle:thin:@IP:1521:system";

                                   DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());

                                   con = DriverManager.getConnection(url,"maximo","maximo");

                                   //将文件导入数据库

                                   sFile = sFile.toUpperCase();  

                                   con.setAutoCommit(false);

                                   String sql = "update MAXPRESENTATION set PRESENTATION =

empty_clob() where APP='" + sFile + "'";

                                   pstmt = con.createStatement();

                                   pstmt.executeUpdate(sql);

                                   statement = con.createStatement();

                                   String sql2="select PRESENTATION from MAXPRESENTATION

where APP='"+sFile+"'";

                                   resultset = statement.executeQuery(sql2);

                                oracle.sql.CLOB contents = null;

                                while(resultset.next()) {

                                          //要使用oracle中的resultset对象

                                    contents = (oracle.sql.CLOB)resultset.getClob(

"PRESENTATION");

                                }

                                Writer out = contents.getCharacterOutputStream();

                                out.write(strNR);

                                out.flush();

                                out.close();

                                con.commit();

                                con.setAutoCommit(true);

                                System.out.println("导入数据库成功!");

                            }else{

                                   System.out.println("不存在该文件!");

                            }                         

                     }else{

                            System.out.println("请输入文件名!");

                     }

              }catch(Exception ex){

                     try{

                            if(con!=null){

                                   con.rollback();

                            }

                     }catch(SQLException e){

                            e.printStackTrace();

                     }                  

              }finally{

                     try{

                            if(resultset!=null){

                                resultset.close();

                         }

                         if(statement!=null){

                                statement.close();

                         }

                         if(pstmt!=null){

                                pstmt.close();

                         }

                         if(con!=null){

                                con.close();

                         }                         

                     }catch(SQLException ex){

                            ex.printStackTrace();

                     }    

              }

       }

}

posted on 2006-09-28 14:59 小鳥 阅读(588) 评论(0)  编辑  收藏 所属分类: IT技术

标题  
姓名  
EMail (只有博主才能看到)
验证码 *
内容(提交失败后,可以通过“恢复上次提交”恢复刚刚提交的内容)  
  登录    新用户注册  返回页首  恢复上次提交      
[使用Ctrl+Enter键可以直接提交]