Pratik Eclipse Kısayolları

Muhtemelen çoğunu biliyorsunuzdur ama ben yine de aralarından bilmedikleriniz çıkabilir diye çok sık kullandığım Eclipse kısayollarını paylaşayım dedim. Kısayollarla aranız henüz iyi değilse kısayolları öğrenmenizi ve kullanmaya çalışmanızı şiddetle tavsiye ederim zira işlerinizi çok kolaylaştırıyorlar.

CTRL + 1

Quick Fix. Bunu öğrendikten sonra bana göre en mübarek Eclipse Kısayolu.

CTRL + SHIFT + R

Open Resource: İsmini yazacağınız kaynak dosyasını açar.

CTRL + SHIFT + T

Open Type: İsmini yazacağınız türü açar.

CTRL + D

Üzerinizde bulunduğunuz satırı siler. Tek tuşla ov şit.

CTRL + E

Açık olan editörleri listeler. Onlarca sınıfa aynı anda göz atıyorsanız sınıflar arasında hızlıca geçiş yapabilirsiniz.

CTRL + I

Girintilemeyi düzeltir.

CTRL + M

Maximize / Unmaximize. Bulunduğunuz alanı genişletir, genişletilmiş halde ise küçültür.

CTRL + Delete / Ctrl + Backspace

İmlecin sağındaki / solundaki kelimeyi siler. Otomatik tamamlayıcıyı fazla kullanıyorsanız yararlı olabiliyor.

CTRL + L

Numarasını vereceğiniz satıra atlar.

SHIFT + CTRL + UP / SHIFT + CTRL + DOWN

Sonraki / önceki sınıf üyesine sıçrar. Az sayıda metodunuz falan varsa bir metoddan diğer metoda hızlıca geçmek için kullanabilirsiniz. Ben kullanıyorum zira.

ALT + UP / ALT + DOWN

İmlecin o anda bulunduğu satırı ya da seçtiğiniz satırları aşağı yukarı kaydırır. Kod bloklarının yerini kolayca değiştirebilirsiniz. Lazım olduğu zaman çok kullanışlı oluyor.

F3

Tanıma git. İmlecin üzerinde bulunduğu öğenin tanımına gider. Bir niteliğin adının üstünde iseniz niteliğe, bir sınıf adının üstünde iseniz sınıfın kaynak koduna gider.

SHIFT + ALT + J

Sınıf / Metod başlarına Javadoc yorumları ekler.

SHIFT + CTRL + C

Seçili kod bloğunu yorum satırı haline getirir. Daha önce yorum satırı yapılmış kod bloğunu normal hale getirir.

SHIFT + CTRL + O

Import’ları düzenler. Gereksiz import’ları kaldırır. Eklenmesi gereken import’ları ekler. Bazen kullandığınız bir sınıf adı birden fazla paketin altında bulunabilir. Böyle bir durumda SHIFT + CTRL + O dediğinizde size hangisini ekleyeceğinizi de sorar.

SHIFT + CTRL + F

Yazdığınız kodun stilini düzeltir. Yani girintileri, boşlukları, noktanın virgülün vesairenin konumlarını ayarlar (Girinti şu kadar olsun, noktadan sonra boşluk olsun gibi ayarları Preferences’ten yapabilirsiniz).

SHIFT + CTRL + B

İmlecin olduğu satıra breakpoint koyar. Koyulmuş bir breakpointi kaldırır.

CTRL + N

Files > New yoluyla gelen pencereyi açar.

SHIFT + ALT + M

Seçili kod bloğunu yeni bir metod tanımlayıp içerisine yerleştirir.

Bilmemenin değil öğrenmemenin ayıp olduğu Debug kısayolları:

F11

Debug’ı başlatır.

F5 (Step into)

Debug yaparken bir metod tanımında iseniz işletime o çağrının içinden devam eder ve bazı durumlarda metodun içinde neler olup bittiğine bakmanız gerekiyorsa çok yararlı olur.

