• 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();
    			}
    		}
    	}



  • 相关阅读:
    LeetCode 516. Longest Palindromic Subsequence
    LeetCode 432. All O`one Data Structure
    LeetCode 450. Delete Node in a BST
    LeetCode 460. LFU Cache
    LeetCode 341. Flatten Nested List Iterator
    LeetCode 381. Insert Delete GetRandom O(1)
    LeetCode 380. Insert Delete GetRandom O(1)
    LintCode Coins in a Line III
    LintCode Coins in a Line II
    LintCode Coins in a Line
  • 原文地址:https://www.cnblogs.com/moonciki/p/8145838.html
Copyright © 2020-2023  润新知