개요
JAVA 프로그램, orange for tibero에서 바인드 변수 이용 시 '?' 형태로 선언하며, tbsql에서 수행 시 ':문자' 형태로 선언합니다.
아래는 JAVA 코드에서 바인드 변수 사용 방법에 대한 예시입니다.
방법
1. 샘플 데이터 insert
샘플 테이블)
SQL>create table test01 (id number, name varchar(100), day date);
SQL>insert into test01 values (1, 'KIM', sysdate);
SQL>insert into test01 values (2, 'LEE', sysdate);
SQL>insert into test01 values (3, 'PARK', sysdate);
SQL>commit;
SQL> select * from test01;
ID NAME DAY
---------- -------------------- ------------------------------
1 KIM 2025/03/12
2 LEE 2025/03/12
3 PARK 2025/03/12
3 rows selected.
Java
복사
2. JAVA 코드 샘플
import java.sql.Connection;
import com.tmax.tibero.jdbc.ext.TbDataSource;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Date;
import java.util.Calendar;
import java.text.SimpleDateFormat;
public class TiberoBindVariableExample {
public static void main(String[] args) {
TbDataSource tds = new TbDataSource();
tds.setURL("jdbc:tibero:thin:@127.0.0.1:7300:tibero7_2_2_287079");
tds.setUser("tibero");
tds.setPassword("tmax");
try (Connection connection = tds.getConnection();
PreparedStatement pstmt = connection.prepareStatement("SELECT * FROM test01 WHERE id = ? OR name = ? OR TO_CHAR(day, 'YYYY/MM/DD') = TO_CHAR(?, 'YYYY/MM/DD')")) {
int id = 1;
String name = "PARK";
// 오늘 날짜를 java.sql.Date 타입으로 생성
Calendar cal = Calendar.getInstance();
cal.set(Calendar.HOUR_OF_DAY, 0);
cal.set(Calendar.MINUTE, 0);
cal.set(Calendar.SECOND, 0);
cal.set(Calendar.MILLISECOND, 0);
Date today = new Date(cal.getTimeInMillis());
pstmt.setInt(1, id);
pstmt.setString(2, name);
pstmt.setDate(3, today);
try (ResultSet rs = pstmt.executeQuery()) {
while (rs.next()) {
System.out.println("ID: " + rs.getInt("id"));
System.out.println("Name: " + rs.getString("name"));
System.out.println("Day: " + rs.getDate("day"));
}
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
Java
복사
3. JAVA 컴파일
$ javac -cp "/home/jinhwa/tibero7_2_2_287079/client/lib/jar/tibero7-jdbc.jar" TiberoBindVariableExample.java
$ ls -alt | grep Tibero
-rw-rw-r-- 1 jinhwa jinhwa 2952 3월 12 15:06 TiberoBindVariableExample.class
-rw-rw-r-- 1 jinhwa jinhwa 1329 3월 12 15:03 TiberoBindVariableExample.java
Java
복사
4. JAVA 실행 결과
$ java -cp "/home/jinhwa/tibero7_2_2_287079/client/lib/jar/tibero7-jdbc.jar:." TiberoBindVariableExample
ID: 1
Name: KIM
Day: 2025-03-12
ID: 2
Name: LEE
Day: 2025-03-12
ID: 3
Name: PARK
Day: 2025-03-12
Java
복사