F6 (Step Over)

Bir sonraki komutu işletir.

F8 (Resume)

Bir sonraki breakpoint’e kadar olan komutları tek seferde işletir.

Ayrıca Windows > Preferences > General > Keys yoluna giderek kısayolları düzenleyebilirsiniz. Örneğin ben ekstradan şu kısayolları da kullanıyorum:

CTRL + SHIFT + N

Yeni sınıf tanımlama penceresi açar (Keys bölümünde New Class seçeneğiyle ayarlanıyor).

CTRL + SHIFT + I

Yeni interface tanımlama penceresi açar (Keys bölümünde New Interface seçeneğiyle ayarlanıyor).

Netbeans için Kısayol Oluşturma

Hepimiz kod yazarken pratikler olsun isteriz.Örneğin java ‘ da System.out.println(“”)yazmak yerine sout yazıp taba basarız.

Bunu kendimiz de yaratabiliriz.Örneğin ben try yazıp tab a bastığımda try{} catch{} finally{} bloklarını getiriyorum.

Tools->Options-> Editor ->Code Templates -> Language:Java ->New

İyi çalışmalar.

Java ile Dosya Açma

Java ile dosya açmak çok basit.2 satır koddan ibaret.Bunun için Swing’in JOptionPane componentini kullanacağız.

swing’i eklemek için

import javax.swing.JOptionPane;

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package openfile;

import java.io.IOException;
import javax.swing.JOptionPane;
/**
*
* @author umitunal
*/
public class OpenFile {
public static void main(String[] args) {
try{
Runtime.getRuntime().exec(“notepad C:/sda/text.txt”);

}
catch(Exception e)
{
JOptionPane.showMessageDialog(null, e);
}
finally{}
}
}

Örnek Web Service

Web servislerini kısa bir şekilde “ SOAP “ adlı yazımda açıklamıştım.Bu yazıda  ise örnek bir web service sınıfı nasıl yazılır bundan bahsedeceğim.

  • javax.jws.WebService ya da  javax.jws.WebServiceProvider annotationlarından birini kullanmalıdır.
  • public erişim denetleyicisine sahip olmalıdır.
  • static ya da final tanımlanmamalıdır.
  • Sınıf içerisinde dışarıdan çağrılacak iş yapan metotların javax.jws.WebMethod annotation’ını kullanması gerekir.
  • Yine bu metotların JAXB uyumlu parametreleri ve dönüş tipleri olması gerekir.
  • Sınıf abstract olmamalıdır ve public default constructor’ı olmalıdır.
  • finallize metodu olmamalıdır.

package tr.gov.eba.webservice;

import javax.jws.WebService;
import javax.jws.WebMethod;
import javax.jws.WebParam;

/**
*
* @author umitunal
*/
@WebService(serviceName = “WebServ”)
public class WebServ {

@WebMethod(operationName = “hello”)
public String hello(@WebParam(name = “name”) String txt) {
return “Hello ” + txt + ” !”;
}

@WebMethod(operationName = “operationHelloiki”)
public String operationHelloiki(@WebParam(name=”text”)String txt) {

return “Hello”+txt+”Salak!”;
}
}

 

operationHelloiki’yi Web Service sağ click “Add Operation ” Diyerek ekliyoruz.

webservice1

Sunucu üzerinde çalıştırıyoruz. Methodlarımıza bir şey yazarak tıkladığımız zaman ise ;

webservice2

böyle bir sonuç ekranı ile karşılaşıyoruz.

 

İyi çalışmalar.

ORM Nedir ?

ORM(Object Relational Mapping ) Nedir?

ORM, object oriented dillerdeki nesnelerin, ilişkisel (relational) veritabanlarındaki kayıtlarla eşlenmesi (mapping) işlemidir.

