Java'da Veritabanlarıyla Çalışmak

İçindekiler
Java Çok amaçlı bir dil olarak, elde edebileceğimiz farklı işlevselliklerin yanı sıra, verilerin kalıcılığı ile çalışmamıza da olanak tanır, bunun için farklı motorlarla bağlantı kurabiliriz. veritabanları piyasada var olan.
A Veri tabanı Düz metin dosyasındaki bir anahtar/değer sistemi kadar basit bir şey olabileceği gibi, ilişkisel olmayanlar gibi daha karmaşık ve modern çözümler de olabilir; bu, farklı bağlantı şemaları geliştirmeyi zorunlu bir özellik haline getirir.
JDBC izin veren bir sınıflar kümesidir. Java Veritabanı motorlarıyla bağlantı kurar, bu, sorguların sonuçlarını adlı bir nesnede elde etmemizi sağlar. Sonuç kümesi.
Her motor farklı olduğundan, muhtemelen Sonuç kümesi aldığımız şey ona özeldir, bu nedenle uygulamamızı söz konusu nesne etrafında yapılandırmamız uygun değildir.
Bu sorunu çözmek için a denilen şeyi kullanabiliriz. erişim nesnesifarklı formlarımızı yönetebileceğimiz Sonuç kümesi uygulamanızın programımız içinde uygulanmasını kolaylaştırır ve böylece geliştiricinin daha az sorunu olur.
DAO tasarım deseniNS Veri Erişim Nesnesi veya DAO Bir önceki noktada anlattıklarımızı toplayan bir tasarım kalıbıdır, bu bizim özelliklerine bir erişim sınıfı oluşturmamızı gerektirir. Veri tabanı. Bu işi yapmak için tüm işi yapmalıyız JDBC ve istediğimiz belirli motorla bağlantı kurmamıza izin veren denetleyici, ek olarak, yalnızca farklı bir Veritabanı motoruna geçmemizi zorlaştıracak belirli bileşenlere bağımlılıktan kaçınmak için açıkladığımız mantıksal uygulamayı gerçekleştirmeliyiz.
Bağlantı kurmak için yapmamız gereken ilk şey JDBC bağlantı yapmak istediğimiz motorun hangisi olduğunu belirlemek ve ardından söz konusu bağlantı için gerekli sınıfları almaktır, bu durumda bir bağlantı yapacağız. MySQL, bu motor hafif, ücretsiz ve çok platformludur, bu nedenle her ikisini de kurabiliriz Windows, Linux veya Mac.
Bağlayıcı / J geliştirme ekibi tarafından sunulan sınıflar kümesidir. MySQL, onlarla yapabiliriz JDBC bununla birlikte çalışmak veritabanları ilişkisel, projemize dahil etmek için aşağıdaki adımları izlemeliyiz.
1- Platformumuza karşılık gelen dosyayı da indirmeliyiz. pencereler veya diğerleri için resmi web sitesinden MySQL Aşağıdaki bağlantıda.

BÜYÜT

2- Bu eğitimde Windows altında çalışacağız, bu nedenle örneklerimizde uygulanması için bunu daha kolay olması için çalışma zamanında yapacağız, ancak paketi indirdiğimizde onu bilgisayarımıza yüklemek için kuruyoruz.
3- Şimdi bilgisayarımızda her şeyin doğru çalıştığını test etmeye devam edeceğiz, bunun için küçük bir kod yapacağız, burada olup olmadığını göreceğiz. bağlayıcı / J sistemimize başarıyla yüklendi, bunun için aşağıdaki kodu kullanacağız:
 public class ConnectionTest {public static void main (String [] args) {try {Class c = Class.forName ("com.mysql.jdbc.Driver"); System.out.println ("Yüklenen Sınıf:" + c.getName ()); } yakalama (ClassNotFoundException ex) {System.err.println (ex); }}} 

4- Bu örneği çalıştırmak için bağımlılığı eklememiz gerekiyor, buna sahip olmamız önerilir. .kavanoz dosyamızın aynı yolunda TestConexion.java. Bu kapsamda dosyamızı derlemeye devam edeceğiz, bir konsol açıyoruz ve talimatla javac ve ekleyerek .kavanoz için sınıf yolu komutu ile çalışma zamanında -cp Yapabiliriz, hadi komut satırını görelim:
 javac -cp mysql-connector-java-5.1.34-bin.jar ConnectionTest.java 

