1. Hal脹 Y脹kama Takip Otomasyonu R-5
Sistem Analizi ve Tasar脹m Dersi Bitirme Projesi
RECEP GLL
108104020
2. Ana Pencere
Ana penceremin
g旦r端n端m端nde bir
deiiklik yaparak son
gelen hal脹lar脹 JList
kullanarak listeledim.
Bu hem pencereye
g旦rsellik katacak hem
de kullan脹c脹n脹n son
gelen hal脹lar脹 g旦rmesini
salayacakt脹r.
Ayr脹ca sol panelde-s脹k kullan脹lanlar men端s端nde t端m m端terileri
listeleyen bir tablo bulunmaktad脹r.
3. Java Look And Feel Nedir?
Farkl脹 pencere g旦r端n端mleri salamak i巽in kullan脹lan bir swing k端t端phanesi
旦gesidir. Javada yaz脹lm脹 bir program脹 ilk 巽al脹t脹rd脹脹m脹z zaman sade bir java
g旦r端n端m端 sunmaktad脹r. Bunu deitirebiliriz. Ben penceremi The Nimbus Look
And Feel 脹 kullanarak deitirdim bunun i巽in u kodlar脹 yazmak yeterlidir
try {
for (LookAndFeelInfo info : UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (Exception e) {
}
Yukar脹daki kodlar脹 ana penceremi oluturduum kod bloklar脹nda
bulunan initPencere(); metoduna yazd脹脹mda b端t端n a巽脹lan
pencerelerin temas脹 deimi oldu.
4. VER聴 TABANI OLUTURMA VE VER聴LER聴 KAYDETME
Veri Taban脹n脹n Oluturulaca脹 Ara Y端z
Veri taban脹m脹 wamp server ara y端z端nde tasarlad脹m. Wamp
server program脹n脹 http://www.wampserver.com/en/ adresinden
indirebiliriz. Bu program脹 bilgisayar脹ma kurduktan sonra varsay脹lan
taray脹c脹mda a巽t脹m. G旦r端n端m端 u ekildedir
6. Wamp Server Hakk脹nda
Verilen adresten indirip kurduktan sonra;
startWampServer iconuna t脹klay脹p 巽al脹t脹rd脹ktan
sonra ara巽 巽ubuumuza simgesi gelir bu simge yeil
ise 巽al脹t脹r脹labilir durumda-d脹r aksi halde program
a巽脹lmaz.
Program脹 a巽mak i巽in icona sa t脹klay脹p php
MyAdmin se巽enei se巽ilir ve yukar脹daki resim gibi bir
pencere a巽脹l脹r.
7. Veri Taban脹 ve Tablo Oluturma
Program a巽脹ld脹ktan sonra veri tabanlar脹 sekmesine t脹klan脹r. Buradan
oluturaca脹m脹z veri taban脹n脹n ad脹 yaz脹l脹p kaydedilir bir veri taban脹 oluturulmutur.
Buradan utf8_turkish se巽ilerse T端rk巽e karakterleri de destekler
8. Tablo Oluturma
Tablo i巽inse; Oluturulan veri taban脹na t脹klan脹r ve tablo sekmesine
t脹klan脹r ve oluturulacak tablo ka巽 s端tundan oluacaksa s端tun say脹s脹 ve tablo
ad脹 yaz脹l脹r sonra kaydedilir.
9. Tablo Oluturma
Kar脹m脹za aa脹daki gibi bir tablo oluturma penceresi a巽脹l脹r. Burada s端tun
isimleri yaz脹l脹r ve karakter se巽imleri yap脹l脹r. Birincil anahtar se巽imi i巽in 聴NDEX a巽脹l脹r
penceresinden PR聴MARY se巽ilir. Artan s脹ralama i巽in A_I se巽enei tikli olmas脹
gerekir. Bu b旦l端me kullan脹c脹 veri girii yapamaz otomatik artan say脹 s脹ralamas脹
vard脹r.
10. Veri Taban脹na Kay脹t Ekleme
Oluturduumuz veri taban脹 ile balant脹 kurabilmek i巽in Mysql
Connector.jar dosyas脹n脹 tan脹tmak gerekir bu konnekt旦r端
http://www.mysql.com/products/connector/ adresinden indirebiliriz
13. Veri Taban脹na Kay脹t Ekleme
A巽脹lan pencereden Add External Jars... t脹klan脹r. A巽脹lan
pencereden konnekt旦r se巽ilir ve tamam butonuna t脹klan脹r. Mysql
Konnekt旦r tan脹t脹lm脹t脹r.
14. Veri Taban脹na Kay脹t Ekleme
Oluturulan haliyikamatakip veri taban脹nda m端teriler tablosu
oluturulduktan sonra; Eclipse ara y端z端 tekrar a巽脹larak bir dataBase paketi
ve i巽erisinde ayr脹 bir s脹n脹f oluturdum.
Bu s脹n脹f i巽erisinde veri taban脹na balanmak i巽in balat脹 Stringleri
oluturmak gerekir bu da u ekilde dir.
private final String yol = "jdbc:mysql://localhost/haliyikamatakip";
private final String kullaniciAdi = "root";
private final String sifre = "";
Alt脹 巽izili olan kod b端t端n端 veri taban脹na balanaca脹 veri
taban脹 adresini i巽ermektedir.
16. Veri Taban脹na Kay脹t Ekleme
M端teriyi eklemek i巽inse tamam butonuna t脹klad脹脹m脹zda
kaydetmesi i巽in
17. Veri Taban脹na Kay脹t Ekleme
okButton.addActionListener(new ActionListener()
public void actionPerformed(ActionEvent arg0) {
MysqlJdbcBaglantisiYap veriTabani = new MysqlJdbcBaglantisiYap();
MusteriDomain yeniKisi = new MusteriDomain();
yeniKisi.setAdi(adiField.getText());
yeniKisi.setIkinciAdi(ikinciAdiField.getText());
yeniKisi.setSoyadi(soyadiField.getText());
yeniKisi.setAdresi(adresiField.getText());
yeniKisi.setTelefonu(telefonuField.getText());
yeniKisi.setIkinciTelefonu(ikinciTelefonuField.getText());
veriTabani.yeniKayit(yeniKisi);
}
});
18. Veri Taban脹ndan Veri a脹rma G旦sterme
Veri taban脹na eklenen verileri bulabilmek i巽in aa脹daki pencere tasarlanm脹t脹r.
Textfielda girilen verinin veri
taban脹nda arat脹l脹p listede
g旦r端lmesini salayan kodlar u
ekildedir.
19. Veri Taban脹ndan Veri a脹rma G旦sterme
final JTextField bulField = new JTextField(40);
final JList musterilerList = new JList();
JScrollPane musteriPane = new JScrollPane(musterilerList);
Yukar脹daki kodlar ile men端 旦geleri oluturulur.
bulField.addKeyListener(new KeyListener() {
public void keyTyped(KeyEvent arg0) {
}
public void keyReleased(KeyEvent arg0) {
MysqlJdbcBaglantisiYap veriTabani = new
MysqlJdbcBaglantisiYap();
List<MusteriDomain> bulunanlarListesi =
veriTabani.musteriBul(bulField.getText());
musterilerList.setListData(bulunanlarListesi.toArray());
}
public void keyPressed(KeyEvent arg0) {
}
});
20. Veri Taban脹ndan Veri a脹rma G旦sterme
Ancak bu kodlar脹n kodlar脹n 巽al脹abilmesi i巽in veri taban脹 s脹n脹f脹m脹za u metodu yazmam脹z
gerekmektedir.
public MusteriDomain kayitBul(String adSoyad) {
MusteriDomain bulunanKisi = null;
Connection baglanti = getConnection();
try {Statement sorgu = baglanti.createStatement();
ResultSet rs = sorgu.executeQuery("SELECT * FROM kisiler WHERE adi LIKE
'"+ adSoyad + "%' OR soyadi LIKE '" + adSoyad + "%' ");
while (rs.next()) {
bulunanKisi = new MusteriDomain();
}
sorgu.close();
baglanti.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return bulunanKisi;
}
21. Yap脹lan Hatalar Ve neriler
al脹t脹脹m脹z projeyi yedek almay脹
unutmamal脹y脹z.
M端mk端nse yedek ilemini birden fazla
ayg脹ta yapmal脹y脹z
22. Veri taban脹 Balant脹 S脹ras脹nda Yap脹lan Hatalar
private final String yol = "jdbc:mysql://localhost/haliyikamatakip";
Balant脹 stringi yukar脹daki gibidir fakat adresi yanl脹
yazd脹脹m脹zda veri taban脹 ile balant脹 kurulmaz program
hataya d端er
23. okButton.addActionListener(new ActionListener()
public void actionPerformed(ActionEvent arg0) {
MysqlJdbcBaglantisiYap veriTabani = new MysqlJdbcBaglantisiYap();
MusteriDomain yeniKisi = new MusteriDomain();
yeniKisi.setAdi(adiField.getText());
yeniKisi.setIkinciAdi(ikinciAdiField.getText());
yeniKisi.setSoyadi(soyadiField.getText());
yeniKisi.setAdresi(adresiField.getText());
yeniKisi.setTelefonu(telefonuField.getText());
yeniKisi.setIkinciTelefonu(ikinciTelefonuField.getText());
veriTabani.yeniKayit(yeniKisi);
}
});
Bu kodlar ise kaydet butonuna t脹klad脹脹m脹zda yap脹lacak ilemi
belirler M端terilerDomain s脹n脹f脹 ile ilikilidir ilem kolayl脹脹 salar fakat
ilikide hata yapmamak i巽in kod yaz脹m脹nda ctrl+space tuunu
kullanmakta fayda vard脹r. Ayr脹ca textFieldlar 脹n isimleri doru yaz脹lmal脹d脹r
yoksa program yine hataya d端er.
24. Veri Taban脹 聴巽in T端rk巽e Karakter Salanmas脹
Veri taban脹m脹z i巽in yol belirtirken yazd脹脹m脹z kodlara bir
ekleme yaparak T端rk巽e karakter uygunluu verebiliriz. Bu da u
ekildedir;
private final String yol =
"jdbc:mysql://localhost/haliyikamatakip?characterEncoding=UTF
8&useUnicode=true";
Alt脹 巽izili olan kod yaz脹lmazsa aa脹daki pencerede ki gibi
bir g旦r端nt端 oluur. Unicode ise t端m karakterleri i巽erisinde bar脹nd脹r脹r
25. Veri Taban脹 聴巽in T端rk巽e Karakter Salanmas脹
Desteklenmeyen karakterler soru iareti ?
ile g旦sterilir bu bir hata deildir.