Veritabanındaki tablolarımızı objelere dönüştüren ,tabloları classlara,satırları objelere dönüştüren objeler üzerinden veritabanımıza delete,read  gibi işlemlerimizi yapmamızı sağlayan nesne odaklı (object oriented) dillerdeki nesnelerin, ilişkisel veritabanlarındaki (relational databases) kayıtlara nasıl karşılık geldiğini yürüten bir teknolojidir.

ORM’ler için piyasada belli başlı tools’lar vardır.Bunlardan biri JAVA için geliştirilmiş olan Hibernate’dir.

Hibernate;

2001 yılında Gavin King tarafından yazıldı ve şu an yazılım yönetimi JBoss şirketi tarafından yapılmaktadır.Tamamen open source’dur ve Java sektöründe en çok kullanılan ORM aracıdır. JPA (Java Persistence Api) teknolojisidir.

JPA’yı açıklayacak olursak ;

Persistence araçlarını sizlerin veritabanlarına nesne kaydetmenizi sağlayan araçlar olduğunu düşünün. Hepsi de birbirinden farklı olan araçlar. Kullanımları da tamamen birbirinden farklı. Hepsinin nasıl kullanıldığını öğrenmek son derece zor ve uğraştırıcı. İşte bu durumda ara kademeye hepsini nasıl kullanabileceğini bilen bir eleman alıyorsunuz. Siz sadece bu elemana git şu aracı kullanarak şu veritabanına şu veriyi kaydet diyorsunuz, o da gidip yapıyor. Geri kalanı da sizi ilgilendirmiyor.

Kısa bir örnek kod göstercek olursak ;

tabloOlustur.java ve  JPAtabloCont.java diye sınıflarımız olduğunu düşünürsek tablo.java’dan tablo oluşturmak için bir obje oluştururuz.

 

tabloOlustur tablo1=new tablo();

tablo1.ad=”Ümit “;

tablo1.soyad=”Ünal”;

 

diğer class’ımızda da entity  objesi oluşturuyoruz

JPAtabloCont entity = new JPAtabloCont();

entity.save(tablo1);

save metoduyla tablo1′e verilerimizi 2 satır kod ile kaydetmiş olduk.

Java’nın sunduğu kolaylıklar ,teknolojiler tadından yenmiyor.

JavaServerFaces Error

Eclipse’de JavaServerFaces kullanmak istediğinizde projenizde,JavaServerFaces 2.1 ‘ i seçtiğiniz zaman faces-config.xml hata veriyor.Bu hatayı henüz çözebilmiş değilim nedenini bilen varsa yorum olarak düşerse çok sevinirim.

JavaServerFaces 2.1 yerine Configuration seçeneğinden Modify’a tıkladığımız zaman 1.1 ‘ i seçerek devam edebilirsiniz.

 

 

SERVLET CRUD iSLEMLERi

Netbans’ten örnek bir JAVA Wep Application oluşturup, java package’larımızı oluşturuyoruz.Projenin anlaşılabilir olması açısından her şey düzen içerisinde olmalı.Yazılımda marjinal olmak bence iyi değildir, uyum sağlamak daha iyidir bana göre.

Java Packagelarımızın içine yeni bir servlet açıyoruz ve kodlamaya başlıyoruz.

PreparedStatement, java standart kütüphanesindeki sınıflardan biridir. gönderilecek parametre değişken bir şeyse, o parametrenin olacağı yere, sql cümlesinde, soru işareti konur. ardından setint, setstring gibi metotlar ile bu soru işaretlerinin yerine hangi değişkenin değerinin geleceği gösterilir. metin içeren sql cümlelerinde ‘ işaretinin azizliğine uğramak gelenekselliştiğinden, preparedstatement buna da çare olmuştur.SQL Injection ‘ a karşı koruma sağlar yani.Güvenilirdir.

Kodlarımızı try {} catch(){} finally{} bloklarına yazıyoruz.Çünkü try{} bloğunda bir hata olduğu zaman catch bloğuna bir null pointer exception koyarak exception fırlattırarak bu hatayı kullanıcıya hissettirmeden sadece biz görerek hatayı yakalayabiliriz.Onun için projelerde Exception kullanmak olmazsa olmazlar arasındadır.