5- Son olarak, dosyamızı çalıştırmak için sadece aşağıdaki talimatı uygulamamız gerekiyor:
java -cp mysql-connector-java-5.1.34-bin.jar TestConnection

Konsolumuzda aşağıdaki gibi bir sonuç çıkarsa işlemlerle çalışmaya başlayabiliriz. veritabanları:

BÜYÜT

Atmamız gereken bir sonraki adım, kendimizle etkili bir bağlantı kurmaktır. Veri tabanı, bunun için yerel sunucumuzda en az bir tablo ile bir tane oluşturmalıyız, bu şekilde bazı testler yapabiliriz, işleri kolaylaştırmak için adlı bir Veritabanı oluşturuyoruz. Ölçek ve tabloyu oluşturmak ve bazı test kayıtları eklemek için aşağıdaki komut dosyasını kullanıyoruz, bu, öğreticinin gelişimini hızlandırmak için:

"kullanıcılar" YOKSA TABLO OLUŞTUR (
"id" bigint (20) NOT NULL AUTO_INCREMENT,
`name` varchar (255) NULL DEĞİL,
'tarih' tarih NULL DEĞİL,
"durum" int (11) NULL DEĞİL,
BİRİNCİL ANAHTAR (`id`)
) MOTOR = InnoDB DEFAULT CHARSET = latin1 AUTO_INCREMENT = 3;
"users" (` id`, `name`,` date`, `status`) DEĞERLERİNE EKLE
(1, 'Kullanıcı 1', '2015-01-01', 1),
(2, 'Kullanıcı 2', '2015-01-01', 1);

Şimdi aşağıdaki kodda Java ile bağlantı kurmaya odaklanacağız. Veri tabanı, bunun için bir yakalama bloğunu dene Etkin ve hatasız olduğunu doğrulayacağız, sonra bağlantı kurulduysa bir başarı mesajı yazdıracağız, görelim:
 java.sql.Connection'ı içe aktarın; java.sql.DriverManager'ı içe aktarın; public class ConnectionTest {özel statik final Dize yolu = "jdbc: mysql: // localhost"; private static final String user = "bizim kullanıcımız"; private static final String password = "parolamız"; public static void main (String [] args) {try {Connection con = DriverManager.getConnection (yol, kullanıcı, parola); System.out.println ("Bağlantı başarılı"); } yakalama (İstisna e) {e.printStackTrace (); }}} 

Bu koddan, paketten iki kitaplık almamız gerektiğini görebiliriz. java.sql, Biri Bağlantı Veritabanı ile iletişim kurabilmek için tüm faaliyetleri yönetmekten sorumlu olan ve diğeri ise Aygıt Yöneticisi onunla iletişim kuracağımız yolu sağlamaktan sorumludur. Adımları doğru takip ettiysek, örneğimizi konsolda çalıştırdığımızda aşağıdaki mesajı görmeliyiz:

BÜYÜT

Sorgularımızı test etmeye başlamak için her şeye sahibiz, bunun için birkaç şeye ihtiyacımız olacak, zaten sahip olduğumuz ilk şey, bağlantı kuran nesne. Veri tabanı, o zaman paketleri içe aktarmamız gerekecek Beyan Y Sonuç kümesi ilk önce sorgular gönderebileceğimiz ve daha sonra aynı cevabı alabileceğimiz, sonunda nesneyi gözden geçireceğiz. Sonuç kümesi burada tabloya eklenen verileri göstereceğiz ve programı kapatmadan önce oluşturduğumuz nesnelerin her birini kapatmamız gerekiyor, bu şekilde verilerimizin bütünlüğünü garanti etmiş olacağız. Açıklananları gösteren kodu görelim:
 java.sql.Connection'ı içe aktarın; java.sql.DriverManager'ı içe aktarın; java.sql.ResultSet'i içe aktarın; java.sql.Statement dosyasını içe aktarın; public class ConnectionTest {özel statik final Dize yolu = "jdbc: mysql: // localhost / test"; private static final String user = "bizim kullanıcımız"; private static final String password = "parolamız"; public static void main (String [] args) {try {Connection con = DriverManager.getConnection (yol, kullanıcı, parola); İfade sorgusu = con.createStatement(); System.out.println ("Bağlantı başarılı"); ResultSet sonucu = sorgu.executeQuery ("Kullanıcılardan * SEÇİN"); while (result.next ()) {Dize adı = sonuç.getString ("ad"); Dize tarihi = sonuç.getString ("tarih"); System.out.println ("Ad:" + ad + "Kayıt Tarihi:" + tarih); } sonuç.kapat (); sorgu.kapat(); kapat (); } yakalama (İstisna e) {e.printStackTrace (); }}} 

