{"id":31560,"date":"2025-10-11T08:40:53","date_gmt":"2025-10-11T05:40:53","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/?p=31560"},"modified":"2025-10-11T08:40:53","modified_gmt":"2025-10-11T05:40:53","slug":"spring-bootta-cannot-determine-embedded-database-driver-class-for-database-type-none-hatasi-kapsamli-bir-inceleme-ve-cozumler","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/spring-bootta-cannot-determine-embedded-database-driver-class-for-database-type-none-hatasi-kapsamli-bir-inceleme-ve-cozumler\/","title":{"rendered":"Spring Boot&#8217;ta &#8216;Cannot determine embedded database driver class for database type NONE&#8217; Hatas\u0131: Kapsaml\u0131 Bir \u0130nceleme ve \u00c7\u00f6z\u00fcmler"},"content":{"rendered":"<p><body><\/p>\n<h2>Spring Boot&#8217;ta &#8216;Cannot determine embedded database driver class for database type NONE&#8217; Hatas\u0131: Kapsaml\u0131 Bir \u0130nceleme ve \u00c7\u00f6z\u00fcmler<\/h2>\n<p>Spring Boot, modern Java uygulamalar\u0131n\u0131n geli\u015ftirilmesini b\u00fcy\u00fck \u00f6l\u00e7\u00fcde basitle\u015ftiren g\u00fc\u00e7l\u00fc bir \u00e7er\u00e7evedir. Otomatik yap\u0131land\u0131rma, ba\u015flang\u0131\u00e7 ba\u011f\u0131ml\u0131l\u0131klar\u0131 (starters) ve g\u00f6m\u00fcl\u00fc sunucu gibi \u00f6zellikleriyle geli\u015ftiricilerin i\u015f y\u00fck\u00fcn\u00fc azalt\u0131r ve h\u0131zl\u0131 uygulama geli\u015ftirmeye olanak tan\u0131r. Ancak, bu otomatikle\u015fme bazen beklenmedik hatalara yol a\u00e7abilir. \u00d6zellikle veritaban\u0131 entegrasyonu s\u00f6z konusu oldu\u011funda, Spring Boot&#8217;un &#8220;ak\u0131ll\u0131&#8221; davran\u0131\u015flar\u0131 yanl\u0131\u015f anla\u015f\u0131ld\u0131\u011f\u0131nda veya eksik yap\u0131land\u0131r\u0131ld\u0131\u011f\u0131nda \u00e7e\u015fitli sorunlarla kar\u015f\u0131la\u015f\u0131labilir. Bu sorunlardan biri de s\u0131k\u00e7a kar\u015f\u0131la\u015f\u0131lan &#8220;Cannot determine embedded database driver class for database type NONE&#8221; hatas\u0131d\u0131r.<\/p>\n<p>Bu makale, Spring Boot geli\u015ftiricilerinin s\u0131k\u00e7a kar\u015f\u0131la\u015ft\u0131\u011f\u0131 bu hatan\u0131n ne anlama geldi\u011fini, nedenlerini ve bu hatay\u0131 \u00e7\u00f6zmek i\u00e7in at\u0131lmas\u0131 gereken ad\u0131mlar\u0131 kapsaml\u0131 bir \u015fekilde inceleyecektir. Hatay\u0131 anlamak, Spring Boot&#8217;un otomatik yap\u0131land\u0131rma mekanizmalar\u0131n\u0131 daha iyi kavraman\u0131za ve uygulamalar\u0131n\u0131z\u0131 daha sa\u011flam bir \u015fekilde geli\u015ftirmenize yard\u0131mc\u0131 olacakt\u0131r. \u0130ster g\u00f6m\u00fcl\u00fc bir veritaban\u0131 kullanmay\u0131 hedefliyor olun, ister harici bir veritaban\u0131na ba\u011flanmak isteyin, ya da uygulaman\u0131z\u0131n hi\u00e7bir veritaban\u0131na ihtiyac\u0131 olmas\u0131n, bu hatan\u0131n temelinde yatan nedenleri ve \u00e7\u00f6z\u00fcm yollar\u0131n\u0131 bilmek, geli\u015ftirme s\u00fcrecinizi h\u0131zland\u0131racakt\u0131r.<\/p>\n<h3>Hatay\u0131 Anlamak: &#8216;Cannot determine embedded database driver class for database type NONE&#8217;<\/h3>\n<p>Bu hata mesaj\u0131, Spring Boot uygulaman\u0131z\u0131n ba\u015flang\u0131\u00e7 a\u015famas\u0131nda, veritaban\u0131 yap\u0131land\u0131rmas\u0131yla ilgili bir problemle kar\u015f\u0131la\u015ft\u0131\u011f\u0131n\u0131 g\u00f6sterir. Mesaj\u0131 par\u00e7alara ay\u0131rarak ne anlama geldi\u011fini daha iyi anlayabiliriz:<\/p>\n<h4>&#8216;Cannot determine embedded database driver class&#8217; Nedir?<\/h4>\n<p>Spring Boot, s\u0131n\u0131f yolunda (classpath) belirli ba\u011f\u0131ml\u0131l\u0131klar buldu\u011funda, uygulaman\u0131n bir veritaban\u0131na ihtiya\u00e7 duydu\u011funu varsayar ve otomatik olarak bir <code>DataSource<\/code> (veri kayna\u011f\u0131) yap\u0131land\u0131rmaya \u00e7al\u0131\u015f\u0131r. E\u011fer <code>spring-boot-starter-data-jpa<\/code> veya <code>spring-boot-starter-jdbc<\/code> gibi veritaban\u0131 ile ilgili ba\u015flang\u0131\u00e7 ba\u011f\u0131ml\u0131l\u0131klar\u0131 projenizde mevcutsa, Spring Boot varsay\u0131lan olarak g\u00f6m\u00fcl\u00fc bir veritaban\u0131 (embedded database) kullanmaya \u00e7al\u0131\u015f\u0131r. G\u00f6m\u00fcl\u00fc veritabanlar\u0131, uygulaman\u0131n kendisiyle birlikte \u00e7al\u0131\u015fan, harici bir sunucuya ihtiya\u00e7 duymayan hafif veritabanlar\u0131d\u0131r (\u00f6rne\u011fin H2, HSQLDB, Apache Derby). &#8220;Cannot determine embedded database driver class&#8221; ifadesi, Spring Boot&#8217;un bu g\u00f6m\u00fcl\u00fc veritabanlar\u0131ndan birinin s\u00fcr\u00fcc\u00fcs\u00fcn\u00fc (driver) s\u0131n\u0131f yolunda bulamad\u0131\u011f\u0131n\u0131 belirtir. Yani, hangi g\u00f6m\u00fcl\u00fc veritaban\u0131n\u0131 kullanmak istedi\u011finizi veya kullanman\u0131z gerekti\u011fini tespit edememi\u015ftir.<\/p>\n<h4>&#8216;for database type NONE&#8217; Ne Anlama Geliyor?<\/h4>\n<p>Bu k\u0131s\u0131m, Spring Boot&#8217;un g\u00f6m\u00fcl\u00fc veritaban\u0131 t\u00fcr\u00fcn\u00fc belirleme \u00e7abalar\u0131n\u0131n ba\u015far\u0131s\u0131z oldu\u011funu a\u00e7\u0131k\u00e7a ifade eder. Spring Boot, s\u0131n\u0131f yolunu tarayarak H2, HSQLDB veya Derby gibi bilinen g\u00f6m\u00fcl\u00fc veritabanlar\u0131n\u0131n JAR dosyalar\u0131n\u0131 arar. E\u011fer bu JAR dosyalar\u0131ndan hi\u00e7birini bulamazsa, hangi &#8220;database type&#8221; (veritaban\u0131 t\u00fcr\u00fc) i\u00e7in s\u00fcr\u00fcc\u00fc arayaca\u011f\u0131n\u0131 bilemez ve bu durumu &#8220;NONE&#8221; olarak raporlar. Bu da genellikle, ya bir g\u00f6m\u00fcl\u00fc veritaban\u0131 ba\u011f\u0131ml\u0131l\u0131\u011f\u0131n\u0131n eksik oldu\u011fu ya da Spring Boot&#8217;un bir veritaban\u0131 bekledi\u011fi halde hi\u00e7bir veritaban\u0131n\u0131n do\u011fru \u015fekilde yap\u0131land\u0131r\u0131lmad\u0131\u011f\u0131 anlam\u0131na gelir.<\/p>\n<h4>Bu Hata Ne Zaman Ortaya \u00c7\u0131kar?<\/h4>\n<p>Bu hata genellikle a\u015fa\u011f\u0131daki senaryolarda ortaya \u00e7\u0131kar:<br \/>\n*   <strong>Uygulama Ba\u015flang\u0131c\u0131nda:<\/strong> Spring Boot uygulamas\u0131 ba\u015flat\u0131l\u0131rken, <code>ApplicationContext<\/code> olu\u015fturulurken veritaban\u0131 otomatik yap\u0131land\u0131rma a\u015famas\u0131nda meydana gelir.<br \/>\n*   <strong>Veritaban\u0131 Ba\u011f\u0131ml\u0131l\u0131klar\u0131n\u0131n Varl\u0131\u011f\u0131:<\/strong> <code>spring-boot-starter-data-jpa<\/code> veya <code>spring-boot-starter-jdbc<\/code> gibi veritaban\u0131 ile ilgili ba\u015flang\u0131\u00e7 ba\u011f\u0131ml\u0131l\u0131klar\u0131 <code>pom.xml<\/code> (Maven) veya <code>build.gradle<\/code> (Gradle) dosyan\u0131zda bulundu\u011funda. Bu ba\u011f\u0131ml\u0131l\u0131klar, Spring Boot&#8217;a bir veritaban\u0131 ba\u011flant\u0131s\u0131na ihtiya\u00e7 duyuldu\u011funu i\u015faret eder.<br \/>\n*   <strong>Eksik Veritaban\u0131 Yap\u0131land\u0131rmas\u0131:<\/strong> Uygulaman\u0131zda ne bir g\u00f6m\u00fcl\u00fc veritaban\u0131 ba\u011f\u0131ml\u0131l\u0131\u011f\u0131 (H2 gibi) ne de harici bir veritaban\u0131 (MySQL, PostgreSQL gibi) i\u00e7in ba\u011flant\u0131 bilgileri (<code>application.properties<\/code> veya <code>application.yml<\/code> i\u00e7inde) tan\u0131mlanmad\u0131\u011f\u0131nda.<\/p>\n<p>K\u0131sacas\u0131, Spring Boot, s\u0131n\u0131f yolunda veritaban\u0131 ile ilgili bir ba\u015flang\u0131\u00e7 ba\u011f\u0131ml\u0131l\u0131\u011f\u0131 g\u00f6rd\u00fc\u011f\u00fcnde bir veritaban\u0131 ba\u011flant\u0131s\u0131 kurmaya \u00e7al\u0131\u015f\u0131r. E\u011fer bu ba\u011flant\u0131 i\u00e7in gerekli olan s\u00fcr\u00fcc\u00fcy\u00fc (g\u00f6m\u00fcl\u00fc veya harici) bulamazsa ve hangi veritaban\u0131 t\u00fcr\u00fcn\u00fcn ama\u00e7land\u0131\u011f\u0131n\u0131 anlayamazsa bu hatay\u0131 f\u0131rlat\u0131r.<\/p>\n<h3>Hatan\u0131n Temel Nedenleri<\/h3>\n<p>&#8220;Cannot determine embedded database driver class for database type NONE&#8221; hatas\u0131n\u0131n birden fazla temel nedeni olabilir. Bu nedenleri anlamak, do\u011fru \u00e7\u00f6z\u00fcm\u00fc bulmak i\u00e7in kritik \u00f6neme sahiptir.<\/p>\n<h4>Eksik Embedded Veritaban\u0131 Ba\u011f\u0131ml\u0131l\u0131\u011f\u0131<\/h4>\n<p>Bu, hatan\u0131n en yayg\u0131n nedenidir. E\u011fer projenizde <code>spring-boot-starter-data-jpa<\/code> veya <code>spring-boot-starter-jdbc<\/code> varsa, Spring Boot varsay\u0131lan olarak bir g\u00f6m\u00fcl\u00fc veritaban\u0131 kullanmaya \u00e7al\u0131\u015f\u0131r. Ancak, H2, HSQLDB veya Apache Derby gibi bir g\u00f6m\u00fcl\u00fc veritaban\u0131n\u0131n ba\u011f\u0131ml\u0131l\u0131\u011f\u0131 (JAR dosyas\u0131) projenizin s\u0131n\u0131f yolunda yoksa, Spring Boot hangi s\u00fcr\u00fcc\u00fcy\u00fc y\u00fckleyece\u011fini bilemez.<\/p>\n<p><strong>\u00d6rnek Senaryo:<\/strong><br \/>\nBir geli\u015ftirici, JPA kullanarak basit bir REST API olu\u015fturmak ister ve <code>spring-boot-starter-data-jpa<\/code> ba\u011f\u0131ml\u0131l\u0131\u011f\u0131n\u0131 ekler. Geli\u015ftirme a\u015famas\u0131nda h\u0131zl\u0131ca aya\u011fa kalkmas\u0131 i\u00e7in g\u00f6m\u00fcl\u00fc bir veritaban\u0131 kullanmay\u0131 planlar ancak <code>h2<\/code> ba\u011f\u0131ml\u0131l\u0131\u011f\u0131n\u0131 eklemeyi unutur. Uygulama ba\u015flat\u0131ld\u0131\u011f\u0131nda, Spring Boot bir veritaban\u0131 bekler, g\u00f6m\u00fcl\u00fc veritaban\u0131 s\u00fcr\u00fcc\u00fclerini arar, hi\u00e7birini bulamaz ve yukar\u0131daki hatay\u0131 f\u0131rlat\u0131r.<\/p>\n<p><strong>Maven <code>pom.xml<\/code>&#8216;de eksik H2 ba\u011f\u0131ml\u0131l\u0131\u011f\u0131 \u00f6rne\u011fi:<\/strong><\/p>\n<pre><code class=\"language-xml\"><dependency>\n    <groupId>org.springframework.boot<\/groupId>\n    <artifactId>spring-boot-starter-data-jpa<\/artifactId>\n<\/dependency>\n<!-- H2 ba\u011f\u0131ml\u0131l\u0131\u011f\u0131 eksik! --><\/code><\/pre>\n<h4>Harici Veritaban\u0131 Yap\u0131land\u0131rmas\u0131n\u0131n Eksikli\u011fi veya Hatal\u0131 Olmas\u0131<\/h4>\n<p>E\u011fer amac\u0131n\u0131z g\u00f6m\u00fcl\u00fc bir veritaban\u0131 kullanmak de\u011fil, MySQL, PostgreSQL, Oracle gibi harici bir veritaban\u0131na ba\u011flanmaksa, bu veritaban\u0131n\u0131n JDBC s\u00fcr\u00fcc\u00fc ba\u011f\u0131ml\u0131l\u0131\u011f\u0131n\u0131 ve ba\u011flant\u0131 yap\u0131land\u0131rmas\u0131n\u0131 do\u011fru bir \u015fekilde sa\u011flaman\u0131z gerekir. E\u011fer harici veritaban\u0131 s\u00fcr\u00fcc\u00fcs\u00fc eksikse veya <code>application.properties<\/code>\/<code>application.yml<\/code> dosyas\u0131ndaki ba\u011flant\u0131 bilgileri yanl\u0131\u015f ya da eksikse, Spring Boot hala bir veritaban\u0131 ba\u011flant\u0131s\u0131 kurmaya \u00e7al\u0131\u015facak ve g\u00f6m\u00fcl\u00fc veritaban\u0131 s\u00fcr\u00fcc\u00fclerini aramaya y\u00f6nelecektir. Bu durumda, e\u011fer bir g\u00f6m\u00fcl\u00fc veritaban\u0131 ba\u011f\u0131ml\u0131l\u0131\u011f\u0131 da yoksa, yine ayn\u0131 hatayla kar\u015f\u0131la\u015f\u0131l\u0131r.<\/p>\n<p><strong>\u00d6rnek Senaryo:<\/strong><br \/>\nBir geli\u015ftirici MySQL kullanmak ister. <code>spring-boot-starter-data-jpa<\/code> ve <code>mysql-connector-java<\/code> ba\u011f\u0131ml\u0131l\u0131klar\u0131n\u0131 ekler, ancak <code>application.properties<\/code> dosyas\u0131na MySQL ba\u011flant\u0131 URL&#8217;sini, kullan\u0131c\u0131 ad\u0131n\u0131 ve \u015fifresini eklemeyi unutur veya yanl\u0131\u015f yazar. Spring Boot, JDBC s\u00fcr\u00fcc\u00fcs\u00fcn\u00fc bulsa bile, ge\u00e7erli bir ba\u011flant\u0131 yap\u0131land\u0131rmas\u0131 olmad\u0131\u011f\u0131 i\u00e7in hala bir veritaban\u0131 belirlemekte zorlan\u0131r ve g\u00f6m\u00fcl\u00fc veritaban\u0131 varsay\u0131m\u0131na geri d\u00f6nebilir, bu da eksik bir g\u00f6m\u00fcl\u00fc veritaban\u0131 s\u00fcr\u00fcc\u00fcs\u00fc durumunda hataya yol a\u00e7ar.<\/p>\n<p><strong>Eksik MySQL yap\u0131land\u0131rmas\u0131 \u00f6rne\u011fi (<code>application.properties<\/code>):<\/strong><\/p>\n<pre><code class=\"language-properties\"># spring.datasource.url=jdbc:mysql:\/\/localhost:3306\/mydb\n<h2>spring.datasource.username=user<\/h2>\n<h2>spring.datasource.password=password<\/h2>\n<h2>spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver<\/h2>\n<h2>Yukar\u0131daki sat\u0131rlar yorum sat\u0131r\u0131 yap\u0131lm\u0131\u015f veya hi\u00e7 eklenmemi\u015fse hata olu\u015fabilir.<\/code><\/pre>\n<\/h2>\n<h4>Yanl\u0131\u015fl\u0131kla Eklenmi\u015f JPA\/JDBC Starter Ba\u011f\u0131ml\u0131l\u0131\u011f\u0131<\/h4>\n<p>Bazen bir uygulama asl\u0131nda hi\u00e7bir veritaban\u0131na ihtiya\u00e7 duymaz. Ancak, <code>spring-boot-starter-data-jpa<\/code> veya <code>spring-boot-starter-jdbc<\/code> ba\u011f\u0131ml\u0131l\u0131\u011f\u0131 yanl\u0131\u015fl\u0131kla veya ba\u015fka bir ba\u011f\u0131ml\u0131l\u0131k arac\u0131l\u0131\u011f\u0131yla ge\u00e7i\u015fli (transitive) olarak projeye dahil edilmi\u015f olabilir. Bu durumda, Spring Boot bir veritaban\u0131 ba\u011flant\u0131s\u0131 kurmaya \u00e7al\u0131\u015f\u0131r. E\u011fer hi\u00e7bir veritaban\u0131 yap\u0131land\u0131r\u0131lmam\u0131\u015fsa, yine ayn\u0131 hatay\u0131 al\u0131rs\u0131n\u0131z, \u00e7\u00fcnk\u00fc Spring Boot bir veritaban\u0131 beklemektedir.<\/p>\n<p><strong>\u00d6rnek Senaryo:<\/strong><br \/>\nBir uygulama sadece basit bir REST servisi sunuyor ve veritaban\u0131 kullanm\u0131yor. Ancak, yanl\u0131\u015fl\u0131kla bir \u00f6nceki projeden kopyalanan <code>pom.xml<\/code> i\u00e7inde <code>spring-boot-starter-data-jpa<\/code> ba\u011f\u0131ml\u0131l\u0131\u011f\u0131 kalm\u0131\u015ft\u0131r. Uygulama ba\u015flat\u0131ld\u0131\u011f\u0131nda, Spring Boot veritaban\u0131 otomatik yap\u0131land\u0131rmas\u0131n\u0131 tetikler, bir veritaban\u0131 bulamaz ve hatay\u0131 f\u0131rlat\u0131r.<\/p>\n<h4>Otomatik Yap\u0131land\u0131rma D\u0131\u015f\u0131 B\u0131rakma (Auto-Configuration Exclusion)<\/h4>\n<p>Daha nadir olsa da, e\u011fer <code>DataSourceAutoConfiguration<\/code> s\u0131n\u0131f\u0131n\u0131 Spring Boot&#8217;un otomatik yap\u0131land\u0131rmas\u0131ndan manuel olarak d\u0131\u015flad\u0131ysan\u0131z (<code>@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})<\/code>), ancak hala veritaban\u0131 ile ilgili ba\u011f\u0131ml\u0131l\u0131klar projenizde mevcutsa ve ba\u015fka bir <code>DataSource<\/code> bean&#8217;i tan\u0131mlamad\u0131ysan\u0131z, Spring Boot veritaban\u0131 s\u00fcr\u00fcc\u00fcs\u00fcn\u00fc belirleyememe hatas\u0131 verebilir. Bu durum genellikle daha karma\u015f\u0131k veya \u00f6zel yap\u0131land\u0131rmalar gerektiren senaryolarda ortaya \u00e7\u0131kar ve dikkatli olunmas\u0131 gerekir.<\/p>\n<p>Bu nedenleri g\u00f6z \u00f6n\u00fcnde bulundurarak, hatan\u0131n \u00e7\u00f6z\u00fcm\u00fcne y\u00f6nelik ad\u0131mlar\u0131 belirlemek \u00e7ok daha kolay olacakt\u0131r. Temel olarak, Spring Boot&#8217;a ne t\u00fcr bir veritaban\u0131 kullanmak istedi\u011finizi a\u00e7\u0131k\u00e7a belirtmeniz veya hi\u00e7 veritaban\u0131 kullanmayacaksan\u0131z bunu ona bildirmeniz gerekmektedir.<\/p>\n<h3>Hatan\u0131n \u00c7\u00f6z\u00fcmleri<\/h3>\n<p>&#8220;Cannot determine embedded database driver class for database type NONE&#8221; hatas\u0131n\u0131 \u00e7\u00f6zmek i\u00e7in \u00fc\u00e7 ana yakla\u015f\u0131m vard\u0131r, bunlar uygulaman\u0131z\u0131n veritaban\u0131 ihtiyac\u0131na g\u00f6re de\u011fi\u015fir: g\u00f6m\u00fcl\u00fc veritaban\u0131 kullanmak, harici bir veritaban\u0131 kullanmak veya hi\u00e7bir veritaban\u0131 kullanmamak.<\/p>\n<h4>1. Embedded Veritaban\u0131 Kullanmak \u0130stiyorsan\u0131z<\/h4>\n<p>E\u011fer geli\u015ftirme, test veya basit prototipler i\u00e7in H2, HSQLDB veya Apache Derby gibi g\u00f6m\u00fcl\u00fc bir veritaban\u0131 kullanmak istiyorsan\u0131z, yapman\u0131z gereken tek \u015fey ilgili veritaban\u0131n\u0131n ba\u011f\u0131ml\u0131l\u0131\u011f\u0131n\u0131 projenize eklemektir. Spring Boot, s\u0131n\u0131f yolunda bu ba\u011f\u0131ml\u0131l\u0131\u011f\u0131 g\u00f6rd\u00fc\u011f\u00fcnde otomatik olarak bir <code>DataSource<\/code> yap\u0131land\u0131racakt\u0131r. H2, pop\u00fclerli\u011fi ve web konsolu sayesinde s\u0131kl\u0131kla tercih edilir.<\/p>\n<p><strong>H2 Veritaban\u0131 i\u00e7in Maven <code>pom.xml<\/code>&#8216;e Ekleme:<\/strong><\/p>\n<pre><code class=\"language-xml\"><dependency>\n    <groupId>com.h2database<\/groupId>\n    <artifactId>h2<\/artifactId>\n    <scope>runtime<\/scope>\n<\/dependency><\/code><\/pre>\n<p>*   <strong><code><scope>runtime<\/scope><\/code>:<\/strong> Bu, H2 veritaban\u0131n\u0131n sadece \u00e7al\u0131\u015fma zaman\u0131nda (runtime) gerekli oldu\u011funu ve derleme zaman\u0131nda (compile time) veya test zaman\u0131nda (test time) gerekli olmad\u0131\u011f\u0131n\u0131 belirtir. JDBC s\u00fcr\u00fcc\u00fcleri i\u00e7in yayg\u0131n bir kullan\u0131md\u0131r.<br \/>\n*   <strong>HSQLDB veya Apache Derby i\u00e7in:<\/strong> Benzer \u015fekilde, HSQLDB veya Derby kullanmak isterseniz, ilgili ba\u011f\u0131ml\u0131l\u0131klar\u0131 eklemeniz yeterlidir:<br \/>\n    *   <strong>HSQLDB:<\/strong><\/p>\n<pre><code class=\"language-xml\"><dependency>\n            <groupId>org.hsqldb<\/groupId>\n            <artifactId>hsqldb<\/artifactId>\n            <scope>runtime<\/scope>\n        <\/dependency><\/code><\/pre>\n<p>    *   <strong>Apache Derby:<\/strong><\/p>\n<pre><code class=\"language-xml\"><dependency>\n            <groupId>org.apache.derby<\/groupId>\n            <artifactId>derby<\/artifactId>\n            <scope>runtime<\/scope>\n        <\/dependency><\/code><\/pre>\n<p>Bu ba\u011f\u0131ml\u0131l\u0131klardan birini ekledikten sonra, Spring Boot uygulaman\u0131z\u0131 yeniden ba\u015flatt\u0131\u011f\u0131n\u0131zda hatan\u0131n \u00e7\u00f6z\u00fcld\u00fc\u011f\u00fcn\u00fc g\u00f6receksiniz. Spring Boot, H2&#8217;yi buldu\u011funda otomatik olarak bir veri kayna\u011f\u0131 olu\u015fturur ve hatta H2&#8217;nin web konsolunu etkinle\u015ftirebilirsiniz (<code>spring.h2.console.enabled=true<\/code> ile).<\/p>\n<h4>2. Harici Bir Veritaban\u0131 Kullanmak \u0130stiyorsan\u0131z<\/h4>\n<p>E\u011fer uygulaman\u0131z MySQL, PostgreSQL, Oracle, SQL Server gibi harici bir veritaban\u0131na ba\u011flanacaksa, iki temel \u015feyi do\u011fru bir \u015fekilde yap\u0131land\u0131rman\u0131z gerekir:<\/p>\n<p>*   <strong>JDBC S\u00fcr\u00fcc\u00fc Ba\u011f\u0131ml\u0131l\u0131\u011f\u0131:<\/strong> Se\u00e7ti\u011finiz harici veritaban\u0131n\u0131n JDBC s\u00fcr\u00fcc\u00fcs\u00fcn\u00fc projenizin ba\u011f\u0131ml\u0131l\u0131klar\u0131na eklemelisiniz.<br \/>\n*   <strong>Veritaban\u0131 Ba\u011flant\u0131 \u00d6zellikleri:<\/strong> <code>application.properties<\/code> veya <code>application.yml<\/code> dosyas\u0131nda veritaban\u0131 ba\u011flant\u0131 bilgilerini (URL, kullan\u0131c\u0131 ad\u0131, \u015fifre vb.) belirtmelisiniz.<\/p>\n<p><strong>\u00d6rnek: MySQL Veritaban\u0131 Kullan\u0131m\u0131<\/strong><\/p>\n<p>1.  <strong>MySQL JDBC S\u00fcr\u00fcc\u00fc Ba\u011f\u0131ml\u0131l\u0131\u011f\u0131n\u0131 Ekleme (Maven <code>pom.xml<\/code>):<\/strong><\/p>\n<pre><code class=\"language-xml\"><dependency>\n        <groupId>mysql<\/groupId>\n        <artifactId>mysql-connector-java<\/artifactId>\n        <scope>runtime<\/scope>\n    <\/dependency><\/code><\/pre>\n<p>    *   <strong>Not:<\/strong> Spring Boot&#8217;un yeni versiyonlar\u0131nda <code>mysql-connector-java<\/code> yerine <code>mysql-connector-j<\/code> kullan\u0131labilir ve versiyon Spring Boot parent taraf\u0131ndan y\u00f6netilebilir.<\/p>\n<p>2.  <strong>Veritaban\u0131 Ba\u011flant\u0131 \u00d6zelliklerini Yap\u0131land\u0131rma (<code>application.properties<\/code>):<\/strong><\/p>\n<pre><code class=\"language-properties\">spring.datasource.url=jdbc:mysql:\/\/localhost:3306\/your_database_name?useSSL=false&serverTimezone=UTC\n    spring.datasource.username=your_username\n    spring.datasource.password=your_password\n    spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver\n    \n    # JPA\/Hibernate ayarlar\u0131 (iste\u011fe ba\u011fl\u0131, ancak genellikle kullan\u0131l\u0131r)\n    spring.jpa.hibernate.ddl-auto=update\n    spring.jpa.show-sql=true\n    spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL8Dialect<\/code><\/pre>\n<p>    *   <code>spring.datasource.url<\/code>: Veritaban\u0131n\u0131n ba\u011flant\u0131 URL&#8217;si. Port numaras\u0131 ve veritaban\u0131 ad\u0131n\u0131 do\u011fru girdi\u011finizden emin olun. <code>useSSL=false<\/code> ve <code>serverTimezone=UTC<\/code> gibi parametreler MySQL&#8217;in belirli versiyonlar\u0131nda gerekli olabilir.<br \/>\n    *   <code>spring.datasource.username<\/code> ve <code>spring.datasource.password<\/code>: Veritaban\u0131 kimlik bilgileri.<br \/>\n    *   <code>spring.datasource.driver-class-name<\/code>: Kullan\u0131lan JDBC s\u00fcr\u00fcc\u00fcs\u00fcn\u00fcn tam s\u0131n\u0131f ad\u0131. MySQL i\u00e7in genellikle <code>com.mysql.cj.jdbc.Driver<\/code> veya daha eski versiyonlar i\u00e7in <code>com.mysql.jdbc.Driver<\/code>&#8216;d\u0131r.<\/p>\n<p><strong>\u00d6rnek: PostgreSQL Veritaban\u0131 Kullan\u0131m\u0131<\/strong><\/p>\n<p>1.  <strong>PostgreSQL JDBC S\u00fcr\u00fcc\u00fc Ba\u011f\u0131ml\u0131l\u0131\u011f\u0131n\u0131 Ekleme (Maven <code>pom.xml<\/code>):<\/strong><\/p>\n<pre><code class=\"language-xml\"><dependency>\n        <groupId>org.postgresql<\/groupId>\n        <artifactId>postgresql<\/artifactId>\n        <scope>runtime<\/scope>\n    <\/dependency><\/code><\/pre>\n<p>2.  <strong>Veritaban\u0131 Ba\u011flant\u0131 \u00d6zelliklerini Yap\u0131land\u0131rma (<code>application.properties<\/code>):<\/strong><\/p>\n<pre><code class=\"language-properties\">spring.datasource.url=jdbc:postgresql:\/\/localhost:5432\/your_database_name\n    spring.datasource.username=your_username\n    spring.datasource.password=your_password\n    spring.datasource.driver-class-name=org.postgresql.Driver\n    \n    # JPA\/Hibernate ayarlar\u0131\n    spring.jpa.hibernate.ddl-auto=update\n    spring.jpa.show-sql=true\n    spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect<\/code><\/pre>\n<p>Bu ad\u0131mlar\u0131 tamamlad\u0131ktan sonra, Spring Boot uygulaman\u0131z belirlenen harici veritaban\u0131na ba\u011flanacakt\u0131r.<\/p>\n<h4>3. Veritaban\u0131 Kullanmak \u0130stemiyorsan\u0131z<\/h4>\n<p>Uygulaman\u0131z\u0131n asl\u0131nda hi\u00e7bir veritaban\u0131na ihtiyac\u0131 yoksa, Spring Boot&#8217;un veritaban\u0131 otomatik yap\u0131land\u0131rmas\u0131n\u0131 devre d\u0131\u015f\u0131 b\u0131rakman\u0131n birka\u00e7 yolu vard\u0131r:<\/p>\n<p>*   <strong>\u0130lgili Starter Ba\u011f\u0131ml\u0131l\u0131klar\u0131n\u0131 Kald\u0131rma:<\/strong> En temiz \u00e7\u00f6z\u00fcm, <code>spring-boot-starter-data-jpa<\/code> ve <code>spring-boot-starter-jdbc<\/code> gibi veritaban\u0131 ile ilgili ba\u015flang\u0131\u00e7 ba\u011f\u0131ml\u0131l\u0131klar\u0131n\u0131 <code>pom.xml<\/code> veya <code>build.gradle<\/code> dosyan\u0131zdan tamamen kald\u0131rmakt\u0131r.<br \/>\n    *   E\u011fer bu ba\u011f\u0131ml\u0131l\u0131klar ba\u015fka bir starter taraf\u0131ndan ge\u00e7i\u015fli olarak ekleniyorsa (\u00f6rne\u011fin, baz\u0131 \u00f6zel starter&#8217;lar <code>spring-boot-starter-jdbc<\/code>&#8216;yi i\u00e7erebilir), bunlar\u0131 d\u0131\u015flaman\u0131z gerekebilir.<\/p>\n<p>    <strong>Maven <code>pom.xml<\/code>&#8216;de Ge\u00e7i\u015fli Ba\u011f\u0131ml\u0131l\u0131\u011f\u0131 D\u0131\u015flama \u00d6rne\u011fi:<\/strong><\/p>\n<pre><code class=\"language-xml\"><dependency>\n        <groupId>org.springframework.boot<\/groupId>\n        <artifactId>spring-boot-starter-web<\/artifactId>\n        <exclusions>\n            <exclusion>\n                <groupId>org.springframework.boot<\/groupId>\n                <artifactId>spring-boot-starter-jdbc<\/artifactId>\n            <\/exclusion>\n        <\/exclusions>\n    <\/dependency><\/code><\/pre>\n<p>    Bu \u00f6rnekte, <code>spring-boot-starter-web<\/code> ba\u011f\u0131ml\u0131l\u0131\u011f\u0131 <code>spring-boot-starter-jdbc<\/code>&#8216;yi i\u00e7eriyorsa, bu \u015fekilde d\u0131\u015flayabilirsiniz. <code>mvn dependency:tree<\/code> komutuyla hangi ba\u011f\u0131ml\u0131l\u0131klar\u0131n geldi\u011fini kontrol edebilirsiniz.<\/p>\n<p>*   <strong>Otomatik Yap\u0131land\u0131rmay\u0131 Manuel Olarak Devre D\u0131\u015f\u0131 B\u0131rakma:<\/strong> E\u011fer ba\u011f\u0131ml\u0131l\u0131klar\u0131 kald\u0131rmak karma\u015f\u0131k veya istenmeyen bir durumsa, <code>DataSourceAutoConfiguration<\/code> s\u0131n\u0131f\u0131n\u0131 ana Spring Boot uygulaman\u0131zda manuel olarak d\u0131\u015flayabilirsiniz.<\/p>\n<p>    <strong>Ana Uygulama S\u0131n\u0131f\u0131nda Otomatik Yap\u0131land\u0131rmay\u0131 D\u0131\u015flama \u00d6rne\u011fi:<\/strong><\/p>\n<pre><code class=\"language-java\">import org.springframework.boot.SpringApplication;\n    import org.springframework.boot.autoconfigure.SpringBootApplication;\n    import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;\n    \n    @SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})\n    public class MyApplication {\n        public static void main(String[] args) {\n            SpringApplication.run(MyApplication.class, args);\n        }\n    }<\/code><\/pre>\n<p>    Bu y\u00f6ntem, Spring Boot&#8217;un <code>DataSource<\/code> bean&#8217;ini otomatik olarak yap\u0131land\u0131rma giri\u015fimini tamamen durdurur. Bu, veritaban\u0131 ba\u011f\u0131ml\u0131l\u0131klar\u0131 hala s\u0131n\u0131f yolunda olsa bile hatay\u0131 \u00f6nleyecektir. Ancak, bu yakla\u015f\u0131m, uygulaman\u0131z\u0131n gelecekte bir veritaban\u0131na ihtiya\u00e7 duymas\u0131 durumunda manuel yap\u0131land\u0131rma gerektirece\u011fi anlam\u0131na gelir. Genellikle, veritaban\u0131 ba\u011f\u0131ml\u0131l\u0131klar\u0131n\u0131 kald\u0131rmak daha temiz bir \u00e7\u00f6z\u00fcmd\u00fcr.<\/p>\n<h4>4. Mevcut Ba\u011f\u0131ml\u0131l\u0131klar\u0131 G\u00f6zden Ge\u00e7irme<\/h4>\n<p>Bazen hatan\u0131n nedenini bulmak zordur \u00e7\u00fcnk\u00fc bir veritaban\u0131 ba\u011f\u0131ml\u0131l\u0131\u011f\u0131, do\u011frudan eklemedi\u011finiz ba\u015fka bir ba\u011f\u0131ml\u0131l\u0131k arac\u0131l\u0131\u011f\u0131yla projeye dahil edilmi\u015f olabilir. Bu durumu tespit etmek i\u00e7in Maven veya Gradle&#8217;\u0131n ba\u011f\u0131ml\u0131l\u0131k a\u011fac\u0131 komutlar\u0131n\u0131 kullanabilirsiniz:<\/p>\n<p>*   <strong>Maven i\u00e7in:<\/strong> Projenizin k\u00f6k dizininde <code>mvn dependency:tree<\/code> komutunu \u00e7al\u0131\u015ft\u0131r\u0131n.<br \/>\n*   <strong>Gradle i\u00e7in:<\/strong> Projenizin k\u00f6k dizininde <code>gradle dependencies<\/code> komutunu \u00e7al\u0131\u015ft\u0131r\u0131n.<\/p>\n<p>Bu komutlar, projenizin t\u00fcm ba\u011f\u0131ml\u0131l\u0131klar\u0131n\u0131 ve bunlar\u0131n nas\u0131l birbirine ba\u011fl\u0131 oldu\u011funu g\u00f6sterir. <code>spring-boot-starter-jdbc<\/code> veya <code>spring-boot-starter-data-jpa<\/code> gibi veritaban\u0131 ile ilgili ba\u011f\u0131ml\u0131l\u0131klar\u0131 aray\u0131n ve nereden geldiklerini tespit edin. Bu sayede, istenmeyen ba\u011f\u0131ml\u0131l\u0131klar\u0131 d\u0131\u015flamak veya do\u011fru veritaban\u0131 yap\u0131land\u0131rmas\u0131n\u0131 eklemek i\u00e7in daha bilin\u00e7li ad\u0131mlar atabilirsiniz.<\/p>\n<h3>En \u0130yi Uygulamalar ve Ek Hususlar<\/h3>\n<p>Hata \u00e7\u00f6z\u00fcmlerinin \u00f6tesinde, Spring Boot veritaban\u0131 entegrasyonuyla \u00e7al\u0131\u015f\u0131rken dikkate al\u0131nmas\u0131 gereken baz\u0131 en iyi uygulamalar ve ek hususlar bulunmaktad\u0131r.<\/p>\n<h4>Profil Tabanl\u0131 Yap\u0131land\u0131rma<\/h4>\n<p>Ger\u00e7ek d\u00fcnya uygulamalar\u0131nda, farkl\u0131 ortamlar (geli\u015ftirme, test, \u00fcretim) i\u00e7in farkl\u0131 veritaban\u0131 yap\u0131land\u0131rmalar\u0131na ihtiya\u00e7 duyulur. Spring Boot&#8217;un profil \u00f6zelli\u011fi, bu t\u00fcr senaryolar i\u00e7in idealdir. \u00d6rne\u011fin, geli\u015ftirme ortam\u0131nda H2 gibi g\u00f6m\u00fcl\u00fc bir veritaban\u0131 kullan\u0131rken, \u00fcretim ortam\u0131nda MySQL veya PostgreSQL gibi harici bir veritaban\u0131 kullanabilirsiniz.<\/p>\n<p>*   <code>application.properties<\/code> (varsay\u0131lan veya \u00fcretim i\u00e7in)<br \/>\n*   <code>application-dev.properties<\/code> (geli\u015ftirme ortam\u0131 i\u00e7in)<\/p>\n<p><strong>\u00d6rnek <code>application-dev.properties<\/code> (H2 i\u00e7in):<\/strong><\/p>\n<pre><code class=\"language-properties\">spring.profiles.active=dev\nspring.datasource.url=jdbc:h2:mem:testdb\nspring.datasource.driver-class-name=org.h2.Driver\nspring.datasource.username=sa\nspring.datasource.password=\nspring.h2.console.enabled=true\nspring.jpa.hibernate.ddl-auto=update<\/code><\/pre>\n<p><strong>\u00d6rnek <code>application-prod.properties<\/code> (MySQL i\u00e7in):<\/strong><\/p>\n<pre><code class=\"language-properties\">spring.profiles.active=prod\nspring.datasource.url=jdbc:mysql:\/\/prod-db-server:3306\/prod_db?useSSL=false&serverTimezone=UTC\nspring.datasource.username=prod_user\nspring.datasource.password=prod_password\nspring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver\nspring.jpa.hibernate.ddl-auto=validate # \u00dcretimde 'update' kullanmaktan ka\u00e7\u0131n\u0131n<\/code><\/pre>\n<p>Uygulamay\u0131 \u00e7al\u0131\u015ft\u0131r\u0131rken <code>spring.profiles.active=dev<\/code> veya <code>spring.profiles.active=prod<\/code> gibi JVM arg\u00fcmanlar\u0131 veya ortam de\u011fi\u015fkenleri ile hangi profilin etkinle\u015ftirilece\u011fini belirleyebilirsiniz.<\/p>\n<h4>Veritaban\u0131 S\u00fcr\u00fcm Y\u00f6netimi (Database Migration Tools)<\/h4>\n<p>Uygulaman\u0131z\u0131n veritaban\u0131 \u015femas\u0131 zamanla de\u011fi\u015fecektir. \u00dcretim ortamlar\u0131nda <code>spring.jpa.hibernate.ddl-auto=update<\/code> kullanmak riskli olabilir, \u00e7\u00fcnk\u00fc otomatik \u015fema g\u00fcncellemeleri veri kayb\u0131na yol a\u00e7abilir. Bu nedenle, Flyway veya Liquibase gibi veritaban\u0131 ge\u00e7i\u015f (migration) ara\u00e7lar\u0131 kullanmak en iyi uygulamad\u0131r. Bu ara\u00e7lar, veritaban\u0131 \u015femas\u0131ndaki de\u011fi\u015fiklikleri s\u00fcr\u00fcm kontrol\u00fc alt\u0131nda tutman\u0131za ve kontroll\u00fc bir \u015fekilde uygulaman\u0131za olanak tan\u0131r.<\/p>\n<p>*   <strong>Flyway:<\/strong> SQL tabanl\u0131 ge\u00e7i\u015fler i\u00e7in pop\u00fclerdir.<br \/>\n*   <strong>Liquibase:<\/strong> XML, YAML, JSON veya SQL tabanl\u0131 ge\u00e7i\u015fler sunar.<\/p>\n<p>Bu ara\u00e7lar\u0131 Spring Boot ile entegre etmek olduk\u00e7a kolayd\u0131r ve \u00fcretim ortamlar\u0131nda veritaban\u0131 y\u00f6netimi i\u00e7in olmazsa olmazlard\u0131r.<\/p>\n<h4>Ba\u011f\u0131ml\u0131l\u0131k Kapsamlar\u0131 (Dependency Scopes)<\/h4>\n<p>JDBC s\u00fcr\u00fcc\u00fcleri gibi ba\u011f\u0131ml\u0131l\u0131klar i\u00e7in <code>runtime<\/code> kapsam\u0131n\u0131 kullanmak yayg\u0131n bir uygulamad\u0131r. Bu, ba\u011f\u0131ml\u0131l\u0131\u011f\u0131n sadece uygulaman\u0131n \u00e7al\u0131\u015fma zaman\u0131nda (JVM \u00fczerinde \u00e7al\u0131\u015f\u0131rken) gerekli oldu\u011funu, ancak derleme zaman\u0131nda (kaynak kodunu derlerken) veya test zaman\u0131nda (birim testleri \u00e7al\u0131\u015ft\u0131r\u0131rken) gerekli olmad\u0131\u011f\u0131n\u0131 belirtir. Bu, da\u011f\u0131t\u0131labilir JAR\/WAR boyutunu optimize etmeye yard\u0131mc\u0131 olabilir ve ba\u011f\u0131ml\u0131l\u0131k \u00e7ak\u0131\u015fmalar\u0131n\u0131 azaltabilir.<\/p>\n<h4>Otomatik Yap\u0131land\u0131rma Mekanizmas\u0131<\/h4>\n<p>Spring Boot&#8217;un otomatik yap\u0131land\u0131rma mekanizmas\u0131n\u0131 anlamak, bu t\u00fcr hatalarla kar\u015f\u0131la\u015ft\u0131\u011f\u0131n\u0131zda sorun giderme s\u00fcrecini h\u0131zland\u0131r\u0131r. Spring Boot, s\u0131n\u0131f yolunuzdaki JAR dosyalar\u0131na, tan\u0131mlad\u0131\u011f\u0131n\u0131z bean&#8217;lere ve <code>application.properties<\/code> dosyas\u0131ndaki \u00f6zelliklere bakarak uygulaman\u0131z i\u00e7in varsay\u0131lan yap\u0131land\u0131rmalar\u0131 belirler. <code>DataSourceAutoConfiguration<\/code> gibi s\u0131n\u0131flar, <code>@ConditionalOnClass<\/code>, <code>@ConditionalOnMissingBean<\/code>, <code>@ConditionalOnProperty<\/code> gibi ko\u015fullu anotasyonlar kullanarak ne zaman etkinle\u015ftirileceklerini veya devre d\u0131\u015f\u0131 b\u0131rak\u0131lacaklar\u0131n\u0131 belirler. &#8220;Cannot determine embedded database driver class for database type NONE&#8221; hatas\u0131, asl\u0131nda bu ko\u015fullu mant\u0131\u011f\u0131n bir sonucudur: Spring Boot bir <code>DataSource<\/code> bekler, ancak belirli ko\u015fullar (s\u0131n\u0131f yolunda bir s\u00fcr\u00fcc\u00fc olmamas\u0131) kar\u015f\u0131lanmad\u0131\u011f\u0131 i\u00e7in ne yapaca\u011f\u0131n\u0131 bilemez.<\/p>\n<h3>Sonu\u00e7<\/h3>\n<p>&#8220;Spring Boot &#8211; Cannot determine embedded database driver class for database type NONE&#8221; hatas\u0131, Spring Boot geli\u015ftiricilerinin s\u0131k\u00e7a kar\u015f\u0131la\u015ft\u0131\u011f\u0131 ancak temelinde olduk\u00e7a basit nedenlere dayanan bir sorundur. Bu hata, genellikle Spring Boot&#8217;un veritaban\u0131 otomatik yap\u0131land\u0131rmas\u0131n\u0131n, uygulaman\u0131n ger\u00e7ek veritaban\u0131 ihtiyac\u0131yla veya sa\u011flanan ba\u011f\u0131ml\u0131l\u0131k ve yap\u0131land\u0131rmalarla uyumsuzluk g\u00f6stermesi durumunda ortaya \u00e7\u0131kar.<\/p>\n<p>\u00d6zetle, bu hatay\u0131 \u00e7\u00f6zmek i\u00e7in at\u0131lacak ad\u0131mlar, uygulaman\u0131z\u0131n veritaban\u0131 stratejisine ba\u011fl\u0131d\u0131r:<br \/>\n1.  <strong>E\u011fer g\u00f6m\u00fcl\u00fc bir veritaban\u0131 kullanmak istiyorsan\u0131z:<\/strong> Projenize uygun g\u00f6m\u00fcl\u00fc veritaban\u0131 (H2, HSQLDB, Derby) ba\u011f\u0131ml\u0131l\u0131\u011f\u0131n\u0131 ekleyin.<br \/>\n2.  <strong>E\u011fer harici bir veritaban\u0131 kullanmak istiyorsan\u0131z:<\/strong> Se\u00e7ti\u011finiz harici veritaban\u0131n\u0131n (MySQL, PostgreSQL vb.) JDBC s\u00fcr\u00fcc\u00fc ba\u011f\u0131ml\u0131l\u0131\u011f\u0131n\u0131 ekleyin ve <code>application.properties<\/code> veya <code>application.yml<\/code> dosyas\u0131nda do\u011fru ba\u011flant\u0131 \u00f6zelliklerini yap\u0131land\u0131r\u0131n.<br \/>\n3.  <strong>E\u011fer hi\u00e7bir veritaban\u0131 kullanmak istemiyorsan\u0131z:<\/strong> <code>spring-boot-starter-data-jpa<\/code> veya <code>spring-boot-starter-jdbc<\/code> gibi veritaban\u0131 ile ilgili ba\u011f\u0131ml\u0131l\u0131klar\u0131 projenizden kald\u0131r\u0131n veya <code>DataSourceAutoConfiguration<\/code>&#8216;\u0131 manuel olarak d\u0131\u015flay\u0131n.<\/p>\n<p>Bu makalede sunulan bilgiler ve \u00e7\u00f6z\u00fcm yollar\u0131, Spring Boot uygulamalar\u0131n\u0131zda bu yayg\u0131n hatay\u0131 h\u0131zl\u0131 ve etkili bir \u015fekilde gidermenize yard\u0131mc\u0131 olacakt\u0131r. Spring Boot&#8217;un otomatik yap\u0131land\u0131rma mant\u0131\u011f\u0131n\u0131 anlamak, sadece bu hatay\u0131 \u00e7\u00f6zmekle kalmayacak, ayn\u0131 zamanda gelecekte kar\u015f\u0131la\u015fabilece\u011finiz benzer sorunlara kar\u015f\u0131 da sizi donatacakt\u0131r. Do\u011fru ba\u011f\u0131ml\u0131l\u0131klar\u0131 ve yap\u0131land\u0131rmalar\u0131 sa\u011flamak, sorunsuz bir geli\u015ftirme deneyimi i\u00e7in anahtard\u0131r.<\/body><\/p>\n","protected":false},"excerpt":{"rendered":"Spring Boot&#8217;ta &#8216;Cannot determine embedded database driver class for database type NONE&#8217; Hatas\u0131: Kapsaml\u0131 Bir \u0130nceleme ve \u00c7\u00f6z\u00fcmler\nSpring Boot,","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_subscribe_form":"","csco_page_contact_form":"","footnotes":""},"categories":[644],"tags":[],"class_list":{"0":"post-31560","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-postgresql","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Spring Boot&#039;ta &#039;Cannot determine embedded database driver class for database type NONE&#039; Hatas\u0131: Kapsaml\u0131 Bir \u0130nceleme ve \u00c7\u00f6z\u00fcmler - Kodlar\u0131n Gizemli D\u00fcnyas\u0131<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihsoysal.com\/blog\/spring-bootta-cannot-determine-embedded-database-driver-class-for-database-type-none-hatasi-kapsamli-bir-inceleme-ve-cozumler\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Spring Boot&#039;ta &#039;Cannot determine embedded database driver class for database type NONE&#039; Hatas\u0131: Kapsaml\u0131 Bir \u0130nceleme ve \u00c7\u00f6z\u00fcmler\" \/>\n<meta property=\"og:description\" content=\"Spring Boot&#039;ta &#039;Cannot determine embedded database driver class for database type NONE&#039; Hatas\u0131: Kapsaml\u0131 Bir \u0130nceleme ve \u00c7\u00f6z\u00fcmler Spring Boot,\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/spring-bootta-cannot-determine-embedded-database-driver-class-for-database-type-none-hatasi-kapsamli-bir-inceleme-ve-cozumler\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-10-11T05:40:53+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"17 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/spring-bootta-cannot-determine-embedded-database-driver-class-for-database-type-none-hatasi-kapsamli-bir-inceleme-ve-cozumler\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/spring-bootta-cannot-determine-embedded-database-driver-class-for-database-type-none-hatasi-kapsamli-bir-inceleme-ve-cozumler\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Spring Boot&#8217;ta &#8216;Cannot determine embedded database driver class for database type NONE&#8217; Hatas\u0131: Kapsaml\u0131 Bir \u0130nceleme ve \u00c7\u00f6z\u00fcmler\",\"datePublished\":\"2025-10-11T05:40:53+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/spring-bootta-cannot-determine-embedded-database-driver-class-for-database-type-none-hatasi-kapsamli-bir-inceleme-ve-cozumler\/\"},\"wordCount\":3037,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"articleSection\":[\"PostgreSQL\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/spring-bootta-cannot-determine-embedded-database-driver-class-for-database-type-none-hatasi-kapsamli-bir-inceleme-ve-cozumler\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/spring-bootta-cannot-determine-embedded-database-driver-class-for-database-type-none-hatasi-kapsamli-bir-inceleme-ve-cozumler\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/spring-bootta-cannot-determine-embedded-database-driver-class-for-database-type-none-hatasi-kapsamli-bir-inceleme-ve-cozumler\/\",\"name\":\"Spring Boot'ta 'Cannot determine embedded database driver class for database type NONE' Hatas\u0131: Kapsaml\u0131 Bir \u0130nceleme ve \u00c7\u00f6z\u00fcmler - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-10-11T05:40:53+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/spring-bootta-cannot-determine-embedded-database-driver-class-for-database-type-none-hatasi-kapsamli-bir-inceleme-ve-cozumler\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/spring-bootta-cannot-determine-embedded-database-driver-class-for-database-type-none-hatasi-kapsamli-bir-inceleme-ve-cozumler\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/spring-bootta-cannot-determine-embedded-database-driver-class-for-database-type-none-hatasi-kapsamli-bir-inceleme-ve-cozumler\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Spring Boot&#8217;ta &#8216;Cannot determine embedded database driver class for database type NONE&#8217; Hatas\u0131: Kapsaml\u0131 Bir \u0130nceleme ve \u00c7\u00f6z\u00fcmler\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/\",\"name\":\"Fatihsoysal.com\",\"description\":\"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim\",\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\",\"name\":\"Fatih Soysal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"contentUrl\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"width\":512,\"height\":512,\"caption\":\"Fatih Soysal\"},\"logo\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Spring Boot'ta 'Cannot determine embedded database driver class for database type NONE' Hatas\u0131: Kapsaml\u0131 Bir \u0130nceleme ve \u00c7\u00f6z\u00fcmler - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihsoysal.com\/blog\/spring-bootta-cannot-determine-embedded-database-driver-class-for-database-type-none-hatasi-kapsamli-bir-inceleme-ve-cozumler\/","og_locale":"tr_TR","og_type":"article","og_title":"Spring Boot'ta 'Cannot determine embedded database driver class for database type NONE' Hatas\u0131: Kapsaml\u0131 Bir \u0130nceleme ve \u00c7\u00f6z\u00fcmler","og_description":"Spring Boot'ta 'Cannot determine embedded database driver class for database type NONE' Hatas\u0131: Kapsaml\u0131 Bir \u0130nceleme ve \u00c7\u00f6z\u00fcmler Spring Boot,","og_url":"https:\/\/fatihsoysal.com\/blog\/spring-bootta-cannot-determine-embedded-database-driver-class-for-database-type-none-hatasi-kapsamli-bir-inceleme-ve-cozumler\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-10-11T05:40:53+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"17 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/spring-bootta-cannot-determine-embedded-database-driver-class-for-database-type-none-hatasi-kapsamli-bir-inceleme-ve-cozumler\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/spring-bootta-cannot-determine-embedded-database-driver-class-for-database-type-none-hatasi-kapsamli-bir-inceleme-ve-cozumler\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Spring Boot&#8217;ta &#8216;Cannot determine embedded database driver class for database type NONE&#8217; Hatas\u0131: Kapsaml\u0131 Bir \u0130nceleme ve \u00c7\u00f6z\u00fcmler","datePublished":"2025-10-11T05:40:53+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/spring-bootta-cannot-determine-embedded-database-driver-class-for-database-type-none-hatasi-kapsamli-bir-inceleme-ve-cozumler\/"},"wordCount":3037,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"articleSection":["PostgreSQL"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/spring-bootta-cannot-determine-embedded-database-driver-class-for-database-type-none-hatasi-kapsamli-bir-inceleme-ve-cozumler\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/spring-bootta-cannot-determine-embedded-database-driver-class-for-database-type-none-hatasi-kapsamli-bir-inceleme-ve-cozumler\/","url":"https:\/\/fatihsoysal.com\/blog\/spring-bootta-cannot-determine-embedded-database-driver-class-for-database-type-none-hatasi-kapsamli-bir-inceleme-ve-cozumler\/","name":"Spring Boot'ta 'Cannot determine embedded database driver class for database type NONE' Hatas\u0131: Kapsaml\u0131 Bir \u0130nceleme ve \u00c7\u00f6z\u00fcmler - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-10-11T05:40:53+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/spring-bootta-cannot-determine-embedded-database-driver-class-for-database-type-none-hatasi-kapsamli-bir-inceleme-ve-cozumler\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/spring-bootta-cannot-determine-embedded-database-driver-class-for-database-type-none-hatasi-kapsamli-bir-inceleme-ve-cozumler\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/spring-bootta-cannot-determine-embedded-database-driver-class-for-database-type-none-hatasi-kapsamli-bir-inceleme-ve-cozumler\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Spring Boot&#8217;ta &#8216;Cannot determine embedded database driver class for database type NONE&#8217; Hatas\u0131: Kapsaml\u0131 Bir \u0130nceleme ve \u00c7\u00f6z\u00fcmler"}]},{"@type":"WebSite","@id":"https:\/\/fatihsoysal.com\/blog\/#website","url":"https:\/\/fatihsoysal.com\/blog\/","name":"Fatihsoysal.com","description":"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim","publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1","name":"Fatih Soysal","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","contentUrl":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","width":512,"height":512,"caption":"Fatih Soysal"},"logo":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/"},"description":"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.","url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/"}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/31560","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/comments?post=31560"}],"version-history":[{"count":1,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/31560\/revisions"}],"predecessor-version":[{"id":31561,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/31560\/revisions\/31561"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=31560"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=31560"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=31560"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}