Servlette CRUD işlemlerinde “insert,update,delete “işlemi yaptırmak için “pst.executeUpdate();” ” select” işlemi yaptırmak için “pst.executeQuery();” kullanıyoruz.Geri kalan kod parçacıklarını yorum satırı şeklinde açıkladım zaten.

SERVLET CRUD iSLEMLERi

 

 

Servlet kodlaması için , Netbeans’imizi açıyoruz.

File menüsünden Java Web uygulamamızı oluşturuyoruz.Artık bi java web projesine hazırız.

Servlet oluşturmak için bir tane servlet sınıfı oluşturmamız lazım.Servletimizi ekledikten sonra

import java.io.IOException;

import java.io.PrintWriter;

import javax.servlet.ServletException;

import javax.servlet.annotation.WebServlet;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse; kütüphaneleri gelcektir.

Servlet kodumuzu “try{} catch(){} finally{}” bloklarının içine yazacağız.Ama önce aldığımız veritabanına bağlanmak için JDBC Resource ve JDBC Connection Poollarımızı açmamız lazım.

Önce JDBC Connection Pool açarız New diyip.Sonra tüm propertyleri silip user , password, setcharacterEncoding,url ayarlarımızı yaptıktan sonra Resources kısmında ilişkilendirip connection pool’umuzu orda da aynı propertyleri ekliyoruzDatabase’imizin user’ı root password’u ne koyduysak o ,  setCharacterEncoding’i UTF-8 ,url olarak  da jdbc://localhost diye başlayıp giden url’yi veriyoruz onu IDE’den paste edebilirsiniz ,url’yi hep unuturum :). Projelerinizin database’ne log basmaması için şimdilik localhost’ta çalışmasınızı öneririm.

Database olarak ben Mysql ‘ i tercih ediyorum. MySql indirmek için .

Mysql’i kurduktan sonra Mysql’i register yapıp kendi veritabanımı yaratıyorum veritabanımda şekillendirmek için veritabanımın içine sql sorguları yazıyorum

CREATE DATABASE IF NOT EXISTS dbase;

USE dbase;

 

DROP TABLE IF EXISTS `person`;
CREATE TABLE `person` (
`id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
`Ad` VARCHAR(45) NOT NULL,
`Soyad` VARCHAR(45) NOT NULL,
`Yas` INT(10) UNSIGNED NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;

               Burda dbase adında bir Mysql veritabanı oluşturup bu veritabanının içinde person adlı bir tablo oluşturdum ve tablonun içinde olması gerekenleri de özellikleriyle birlikte yerleştirdim.

SERVLET NEDİR?

   Servlet’ler web sunucları üzerinde çalışan JAVA application’larıdır.Web serverlar üzerinde dynamic içerik üretmek için tasarlanan bu uygulamalar, JAVA Enterprise Edition teknolojileri arasında önemli bir yere sahiptir.

  İnternet’in popülerleşmesi ve iş uygulamalarının resmin içine daha fazla girmeye başlaması ile birlikte kompleks iş kurallarına sahip kişiselleştirilebilen ve dynamic içerik üretebilen web applicationlarına ihtiyaç doğdu.

Dynamic Web Applicationlar’ı kullanmak için CGI gibi ek programlar çözümü getirilmiştir.CGI’lar Dynamic kaynak için yapılan istekleri web sunucu üzerine kurularak alınan isteğin cevabını yerine getirerek sunucuya göndermektedir.Ancak CGI’ların dezavantajı yüksek trafiği kaldıramıyorlar.Bunun için Java Servlet Konteynerları gibi bir çözüm üretti.

Servlet Konteynarları, Dynamic Web Application için gerekli koşulları sağlayan istenen cevabı veren konteynarlardır.Biz bir web bileşenini java sınıf dosyaları halinde derler ve servlete yönlendirelebir bir kaynak olarak tanıtırız.