jdbc方式读取oracle的clob字段实例

来源:中国IT实验室 作者:佚名 2008-07-05 出处:pcdog.com

google  hibernate  java  mysql  oracle  
下一页 1 2 
          可能大家也都习惯了springhibernate对CLOB字段的处理,在spring中配置clob的oracle处理句柄,在hibernate中配置映射类型,然后就可以很轻松的以String 的形式处理大字段。
         今天我做了个需求,需要以jdbc的方式从mysql导一些备份数据到oracle正式库,就查了一些资料,最后写了个例子: 1:首先:写个连接数据库的类,里面有返回mysq, oracle连接的方法

 public Connection getConn(String flag){

      Connection con=null;

       try

       {

            if(flag.equals("1"))

            {

                 Class.forName(“oracle.jdbc.driver.OracleDriver”);

                 con = DriverManager.getConnection(“jdbc:oracle:thin:@IP:1521:数据库名字”,"name","password");

            }

            if(flag.equals("2"))

            {

                  Class.forName("org.gjt.mm.mysql.Driver");

                   con = DriverManager.getConnection("jdbc:mysql://localhost/数据库名?user=用户名&password=密码&useUnicode=true&characterEncoding=GBK");

               }

       }

       catch(Exception e)

       {

           e.printStackTrace();

       }

       return con;

      }

     public void setData() {

      conn = new Conn();

      try {

       String sqlfrom = "select  p.id,p.content from <A title=table href="http://www.alimama.com/membersvc/buyadzone/buy_ad_zone.htm?adzoneid=892989 " target=_blank>table</A> p  order by p.id   ";

       String sqlinsert = "insert into <A title=table href="http://www.alimama.com/membersvc/buyadzone/buy_ad_zone.htm?adzoneid=892989 " target=_blank>table</A>   values(?,?)";

       con = conn.getConn("2");

       stmt = con.createStatement(); //从mysql取出大字段

       rs = stmt.executeQuery(sqlfrom);

       con = conn.getConn("1");

       PreparedStatement pstmt = con.prepareStatement(sqlinsert); //向oracle中插入大字段

       int i = 0;

       while (rs.next()) {

       pstmt.setInt(1, rs.getInt(1));

       pstmt.setClob(2, <A title=oracle href="http://www.google.cn/search?sbi=股票&amp;amp;q=股票&amp;amp;sbb=搜索&amp;amp;sa=搜索&amp;amp;client=pub-6430022987645146&amp;amp;forid=1&amp;amp;prog=aff&amp;amp;ie=GB2312&amp;amp;oe=GB2312&amp;amp;hl=zh-CN" target=_blank>oracle</A>.sql.CLOB.empty_lob());

       pstmt.executeUpdate();  //插入时将大字段设为空

       this.updateOne(con,rs.getInt(1),rs.getString(2));  // 这里调用然后更新这个大字段

       }

       rs.close();  //关闭相关连接

       pstmt.close();

       stmt.close();

       con.close();

      } catch (Exception e) {

       e.printStackTrace();

       try

       {

       con.rollback();

       } catch (Exception e1) {

        <A title=system href="http://www.alimama.com/membersvc/buyadzone/buy_ad_zone.htm?adzoneid=892989 " target=_blank>system</A>.out.println("回滚出现异常!");

        e1.printStackTrace();

       }

      }

     }
    3:该方法实现对应大字段记录的更新



下一页 1 2 
上一篇:Oracle数据库维护常用SQL语句集合(3)
下一篇:SQL - 使用 Union 的注意事项