1. 程式人生 > >java 傳陣列到Oracle中in arr的方法總結

java 傳陣列到Oracle中in arr的方法總結

方法一:把陣列轉為字串,然後把[ ]替換為(),在拼起來

  public static void query(Connection conn,String[] arr ){
	  PreparedStatement pst=null; 
	  ResultSet rs=null;
	  StringBuilder sql=new StringBuilder("select * from test_lin where id in ");
	  try {	
		String arrStr=Arrays.toString(arr).replace("[", "(").replace("]", ")");
		sql.append(arrStr);
		pst=conn.prepareStatement(sql.toString());
		rs=pst.executeQuery();
		while(rs.next()){
			System.out.println("id="+rs.getString(1)+"\tname="+rs.getString(2));
		}
	} catch (SQLException e) {
		e.printStackTrace();
	}finally{  		
        close(rs, pst, conn);  
    }  
	 
  }

方法二:用佔位符?來拼

 public static void query(Connection conn,String[] arr ){
	  PreparedStatement pst=null; 
	  ResultSet rs=null;
	  StringBuilder sql=new StringBuilder("select * from test_lin where id in ");
	  try {	
		  int len=arr.length;
		  sql.append("(");
		for(int i=0;i<len;i++){
			sql.append("?");
			if(i!=len-1){
				sql.append(",");
			}
		}
		sql.append(")");
		pst=conn.prepareStatement(sql.toString());
		for(int j=0;j<len;j++){
			pst.setObject(j+1,arr[j]);
		}
		rs=pst.executeQuery();
		while(rs.next()){
			System.out.println("id="+rs.getString(1)+"\tname="+rs.getString(2));
		}
	} catch (SQLException e) {
		e.printStackTrace();
	}finally{  		
        close(rs, pst, conn);  
    }  
	 
  }


相關推薦

java 陣列Oraclein arr方法總結

方法一:把陣列轉為字串,然後把[ ]替換為(),在拼起來 public static void query(Connection conn,String[] arr ){ PreparedS

Java遍歷包所有類方法註解

|| asm 服務器 ret nec next 代碼 自定義 tco 一.代碼實例 import java.io.File; import java.io.FileFilter; import java.io.IOException; import java.l

JAVA循環刪除list元素的方法總結

tor 循環 toolbar i++ 使用 修改 log span .get  印象中循環刪除list中的元素使用for循環的方式是有問題的,但是可以使用增強的for循環,然後今天在使用時發現報錯了,然後去科普了一下,再然後發現這是一個誤區。下面就來講一講。。伸手黨可直接跳

java.lang.Class類的某些方法

getc 不定 sys etc .get out 類名 ont class類 反射的代碼會經常遇到,Class類中方法真的多,且用的少,大多用在底層源碼這塊,既然看到了,就記錄一下吧,說不定以後厲害了,自己封裝框架,haha getComponentType()方法: S

Oracle in、exists、not in,not exists的比較

src inf .... blog pos str bug class exists 最基本的區別: in 對主表使用索引 exists 對子表使用索引 not in 不使用索引 not exists 對主子表都使用索引 寫法: exist的where條件是: "..

java調用Oracle的存儲過程與存儲函數

div edr oid rac gist acl ble ava exception 1 //調用存儲過程 2 public static void testPro(){ 3 String driver = "oracle.jdbc.Orac

JAVA循環刪除list元素的方法總結(跳格刪除問題解決)(轉)

今天 src log 觸發 導致 spi als exceptio spa  印象中循環刪除list中的元素使用for循環的方式是有問題的,但是可以使用增強的for循環,然後今天在使用時發現報錯了,然後去科普了一下,再然後發現這是一個誤區。下面就來講一講。。伸手黨可直接跳至

Java】Thread類的join()方法原理

簡介 join()是Thread類的一個方法。根據jdk文件的定義: public final void join()throws InterruptedException: Waits for this thread to die. join()方法的作用,是

jsp頁面JSTL/EL標籤引用java後臺靜態static欄位的方法總結

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

Java實現陣列去除重複資料的方法詳解

一.用List集合實現 int[] str = {5, 6, 6, 6, 8, 8, 7,4}; List<Integer> list = new ArrayList<Integer>(); for (int i=0; i<str.length; i++) { if(

oracle資料型別對應java型別[轉載] oracle資料型別對應java型別

oracle中資料型別對應java型別 轉載地址:https://www.cnblogs.com/softidea/p/7101091.html 地址: http://otndnld.Oracle.co.jp/document/products/oracle10g/102/

C++函式返回陣列指標的幾種方法總結

因為陣列不能被拷貝,所以函式不能返回陣列。不過,函式可以返回陣列的指標或引用。返回陣列指標的方法有以下幾種:     1、方法一:使用類型別名。如下         typedef int arrt[10];//arrT是一個類型別名,它表示的型別是含有10個整數的陣列   

Java實現陣列去除重複資料的方法詳解(轉)

本文例項講述了Java實現陣列去除重複資料的方法。分享給大家供大家參考,具體如下: 前一段時間被面試問到:如果一個數組中有重複元素,用什麼方法可以去重?一時間會想到用一種方法,但是後來查閱資料後發現,有好多方法可以實現,現在就總結一下,比較簡單的幾種。 一.用List

oraclein與exist的用法與比較

最近在工作中用到oracle的in函式,但是該函式的引數個數存在上限(1000)的限制,而且涉及查詢的兩個表還在兩個不同的資料庫中,就無法使用exists函式來替代in的使用了。但還是總結一下in與exists的用法差異。 1.in適用於內表比外表資料量小的場景:select * from te

JAVAsort()常用方法總結

一、Arrays.sort()的用法 import java.util.Arrays; public class Main{ public static void main(String args[

Java-MyBatis:MyBatis in 的用法

ylbtech-Java-MyBatis-雜項:MyBatis  中  in 的用法   1.返回頂部 1、 foreach的主要用在構建in條件中,它可以在SQL語句中進行

ORACLE in與exists語句的區別(一)

select * from A where id in(select id from B) 以上查詢使用了in語句,in()只執行一次,它查出B表中的所有id欄位並快取起來.之後,檢查A表的id是否與B表中的id相等,如果相等則將A表的記錄加入結果集中,直到遍歷完A表的所有

java多執行緒關於join方法的使用

Thread的非靜態方法join()讓一個執行緒B“加入”到另外一個執行緒A的尾部。在A執行完畢之前,B不能工作。例如:         Thread t = new MyThread();         t.start();         t.join(); 另外,j

oraclein和exists的區別

          一直以來,大家認為exists比in速度快,其實是不準確的。且看接下來的具體分析:in其實是將外表和內表進行hash join,exists是先對外表進行loop操作,然後每次loop後再對內表進行查詢。         如果兩張表大小差不多,那麼exi

java基礎—String類的concat()方法

今天遇到一個題 String str=null; str.concat("123"); System.out.println(str); 這道題的執行結果會報 空指標異常 然後聯想到了他和 + 的區別 個人理解如下 首