24 Şubat 2020 Pazartesi

JDBC DriverManager.getConnection metodu

getConnection metodu - url + Properties
Örnek ver.

getConnection metodu - url + user + password
Metoda geçilen url'lerin hepsi "jdbc:" ile başlamalı. Bu metodun 3 tane overload edilmiş hali var. İlkinde kullanıcı adı ve şifresi url'nin bir parçası olarak verilir. İkinciside ise url haricinde parametreler olarak geçilir.

Access
64 bit Java uygulamalarında şöyle yaparız. Test.accdb dosyasına bağlanılır.
String url = "jdbc:odbc:DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};DBQ="+
"C:\\Test.accdb;";
Connection con = DriverManager.getConnection (url, "", "");
32 bit Java uygulamalarında şöyle yaparız. Db.mdb dosyasına bağlanılır.
String url = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=Db.mdb";
Connection con = DriverManager.getConnection (url,"","");
Apache Derby
Şöyle yaparız.
String url = "jdbc:derby://localhost:1527/Quet";
String usname = "eenas";
String pass= "2234";
Connection con = DriverManager.getConnection (url, usname, pass);
MySQL
POM'da şu satır olmalıdır.
<!--Mysql-Connector-->
<dependency>
  <groupId>mysql</groupId>
  <artifactId>mysql-connector-java</artifactId>
  <version>5.1.36</version>
</dependency>
Bağlantı string'inin şekli şöyledir.
"jdbc:mysql://hostname:portNo/databaseName";
Şöyle yaparız.
String url = "jdbc:mysql://localhost:3306/mydb";
String usname = "root";
String pass = "mysql";

Connection con =DriverManager.getConnection (url, usname, pass);
İstersek IP de verebiliriz.
String url ="jdbc:mysql://192.168.1.2:3306/mydb";
Bağlantı string'i bazı parametreler alabilir.

MySQL autoReconnect
Şöyle yaparız.
"jdbc:mysql://localhost:3306/mydb?autoReconnect=true"
MySQL connectTimeout
Şöyle yaparız.
"jdbc:mysql://localhost:3306/mydb?connectTimeout=15000"
MySQL characterEncoding
Veritabanı sunucusu UTF-8 değilse bağlantıyı UTF-8 olacak hale getirebiliriz. Şöyle yaparız.
"jdbc:mysql://localhost:3306/mydb?characterEncoding=UTF-8"
MySQL useUnicode + characterEncoding
Şöyle yaparız.
"jdbc:mysql://localhost:3306/mydb?useUnicode=true&characterEncoding=UTF-8"
MySQL useLegacyDatetimeCode ve serverTimezone
Şöyle yaparız.
"jdbc:mysql://localhost/mydb?useLegacyDatetimeCode=false&
serverTimezone=UTC+05:30";
Şöyle yaparız.
"jdbc:mysql://localhost:3306/restapi?useUnicode=true&
useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&
serverTimezone=UTC";
UTC atamak için bağlantıdan sonra şöyle de yapabiliriz.
SET @@global.time_zone = '+00:00';
Oracle Thin Client
thin olmayan sürücüler için tnsnames.ora dosyası kullanılır.

URL için şeklen şöyle yaparız.
Connection con =
DriverManager.getConnection ("jdbc:oracle:thin:@<hostname>:<port num>:<DB name>
                    ,"user","password");
Örnek
Bu örnek tam nasıl çalışıyor bilmiyorum
jdbc:oracle:thin:@(description=(address=(host=myhost)(protocol=tcp)(port=1526))(connect_data=(service_name=FOOSRV)))

Örnek
Şöyle yaparız
String url="jdbc:oracle:thin:@JamesPJ-PC:1521:skypark";
String usname="system";
String pass="tiger";
Connection con = DriverManager.getConnection (url,usname,pass);
Örnek
Şöyle yaparız
Connection con = DriverManager.getConnection(
"jdbc:oracle:thin:@localhost:1521:xe","yy","yy"); 
PostgreSQL
Maven'a şu satırı ekleriz
<dependency>
  <groupId>org.postgresql</groupId>
  <artifactId>postgresql</artifactId>
  <version>42.2.8</version>
</dependency>
Örnek
Şöyle yaparız.
jdbc:postgresql://127.0.0.1:5432/DBNAME?currentSchema=app

Hiç yorum yok:

Yorum Gönder