Özelliğimizde belirtmek önemlidir. rota Değiştirdik ve adını Veri tabanı aramak Ölçek kullanıcı tablomuzu oluşturmamız, dosyamızı derlememiz ve çalıştırmamız gereken yerde, konsolun sonucu aşağıdaki resimde görüldüğü gibi olacaktır:

BÜYÜT

Veritabanına yapılan bağlantı örneğini ve sorguları inceledikten sonra, adlı bir şekil kullanmamız gerektiğini görebiliriz. Açıklamayı Hazırla bu, sorguları tekrar tekrar oluşturmak zorunda kalmadan birden çok kez çalıştırabilmemiz için hazırlanmış sorguları bırakarak işimizi kolaylaştırır, bu dinamiği elde etmek için değişkenler için değiştirmemiz gereken değerleri değiştiririz ve ardından çalıştırdığımızda sorgusuna gerçek değerleri iletiyoruz.
AvantajBunun birkaç avantajı var, ilkinin bir şeyi tekrar etmeden kullanabilmek olduğunu zaten söylemiştik, ancak aynı zamanda güvenlik içindir, çünkü bu, bize bir saldırıyı önlemek için kullanıcı girdisinden gelen değerleri ele almamıza izin verir. Veritabanına ek olarak programımızın okunabilirliğini de kolaylaştırabiliriz.
Aşağıdaki örnekte bir sorgu oluşturacağız. Hazırlanan Açıklama, böylece programımız sırasında birkaç kez kullanılabilir. Ortaya çıkan kodu görelim:
 java.sql.Connection'ı içe aktarın; java.sql.DriverManager'ı içe aktarın; java.sql.ResultSet'i içe aktarın; java.sql.PreparedStatement dosyasını içe aktarın; public class ReadyStatementTest {özel statik final Dize yolu = "jdbc: mysql: // localhost / test"; private static final String user = "bizim kullanıcımız"; private static final String password = "parolamız"; public static void main (String [] args) {try {Connection con = DriverManager.getConnection (yol, kullanıcı, parola); ReadydStatement sorgusu = con.prepareStatement ("SELECT * FROM kullanıcılardan Where id =?;"); System.out.println ("Bağlantı başarılı"); sorgu.setInt (1, 1); ResultSet sonucu = sorgu.executeQuery (); while (result.next ()) {Dize adı = sonuç.getString ("ad"); Dize tarihi = sonuç.getString ("tarih"); System.out.println ("Ad:" + ad + "Kayıt Tarihi:" + tarih); } sonuç.kapat (); sorgu.kapat(); kapat (); } yakalama (İstisna e) {e.printStackTrace (); }}} 

yönteminin kullanıldığını fark ediyoruz. setInt Query nesnesi ile sorgu için gerekli parametreyi geçirebiliriz, bununla onu sorgunun yürütülmesinden ayırabilir, böylece taşınabilirlik ve okuma kolaylığı elde edebiliriz. Bitirmek için programımızı derleyip çalıştırıyoruz:

BÜYÜT

Bununla birlikte çalışmak için seçenekleri gördüğümüz için bu öğreticiyi bitiriyoruz. veritabanları içinde Java Uygulamalarımıza esneklik ve çok yönlülüğü dahil etmemize izin verdikleri için çok ilginçler, en önemli şey, diğer dillerle ilgili deneyimimiz varsa, kesinlikle burada kullanılacak olmasıdır.

Arkadaşlarınızla sayfasını paylaşan sitenin gelişimine yardımcı olacak

wave wave wave wave wave