수색…


소개

Java에서 관계형 데이터베이스를 사용하는 API는 JDBC입니다.

이 API는 JDBC 드라이버에 의해 구현됩니다.

이를 사용하려면 드라이버가있는 JAR 파일을 JAVA 클래스 경로에 놓습니다.

이 문서는 JDBC 드라이버를 사용하여 데이터베이스에 연결하는 방법을 보여주는 샘플을 보여줍니다.

비고

JDBC URL

JDBC URL은 다음 형식 중 하나를 취할 수 있습니다.

  • jdbc:postgresql:// host [: port ]/[ database ][ parameters ]

    host 기본값은 localhost , port 는 5432입니다.
    host 가 IPv6 주소 인 경우 대괄호로 묶어야합니다.
    기본 데이터베이스 이름은 연결하는 사용자의 이름과 같습니다.

    페일 오버를 구현하기 위해 여러 host [: port ] 항목을 쉼표로 구분하여 입력 할 수 있습니다.
    연결이 성공할 때까지 순서대로 시도됩니다.

  • jdbc:postgresql: database [ parameters ]

  • jdbc:postgresql:/[ parameters ]

    이 양식은 localhost 대한 연결 용입니다.

parameterskey [= value ] 쌍의 목록입니다 ( ? & 구분됩니다. value 이 누락 된 경우 true 로 간주됩니다.

예 :

jdbc:postgresql://localhost/test?user=fred&password=secret&ssl&sslfactory=org.postgresql.ssl.NonValidatingFactory

참고 문헌

java.sql.DriverManager를 사용하여 연결

이것은 연결하는 가장 간단한 방법입니다.

우선, 드라이버를 java.sql.DriverManager 등록 해, 사용하는 클래스를 인식 할 필요가 있습니다.
이것은 일반적으로 java.lang.Class.forname( <driver class name> ) 하여 드라이버 클래스를로드하여 수행됩니다.

/**
 * Connect to a PostgreSQL database.
 * @param url the JDBC URL to connect to; must start with "jdbc:postgresql:"
 * @param user the username for the connection
 * @param password the password for the connection
 * @return a connection object for the established connection
 * @throws ClassNotFoundException if the driver class cannot be found on the Java class path
 * @throws java.sql.SQLException if the connection to the database fails
 */
private static java.sql.Connection connect(String url, String user, String password)
    throws ClassNotFoundException, java.sql.SQLException
{
    /*
     * Register the PostgreSQL JDBC driver.
     * This may throw a ClassNotFoundException.
     */
    Class.forName("org.postgresql.Driver");
    /*
     * Tell the driver manager to connect to the database specified with the URL.
     * This may throw an SQLException.
     */
    return java.sql.DriverManager.getConnection(url, user, password);
}

그 사용자와 패스워드를 JDBC URL에 포함 할 수도 있습니다.이 경우, getConnection 메소드 호출로 지정할 필요는 없습니다.

java.sql.DriverManager와의 접속과 프로퍼티

URL 또는 별도의 매개 변수에서 사용자 및 암호와 같은 연결 매개 변수 ( 여기 전체 목록 참조 )를 지정하는 대신 java.util.Properties 객체에이를 java.util.Properties 할 수 있습니다.

/**
 * Connect to a PostgreSQL database.
 * @param url the JDBC URL to connect to. Must start with "jdbc:postgresql:"
 * @param user the username for the connection
 * @param password the password for the connection
 * @return a connection object for the established connection
 * @throws ClassNotFoundException if the driver class cannot be found on the Java class path
 * @throws java.sql.SQLException if the connection to the database fails
 */
private static java.sql.Connection connect(String url, String user, String password)
    throws ClassNotFoundException, java.sql.SQLException
{
    /*
     * Register the PostgreSQL JDBC driver.
     * This may throw a ClassNotFoundException.
     */
    Class.forName("org.postgresql.Driver");
    java.util.Properties props = new java.util.Properties();
    props.setProperty("user", user);
    props.setProperty("password", password);
    /* don't use server prepared statements */
    props.setProperty("prepareThreshold", "0");
    /*
     * Tell the driver manager to connect to the database specified with the URL.
     * This may throw an SQLException.
     */
    return java.sql.DriverManager.getConnection(url, props);
}

연결 풀을 사용하여 javax.sql.DataSource와 연결

응용 프로그램 서버 컨테이너에서 JNDI와 함께 javax.sql.DataSource 를 사용하는 것이 일반적입니다.이 컨테이너에서는 이름 아래에 데이터 소스를 등록하고 연결이 필요할 때마다 찾아 봅니다.

다음은 데이터 소스의 작동 방식을 보여주는 코드입니다.

/**
 * Create a data source with connection pool for PostgreSQL connections
 * @param url the JDBC URL to connect to. Must start with "jdbc:postgresql:"
 * @param user the username for the connection
 * @param password the password for the connection
 * @return a data source with the correct properties set
 */
private static javax.sql.DataSource createDataSource(String url, String user, String password)
{
    /* use a data source with connection pooling */
    org.postgresql.ds.PGPoolingDataSource ds = new org.postgresql.ds.PGPoolingDataSource();
    ds.setUrl(url);
    ds.setUser(user);
    ds.setPassword(password);
    /* the connection pool will have 10 to 20 connections */
    ds.setInitialConnections(10);
    ds.setMaxConnections(20);
    /* use SSL connections without checking server certificate */
    ds.setSslMode("require");
    ds.setSslfactory("org.postgresql.ssl.NonValidatingFactory");

    return ds;
}

이 함수를 호출하여 데이터 소스를 만들면 다음과 같이 사용할 수 있습니다.

/* get a connection from the connection pool */
java.sql.Connection conn = ds.getConnection();

/* do some work */

/* hand the connection back to the pool - it will not be closed */
conn.close();


Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow