JDBC를 사용하여 Oracle 데이터베이스에 연결하기 위한 URL 문자열 형식
자바 관련 웹 개발은 처음이라 JDBC가 작동하면 간단한 프로그램을 얻을 수 없을 것 같습니다.저는 기성 Oracle 10g XE와 EEclipse EE IDE를 사용하고 있습니다.지금까지 제가 확인한 책과 웹페이지에서는 데이터베이스 URL이 잘못 작성되었거나 JAR 파일이 누락된 것으로 문제를 좁혔습니다.다음의 에러가 표시됩니다.
java.sql.SQLException:jdbc://127.0.0.1:8080에 적합한 드라이버를 찾을 수 없습니다.
다음 코드를 사용합니다.
import java.sql.*;
public class DatabaseTestOne {
public static void main(String[] args) {
String url = "jdbc:oracle://127.0.0.1:8080";
String username = "HR";
String password = "samplepass";
String sql = "SELECT EMPLOYEE_ID FROM EMPLOYEES WHERE LAST_NAME='King'";
Connection connection;
try {
connection = DriverManager.getConnection(url, username, password);
Statement statement = connection.createStatement();
System.out.println(statement.execute(sql));
connection.close();
} catch (SQLException e) {
System.err.println(e);
}
}
}
데이터베이스 URL의 적절한 형식은 무엇입니까?많이 언급되고 있는데 묘사를 못 찾겠어요.
편집(해상도):
더피모의 대답에 따르면ojdbc14.jar
Oracle 다운로드 사이트에서 이클립스 프로젝트의 참조 라이브러리에 삭제했습니다.그리고 코드 시작을
...
// jdbc:oracle:thin:@<hostname>:<port>:<sid>
String url = "jdbc:oracle:thin:@GalacticAC:1521:xe";
...
그리고 그것은 성공하였다.
이 설정에는 2가지 방법이 있습니다.SID가 있는 경우 다음(이전) 형식을 사용합니다.
jdbc:oracle:thin:@[HOST][:PORT]:SID
Oracle 서비스 이름이 있는 경우 다음(새로 만들기) 형식을 사용합니다.
jdbc:oracle:thin:@//[HOST][:PORT]/SERVICE
출처: 이 OraFAQ 페이지
말한 처럼 "duffymo"를 포함하여 합니다.ojdbc6.jar
자바어
여기 보세요.
URL이 잘못되어 있습니다.다음과 같이 표시됩니다.
url="jdbc:oracle:thin:@localhost:1521:orcl"
드라이버 클래스도 등록하지 않습니다.신드라이버 JAR을 다운로드하여 CLASSPATH에 삽입하고 코드를 이와 같이 만듭니다.
업데이트: "ojdbc14.jar"의 "14"는 JDK 1.4를 나타냅니다.드라이버 버전을 실행 중인 JDK와 일치시켜야 합니다.아마 JDK 5, 6번일 거예요.
url 의 올바른 형식은, 다음의 몇개의 형식입니다.
jdbc:oracle:thin:@<hostName>:<portNumber>:<sid>; (if you have sid)
jdbc:oracle:thin:@//<hostName>:<portNumber>/serviceName; (if you have oracle service name)
그리고 거기에 공간을 두지 마세요.포트 번호로서 1521 을 사용해 보겠습니다.sid(가칭)는 환경 변수(윈도우를 사용하는 경우)에 있는 것과 같아야 합니다.
10g oracle 10g expree Edition oracle 10g expree Edition:
에는 1. 로딩 클래스 사용DriverManager.registerDriver (new oracle.jdbc.OracleDriver());
하려면 2. 데이터베이스 접속용Connection conn = DriverManager.getConnection("jdbc:oracle:thin:username/password@localhost:1521:xe");
Oracle에서 허용하는 유효한 지원 JDBC URL은 다음과 같습니다.
Oracle JDBC)를 합니다.oracle.jdbc.pool.OracleDataSource
String url = "jdbc:oracle:thin:@tcp://my-host:1522/my-service";
OracleDataSource ods = new OracleDataSource();
ods.setUser(userName);
ods.setPassword(password);
ods.setURL(url);
Connection con = ods.getConnection();
오라클 JDBC 드라이버는 다음 URL 형식을 지원합니다.
EZConnect 포맷
19c부터는 URL 끝에 연결 속성을 추가할 수 있습니다.이 구문은 연결 속성의 시작을 나타내며 각 속성 간의 구분자로 "&"를 사용합니다.
구문:
jdbc:oracle:thin:@[[protocol:]//]host1[,host2,host3][:port1][,host4:port2] [/service_name][:server_mode][/instance_name][?connection properties]
예:
- jdbc: 라이선스: Thin:@mydbhost:1521/mydbservice
- jdbc:syslog:thin:@syslog://mydbhost:1521/mydbservice
- jdbc:syslog:thin:@syslog://mydbhost1,mydbhost2:1521/mydbservice
- jdbc:syslog:thin:@syslog://mydbhost1:5521, mydbhost2:1521/mydbservice
- jdbc:syslog:thin:@syslog://mydbhost1:5521/mydbservice:개요
- jdbc:oracle:thin:@mydbhost1:5521/mydbservice?oracle.net.httpsProxyHost=myproxy&oracle.net.httpsProxyPort=80
- jdbc:sys:thin:@tcps://mydbhost1:5521/mydbservice?mydbservice_location=/work/mydbost
- jdbc:oracle:thin:@tcps://mydbhost1:5521/mydbservice?wallet_location=/work/wallet&ssl_server_cert_dn="서버 DN"
TNS URL 형식
이 형식은 연결 옵션을 지정하는 보다 구조화된 방법으로 보다 자세히 설명합니다.
구문:
jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=<protocol>) (HOST=<dbhost>)(PORT=<dbport>)) (CONNECT_DATA=(SERVICE_NAME=<service-name>))
예:
- jdbc:oracle:thin:@(DESCRICTION=(PROTOCOL=(PROTOCL=RESS)(HOST=mydbhost)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=mydbservice))
- jdbc:oracle:thin:@(DESCRIPTION=(LOAD_BALANCE=ON)(ADDRESS=(PROTOCOL=RESS)(HORT=1521)(ADDRESS=HOST=HOST2)(PORT=5221)(DATA))
- jdbc:oracle:thin:@(DESCRICTION=(PROTOCOL=TCPS)(PORT=1522)(HOST=myhost)(CONNECT_DATA=(SERVICE_NAME=dbservicename)(SECURITY=(ssl_server_cert_dn="))CN=testcert.test.com, O=sublic, L=something,ST=state,C=US")
TNS 에일리어스 포맷
tnsnames.ora로 설정된 에일리어스를 사용하려면 다음 형식을 사용합니다.tnsnames.ora 파일의 위치는 TNS_ADMIN 파라미터를 사용하여 설정할 수 있습니다.
구문:
jdbc:oracle:thin:@<alias_name>
예:
- jdbc:oracle:thin:@prod_db?TNS_ADMIN=/work/tns/
- jdbc:oracle:thin:@inst1?TNS_ADMIN=/work/tns/
String host = <host name>
String port = <port>
String service = <service name>
String dbName = <db schema>+"."+service
String url = "jdbc:oracle:thin:@"+host+":"+"port"+"/"+dbName
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
connection = DriverManager.getConnection("jdbc:oracle:thin:@machinename:portnum:schemaname","userid","password");
저는 자바 개발자가 아니기 때문에 유감스럽게도 당신의 코드에 직접 코멘트를 할 수 없습니다만, 접속 문자열의 형태에 관한 Oracle FAQ에서 이것을 발견했습니다.
jdbc:oracle:<drivertype>:<username/password>@<database>
Oracle JDBC FAQ에서 확인
http://www.oracle.com/technetwork/database/enterprise-edition/jdbc-faq-090281.html#05_03
도움이 되었으면 좋겠다
언급URL : https://stackoverflow.com/questions/1054105/url-string-format-for-connecting-to-oracle-database-with-jdbc
'code' 카테고리의 다른 글
리액트를 사용한 예쁜 JSON 인쇄 (0) | 2023.02.12 |
---|---|
내장된 기능을 사용하여 MVC6의 JQuery AJAX를 사용하여 면도기 양식 제출 (0) | 2023.02.12 |
레디스냐, 에캐시냐? (0) | 2023.02.12 |
WooCommerce: 가변 제품을 사용하여 프로그래밍 방식으로 주문 작성 (0) | 2023.02.08 |
ng-repeat 내에서 ng-click 시 숨겨진 div 표시 (0) | 2023.02.08 |