zoukankan      html  css  js  c++  java
  • Oracle jdbc 插入 clob blob

    Oracle 使用 clob 与 blob 插入一些比较庞大的文本或者文件,JDBC 插入时 也比较简单


    表结构

    CREATE TABLE test_info (
      user_id int NOT NULL,
      user_name varchar(64) NULL,
      email varchar(32) NULL,
      contentText blob not null
    );

    java 代码

    	/**
    	 * 获得数据库连接
    	 * @param url
    	 * @param username
    	 * @param passwd
    	 * @return
    	 */
    	public static Connection createConnection(String url, String username, String passwd) {
    		Connection conn = null;
    		
    		try {
    			DriverManager.registerDriver(new OracleDriver());
    			
    			conn = DriverManager.getConnection(url, username, passwd);
    			
    		} catch (Exception e) {
    			e.printStackTrace();
    		}
    		return conn;
    	}
    	
    	/**
    	 * 写入 blob
    	 */
    	public static void writeBLOB() {
    		/** inFile path **/
    		String inPath = "D:/testFile/xstream/test01.jpg";
    
    		/** ========== out ========== **/
    		String xsoutUrl = ConfigInfo.xsoutUrl;
    		String xsoutUsername = "testStreamUser";
    		String xsoutPasswd = "admin";
    		
    		InputStream input = null;
    		
    		Connection conn = null;
    		PreparedStatement pst = null;
    		
    		int userId = 1;
    		String sqlInsert = "insert into test_info values (" + userId + ", 2, 3, ?) ";
    		
    		try {
    			//输出流
    			input = new FileInputStream(inPath);
    			
    			conn = createConnection(xsoutUrl, xsoutUsername, xsoutPasswd);
    			conn.setAutoCommit(false);
    			
    			pst = conn.prepareStatement(sqlInsert);
    			
    			pst.setBinaryStream(1, input);
    			
    			//插入数据
    			pst.executeUpdate();
    			
    			//commit
    			pst.execute("COMMIT");
    
    		} catch (Exception e) {
    			e.printStackTrace();
    		}finally{
    			try {
    				input.close();
    				
    				pst.close();
    				conn.close();
    			} catch (IOException e) {
    				// TODO Auto-generated catch block
    				e.printStackTrace();
    			} catch (SQLException e) {
    				// TODO Auto-generated catch block
    				e.printStackTrace();
    			}
    		}
    	}



  • 相关阅读:
    Oracle 中 varchar2(N) 与 varchar2(N char) 的区别
    EXP-00008: 遇到 ORACLE 错误 1455
    服务器重装Windows Server2008 R2操作系统
    h5页面自定义主题色(vue)
    初窥vue3.0
    ElasticSearch学习笔记_1
    mysql索引的使用
    什么时候使用视图
    Latex使用手册记录
    最大熵模型理论及NLP应用总结
  • 原文地址:https://www.cnblogs.com/moonciki/p/8145838.html
Copyright © 2011-2022 走看看