5 Mart 2012 Pazartesi

JAVA SQL SERVER CONNECTION

Merhaba arkadaşlar. Önceki yazılarımda jdbc  ile  Oracle ‘ a bağlanmıştım. Geçenler de bir sözlük uygulaması yapayım dedim. Elimde hazır insertler olduğu için bunu  Sql Server 2008 de bir insert edip daha sonra buraya bağlanıp ,sorgularımı da oradan yapmayı düşündüm. İlk kısmında bir sıkıntı yok. Fakat açıkcasını söylemek gerekirse SqlServer’a bağlanmak Oracle a bağlanmak kadar kolay olmadı benim için. Herşeyden önce şunu belirtmeliyim ki SqlServer a windows authentication ile bağlanmak yerine bir kullanıcı açıp ve var olan DB deki yetkileri bu kullanıcıya da verip buraya bağlanıp buradan sorgularınızı yapmanız gerek. Aksi takdir de windows authentication size sorunlar çıkarabiliyor.
Sql Server ‘ a bağlanmanız için Sql Server Configuration  Manager daki SQL Server Network Configuration da ki Protocols for MSSQLSERVER kısmında ki TCP/IP enable olmalı. Çünkü bu seçenek bize default olarak disable gelmektedir. Bunu enable yaptıktan sonra   TCP/IP yi çift tıklatıp IPAdresess kısmından IPAll daki TCP Port un karşısında ki değer 1433 olmalıdır. Çünkü SQL Server 1433 portundan yayın yapıyor. Tüm bunları yapmazisek derleyici bize  aşağıda ki gibi bir hata verir.
run:
Bağlantı kurulamadı
com.microsoft.sqlserver.jdbc.SQLServerException: The TCP/IP connection to the host localhost, port 1433 has failed. Error: "Connection refused: connect. Verify the connection properties. Make sure that an instance of SQL Server is running on the host and accepting TCP/IP connections at the port. Make sure that TCP connections to the port are not blocked by a firewall.".
            at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(SQLServerException.java:187)
            at com.microsoft.sqlserver.jdbc.SQLServerException.ConvertConnectExceptionToSQLServerException(SQLServerException.java:238)
            at com.microsoft.sqlserver.jdbc.SocketFinder.findSocket(IOBuffer.java:2197)
            at com.microsoft.sqlserver.jdbc.TDSChannel.open(IOBuffer.java:446)
 Tüm bunları yaptıktan sonra son bir adımımız kaldı. Microsoftun sitesinden jdbc için SQL Server driverlarını indirme  kısmı. Hani nasıl oracle da classes12.jar vardı ya burada da sqljdbc4.jar var. Bunu da oracle bağlantısında olduğu gibi ekleyip (add  Jar/Folder) bağlantı için gereken kodları derleyicimize yazalım. Bağlantı için aşağıda ki kodlar yeterli olacaktır.


String connectionurl="jdbc:sqlserver://localhost:1433;"+"databaseName=emre;user=mesutemre;password=as";
        Connection connection=null;
        String driverName="com.microsoft.sqlserver.jdbc.SQLServerDriver";
        try {
            Class.forName(driverName);
            connection=DriverManager.getConnection(connectionurl);
            System.out.println("Bağlantı kuruldu.");
        } catch (Exception e) {
            System.err.println("Bağlantı kurulamadı");
            e.printStackTrace();
        }

databaseName kısmına bağlanacağınız database inizin adını yazın , kullanıcı adı ve şifrenizi girin. İyi çalışmalar…

24 Şubat 2012 Cuma

JAVA DA İŞLEM EHEMMİYETİ İÇİN EVET- HAYIR PENCERESİ

Geçenlerde JDBC uygulaması yaparken programı kullanan kişinin kayıt butonuna bastığında kaydedip kaydetmeyeceğini bir daha sormasını istedim. Yani en basitinden bir Word dokümanı açıp bir şey yazdıktan sonra kapatırken dökümanı kaydedip kaydetmek istemediğimizi sorması gibi bir şey bu dediğim. Neyse ki Java da  JDialog  classı işimi fazlasıyla gördü ve ortaya şöyle bir görüntü çıktı.



Yani anlayacağınız kayıt işleminin yapılıp yapılmayacağı açılan bu pencere de tıklayacağımız butona göre yapılıyor. Hayır dersek kayıt yapmıyorsunuz diye bir uyarı verip evet dersek de belli kontrollerden sonra DB ye şahsı kaydediyor. Neyse lafı fazla uzatmadan kod kısmına geçelim. Bu kodu yazdığınız program da componentin eventine gömeriz.
JOptionPane pane=new JOptionPane(tsicil.getText()+" sicil nolu "+tad.getText()+" "+tsoyad.getText()+" adlı kişiyi kaydetmek istiyor musunuz?");
                Object[] secenkler = new String[] { "Evet", "Hayır" };
                pane.setOptions(secenkler);
                JDialog dialog=pane.createDialog(new JFrame(),"");
                dialog.setVisible(true);
                int sonuc=-1;
                Object object=pane.getValue();
                for (int i = 0; i < secenkler.length; i++) {
                    if(secenkler[i].equals(object))
                    {
                        sonuc=i;
                    }
                }
                if(sonuc==1)
                {
                    JOptionPane.showMessageDialog(null, "Kaydetmek istemiyorsunuz!");
                }


17 Şubat 2012 Cuma

JAVA DA FRAME ICONUNU DEĞİŞTİRMEK

Yaptığımız grafik arayüzlü uygulamalar da (GUI), programın çıktısı hep java iconu ile gelir. Java nın meşhur kahve iconu. Bazen istediğiniz bir resmi icon olarak kullanabilirsiniz. Nitekim Java bize bu fırsatı da vermiş. Aşağıda ki kod ile frame iconunu değiştirebiliriz.


BufferedImage image=null;
       
        try {
            image=ImageIO.read(o.getClass().getResource("/resim/linux.png"));
        } catch (Exception e) {
            e.printStackTrace();
        }
        frame.setIconImage(image);

kod parçasını bizim blog da kullandığımız main metodunun içerisine gömerseniz iconun değişmiş olduğunu sizde görebileceksiniz. İyi çalışmalar...