Подключение Connection

Для соединения с БД необходимо использовать класс Connection пакета java.sql. После установления соединения можно выполнять различные SQL-запросы и получать результаты их обработки сервером. Приложение может открыть одно или несколько соединений с одной или несколькими различными СУБД.

Открытие соединения, getConnection

Стандартный способ установления соединения - это вызов метода getConnection класса DriverManager. Методу getConnection необходимо передать строку URL (Uniform Resource Locator). Стандарт подключения к серверу базы данных позволяет использовать следующие методы getConnection с параметрами:

getConnection(url);
getConnection(url, properties);
getConnection(url, username, password);

При использовании первого варианта, все параметры подключения указываются в url.

В следующей таблице представлен JDBC driver и синтаксис строки URL для подключения к СУБД.

СУБДДрайвер JDBCURL
Oracle oracle.jdbc.OracleDriver jdbc:oracle:oci[OCI_VERSION]:@[HOST_NAME]
Oracle oracle.jdbc.OracleDriver jdbc:oracle:thin:@ [HOST_NAME]:[PORT_NUMBER]:[DATABASE_NAME]
MSSQL com.microsoft.jdbc.sqlserver.SQLServerDriver jdbc:microsoft:sqlserver: //[HOST_NAME]:[PORT_NUMBER]
PostgreSQL org.postgresql.Driver jdbc:postgresql: //[HOST_NAME]:[PORT_NUMBER] /[DATABASE_NAME]
MySQL com.mysql.jdbc.Driver jdbc:mysql://[HOST_NAME]:[PORT_NUMBER] /[DATABASE_NAME]

Подключение к СУБД Oracle, jdbc oracle

К серверу БД Oracle можно подключиться как через тонкий клиент, так и через толстый.

Пример подключения через тонкий клиент:

String host = "localhost";
int    port = 1521       ;
String sid  = "SE"       ;
String user = "SCOTT"    ; 
String pwd  = "TIGER"    ;

try {
    Class.forName("oracle.jdbc.driver.OracleDriver");
} catch (ClassNotFoundException e) {
    System.out.println("Oracle JDBC Driver is not found");
    e.printStackTrace();
	exit (-1);
}
String url = String.format("jdbc:oracle:thin:@%s:%d:%s", host, port, sid);

Connection connection = null;
try {
    connection = DriverManager.getConnection(url, user, pwd);
} catch (SQLException e) {
    System.out.println("Connection Failed : " + e.getMessage());
	exit (-1);
}
if (connection != null) {
	System.out.println("You made it, take control your database now!");
} else {
	System.out.println("Failed to make connection!");
}
connection.close();

При подключении через толстый клиент, host и port не указываются :

String sid  = "SE"       ;
String user = "SCOTT"    ; 
String pwd  = "TIGER"    ;
...
String url = String.format("jdbc:oracle:oci8:@%s", sid);

Connection connection = null;
try {
    connection = DriverManager.getConnection(url, user, pwd);
} catch (SQLException e) {
    System.out.println("Connection Failed : " + e.getMessage());
}
...

Подключение к СУБД MS SQL, jdbc sql

Строка URL-адреса подключения имеет следующий вид:

jdbc:sqlserver://[serverName[\instanceName][:portNumber]][;property=value[;property=value]]

где:

  • jdbc:sqlserver:// - обязательно, подпротокол.
  • serverName - необязательно, адресом сервера, с которым выполняется соединение. Это может быть DNS, IP-адрес, локальный узел или 127.0.0.1 локального компьютера. Имя сервера необходимо указать в коллекции свойств, если оно не указано в URL-адресе соединения.
  • instanceName - необязательно, наименование базы данных сервера, с которым выполняется соединение. Подключение выполняется к базе данных по умолчанию, если не указана другая.
  • portNumber - необязательно, порт, который слушает сервер. Значение по умолчанию — 1433. Если соединение выполняется с портом по умолчанию, то в URL-адресе необязательно указывать порт.

Дополнительные свойства указывается в формате ключ=значение.

Примеры установления соединения с сервером БД

// Подключение к БД по умолчанию на localhost:

jdbc:sqlserver://localhost;user=userName;password=*****;

// Подключение к БД по умолчанию наlocalhost со встроенной проверкой безопасности:

jdbc:sqlserver://localhost;integratedSecurity=true;

// Подключение к именованной БД:

jdbc:sqlserver://localhost;databaseName=AdventureWorks;integratedSecurity=true;

// Подключение к именованной БД с использованием порта по умолчанию:

jdbc:sqlserver://localhost:1433;databaseName=AdventureWorks;integratedSecurity=true;

// Подключение к именованной БД с указанием настраиваемого имени приложения:

jdbc:sqlserver://localhost;databaseName=AdventureWorks;integratedSecurity=true;applicationName=MyApp;

Подключение к СУБД PostgreSQL, jdbc postgresql

Для подключения к серверу БД PostgreSQL необходимо использовать один из следующих URL:

jdbc:postgresql:database

jdbc:postgresql://host/database

jdbc:postgresql://host:port/database

jdbc:postgresql://host:port

host - имя сервера, по умолчанию "localhost".

port - порт, который слушает сервер. По умолчанию используется порт 5432.

database - наименование базы данных. По умолчанию используется база данных postgres.

Примеры jdbc postgresql :

String url1 = "jdbc:postgresql://localhost/test?user=postgres&password=secret&ssl=true";
String url2 = "jdbc:postgresql://localhost/test";

String user = "postgres";
String pwd  = "secret";

Properties props = new Properties ();
props.setProperty("user"    , user );
props.setProperty("password", pwd  );
props.setProperty("ssl"     ,"true");

Connection connection1 = DriverManager.getConnection(url1);
Connection connection2 = DriverManager.getConnection(url2, props);
Connection connection3 = DriverManager.getConnection(url2, user, pwd);

Подключение к СУБД MySQL, jdbc mysql

String driver   = "com.mysql.jdbc.Driver";
String url      = "jdbc:mysql://localhost:3306/";
String dbName   = "...";
String userName = "..."; 
String password = "...";
try {
    Class.forName(driver).newInstance();
	Connection conn = DriverManager.getConnection(url + dbName, userName, password);
	if (conn != null)
		System.out.println ("Приложение подключилось к БД !");
	else
		System.out.println ("Приложение НЕ подключилось к БД ?");

    conn.close();
} catch (Exception e) {
    e.printStackTrace();
}
  Рейтинг@Mail.ru