Java MySQL veritabanına bağlanmak
Nasıl Java ile MySQL veritabanına bağlanmak mı?
CEVAP
İşte MySQL gerekli OLANLARI yüklemek ve kullanmak için nasıl: adım açıklaması bir adım
52 ** MySQL sunucusu yüklemek. Yap işte her zamanki gibi. Değiştirdik her bağlantı noktası numarasını hatırlıyorum. Varsayılan olarak
3306
.Download sürücü BULUNMAKTAYDI ve sınıf koymakZİP dosyası içeren KAVANOZ sınıf dosya koy ayıklayın. Satıcıya özgü OLANLARI (sürücüJDBC API bu somut bir uygulama(tutorial here)..
Eğer Eclipse ya da Eclipse gibi bir IDE kullanıyorsanız, daha sonra JAR dosyasını ekleyerek sınıf için ekleyebilirsinizKütüphaneiçinYol İnşa Etmekproje özellikleri.
Yapıyorsan "düz vanilya" komutunu, sonra ihtiyacınız belirtmek yolunu JAR dosyası
-cp
-classpath
değişken çalıştırıldığında Java uygulaması.java -cp .;/path/to/mysql-connector.jar com.example.YourClass
.
sadece eklemek içinmevcutcom.example.YourClass
;
bulabilirsiniz, sınıf olarak çok iyi dizin Windows gibi sınıf ayırıcı. Unıx ve klonlar:
kullanılmalıdır.MySQL database oluşturun. Hadi bir veritabanı
javabase
oluşturun. Elbette senin hadi kullan UTF-8 de yani Dünya Hakimiyeti.CREATE DATABASE javabase DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
Java için Create an user 58* erişim. Sadece
root
kullanma çünkü kötü bir uygulama.CREATE USER 'java'@'localhost' IDENTIFIED BY 'password'; GRANT ALL ON javabase.* TO 'java'@'localhost' IDENTIFIED BY 'password';
,
java
Evet kullanıcı adı vepassword
şifre burada.Determine OLANLARI (URL. MySQL veritabanı kullanarak bağlanmak için aşağıdaki sözdiziminde OLANLARI bir URL gerekir Java:
jdbc:mysql://hostname:port/databasename
hostname
MySQL sunucunun bulunduğu makinaya yüklenir. Eğer Java kod çalıştırdığı aynı makinede yüklü, o zaman sadecelocalhost
kullanabilirsiniz. Ayrıca127.0.0.1
gibi bir IP adresi olabilir. Eğer karşılaştığınız sorunları ve Bağlantılocalhost
yerine127.0.0.1
kullanarak çözüldü, o zaman ağ/DNS/config içinde barındıran bir sorun var.port
: TCP MySQL sunucu dinler nerede/IP bağlantı noktası. Bu, varsayılan olarak3306
.databasename
: Veritabanı adı bağlanmak istiyorum.javabase
.
Son URL gibi görünmelidir:
jdbc:mysql://localhost:3306/javabase
Java kullanarak MySQL Test the connection.
main()
bir yöntem ile basit bir Java sınıfı bağlantıyı sınayın.String url = "jdbc:mysql://localhost:3306/javabase"; String username = "java"; String password = "password" System.out.println("Connecting database..."); try (Connection connection = DriverManager.getConnection(url, username, password)) { System.out.println("Database connected!"); } catch (SQLException e) { throw new IllegalStateException("Cannot connect the database!", e); }
EÄŸer sen bir
SQLException: No suitable driver
o zaman demek ki ya yerli mal driver olmadığını autoloaded hiç veya yanlış OLANLARI (URL (yani olmadığını kabul ederek, herhangi bir yüklü sürücüler). Normalde, gerekli OLANLARI 4.0 sürücüsü sadece çalışma zamanı sınıf içinde bırakın ne zaman autoloaded olmalıdır. Bir hariç ve diğer, her zaman elle aşağıdaki gibi yükleyebilirsiniz:System.out.println("Loading driver..."); try { Class.forName("com.mysql.jdbc.Driver"); System.out.println("Driver loaded!"); } catch (ClassNotFoundException e) { throw new IllegalStateException("Cannot find the driver in the classpath!", e); }
newInstance()
çağrısıdırdeğilburada gerekli. Sadece eski ve düzeltmeorg.gjt.mm.mysql.Driver
adamcağız. Explanation here. Bu satırı atarClassNotFoundException
, sonra JAR dosyasını OLANLARI (sürücü sınıf içeren basit bir sınıf olarak yerleştirilmiş değil.Sürücüyü yüklemek için gerekmez unutmayınher seferindeöncebağlanma. Sadece bir kez uygulama başlatma sırasında yeterli.
EÄŸer
SQLException: Connection refused
Connection timed out
veya bir MySQL belirli bir alırsanızCommunicationsException: Communications link failure
, DB hiç erişilebilir değil demektir. Bu aşağıdaki nedenlerden biri veya daha fazlası olabilir:- IP adresi veya URL OLANLARI (adını yanlış.
- OLANLARI (URL, Hostname yerel DNS sunucusu tarafından tanınmıyor.
- Port numarası eksik ya da OLANLARI (URL yanlış.
- DB sunucusu çalışmıyor.
- DB sunucu TCP/IP bağlantılarını kabul etmez.
- DB server bağlantıları yok.
- Java ve DB arasında bir bağlantı, örneğin bir güvenlik duvarı veya proxy engelliyor.
Biri veya diğeri çözmek için aşağıdaki tavsiyeleri uygulayın:
- DoÄŸrulamak ve
ping
ile onları test. - DNS yenileme OLANLARI URL veya IP adresini kullanın.
- MySQL DB
my.cnf
dayalı olun. - DB başlayın.
- Eğer kullanın
--skip-networking option
başlatılırsa olun. - DB yeniden başlatın ve kodu
finally
bağlantıları kapatır buna göre Düzelt. - Ve/veya yapılandırma güvenlik duvarı/proxy güvenlik duvarı/port izin iletmek için devre dışı bırakın.
Connection
kapanış olduğunu unutmayınson dereceönemli. Eğer bağlantıları kapatın ve kısa bir süre içinde bir sürü almak yok eğer doğru değilse, o zaman veritabanı bağlantıları çalıştırabilir ve uygulama kesilebilir. Her zamantry-with-resources
statementConnection
kazanmasıdır. Ya eğer Java 7 Eğer Henüz değil, açıkçatry-finally
blokfinally
kapatın.finally
kapanış sadece bir istisna durumunda da kapalı olsun emin olmak için. Bu daStatement
,PreparedStatement
veResultSet
için geçerlidir.
Bu bağlantı ile ilgili olarak çok uzaktı. here ve temel bir DAO sınıfı yardımıyla bir veritabanı fullworthy Java modeli nesneleri yüklemek saklamak için nasıl daha gelişmiş bir öğretici bulabilirsiniz.
Nasıl Python ile MySQL Veritabanına ba...
Host 'xxx.xx.xxx.' bu MySQL ...
Can't yerel MySQL baÄŸlanmak socke...
Nasıl JavaScript SQL Server veritabanı...
Nasıl tek bir web sayfasında çoklu MyS...