際際滷

際際滷Share a Scribd company logo
GAZ? ?N?VERS?TES?
B?L???M ENST?T?S?
B?L???M S?STEMLER? Y?KSEK L?SANS (UZAK) PROGRAMI

NESNE Y?NEL?ML? PROGRAMLAMA (NYP)
D?NEM PROJES? RAPORU

??RET?M ?YES?

:

Yrd.Do?.Dr.Hacer KARACAN

??RENC?

:

Murat AZ?ML?

?UBE C NO

:

A2 C 108007755
2

???NDEK?LER
1.

G?R??

3

2.

AMA?

3

3.

KAPSAM

3

4.

KAVRAMSAL TASARIM
4.1 S?STEMDEK? AKT?RLER
4.2 S?STEMDEK? BELGELER

5

4.3 USECASE DIAGRAM
5.

4

6

MANTIKSAL TASARIM
5.1 ACTIVITY DIAGRAMS
5.2 CLASS DIAGRAM

9

5.3 DATA MODEL DIAGRAM
6.

7

10

GEL??T?RME
6.1 PROGRAMLAMA D?L? SE??M?

11

6.2 PROGRAMLAMA ARACI SE??M? (IDE)

11

7.

TEST

12

8.

DA?ITIM
8.1 GEREKS?N?MLER
8.2 KURULUM

13

8.3 ?ALI?TIRMA
9.

13

15

PROGRAMIN KULLANILMASI

16

10. KAYNAKLAR
10.1 ELEKTRON?K KAYNAKLAR

20

10.2 BASILI KAYNAKLAR

20

11. PROGRAM KAYNAK KODU VE ACIKLAMALAR

21
3

1.G?R??
?al??anlar? aras?nda fonksiyonel ayr?m yap?larak kurumsalla?m?? veya kurumsalla?ma a?amas?nda olan
orta ?l?ekli sistemler (i?letmeler) i?in tasarlanm?? olan ERP Yaz?l?m? Sat?nalma Mod┨l┨ i?leyi?i tasar?m
a?amas?nda detayl? olarak a??klanmaya ?al???lm??t?r. Yaz?l?m tasar?m?nda Nesne Y?nelimli Programlama
y?ntemi kullan?lm??t?r. ?ncelikle, sistemdeki roller, akt?rler ve bunlar?n fonksiyonlar? tespit edilmi?tir.
Daha sonra bu fonksiyonlar aras?ndaki ili?ki belirlenmi? ve ak?? diyagramlar? olu?turulmu?tur. Son
olarak, statik veri yap?lar? ve veriler aras? ili?kiler (d?n┨?┨mler) olu?turularak Mant?ksal Tasar?m s┨reci
tamamlanm??t?r.

2.AMA?
G┨n┨m┨zde orta ve b┨y┨k ?l?ekli i?letmeler, i?letme i?i s┨re?lerin kurulmas?, y?netilmesi, verilerin
kay?t alt?na al?narak raporlanmas?n?n ?nemini kavram?? durumdad?r. Bunun i?in bir ?ok i?letme bir ERP
(Entireprise Resource Planning- Kurumsal Kaynak Planlama) sistemi kurmu?tur. Bu sayede i?letmeler,
s┨re?lerini y?netebilir, bilgiye ve objektif say?sal verilere dayanan kararlar alabilirler. Bu kriterlere
dayanarak al?nan kararlar?n do?ru olma olas?l??? ?ok y┨ksektir. Bu do?ru kararlar ile yap?lan faaliyetler
sonucunda da ba?ar? ve b┨y┨me ka??n?lmaz olarak gelecektir.

3.KAPSAM
Bu d?k┨manda, i?letmedeki s┨re?lerden SATINALMA s┨reci detayl? olarak ve ili?kide oldu?u di?er
s┨re?ler ise kaba olarak ele al?nm??t?r. Sat?nalma s┨recinin ?neminin anla??lmas? i?in, ili?kide oldu?u
di?er s┨re?lerin de bilinmesi gerekmektedir.
??letmeler, mal veya hizmet ┨retebilmek i?in ?ncelikle sat?nalma yapmak zorundad?rlar. Bir motor
par?as? ┨reten i?letmeyi d┨?┨nd┨?┨m┨zde; Motor par?as?n? ┨retmek i?in gerekli olan hammadde ve
yard?mc? maddeler sat?n al?nmal?, sonra bu hammaddeler ?e?itli i?lemlere tabi tutularak motor par?as?
┨retilmelidir. Ayn? ?ekilde bir pizza i?letmesini d┨?┨nd┨?┨m┨zde; Pizza ┨retmek i?in ?nce ?e?itli
sebzeler, et ┨r┨nleri ve un sat?n al?nmal?, undan hamur yap?lmal? ve di?er malzemelerde hamurun
┨zerine yerle?tirilip f?r?nda pi?irilmelidir. Hatta ┨retilmi? olan pizzan?n da??t?m?n? yapabilmek i?in, daha
?nceden bir motorlu ara? ve pi?irebilmek i?in bir f?r?n sat?n al?nm?? olmal?d?r.
?rneklerden de anla??laca?? ┨zere sat?nalma faaliyeti her t┨rl┨ i?letme i?inde ?nemli bir yere sahiptir.
Sat?? faaliyeti nas?l i?letmeye para girmesini sa?l?yor ise sat?nalma faaliyeti de i?letmeden para ??k???n?
sa?lamaktad?r. Bundan dolay? i?letme sahipleri, genelde sat?nalma yapmak istemezler. ?retimin devam
etmesi i?in zorunlu olan hammadde, yard?mc? madde ve enerji d???nda sat?nalmay? istemezler. Ayr?ca,
i?letme ?al??anlar?n?n da asl?nda i?letmeye hizmet satt???n? d┨?┨nebiliriz. ?┨nk┨, i?letme ?al??anlar?
?nceden belirlenmi? bir ┨cret kar??l???nda bilgi ve becerilerini o i?letme i?in kullanmaktad?r. ?nsan
┨retimin bir unsuru oldu?una g?re, ?al??anlar da ┨retimin asli bir unsurudur. Ancak bu temel nokta,
?o?u i?letme sahibi taraf?ndan g?z ard? edilmekte, ?al??anlara gereksiz bir masraf g?z┨yle
bak?lmaktad?r.
?al??anlardan hizmet al?m? normal sat?nalma s┨re?leri d???nda i?lemektedir. ??letmelerde bu s┨rece
genelde Insan Kaynaklar? (Personel) departmanlar? bakmaktad?r. ERP sistemlerinde ayr? bir mod┨ld┨r.
Bu mod┨lde sadece, di?er i?letmelerden yap?lan mal ve hizmet sat?nalma s┨re?leri yer almaktad?r.
4

4.KAVRAMSAL TASARIM
Bir i?letmede kurulmak istenen sat?nalma sisteminde minumum d┨zeyde bulunmas? gereken akt?rler,
kullan?m durumlar? ve fonksiyonlar a?a??da a??kland??? gibi olmal?d?r. Bu ?gelerden baz?lar? direkt
olarak sat?nalma sisteminin bir ?gesi olmay?p, yan sistemlerin ?gesidir. Di?er s┨re?leri i?ine alan bir
ERP sistemi mevcut ise bu ?geler di?er sistemler i?erisinde yer alabilir. Ancak, sadece tek ba??na bir
sat?nalma sistemi kurulmak istenirse, bu ?geler de sistem i?erisinde yer almal?d?r.

4.1 S?STEMDEK? AKT?RLER
a. Sistem Y?neticisi:
Sistemde yer alan di?er kullan?c?lar? olu?turur. Sistemde olu?an bilgileri belirli aral?klarla yedekler.
Sistemin g┨venli?inden ve kesintisiz olarak ?al??mas?ndan sorumludur.
b. Kullan?c?:
Sistemde yer alan t┨m kullan?c?lard?r. Sat?nalma departmanlar?nda olabilece?i gibi, di?er
departmanlardan da sistemi kullanacak olan ki?ilerdir. (┨retim, planlama, lojistik, sat??, muhasebe,
finans vs) Sistemde atanm?? olan yetkiler dahilinde i?lem yaparlar.
c. Y?netici:
Y?netici sistemde yer alan bir kullan?c?d?r. Ancak, kendi departman?ndaki di?er bir kullan?c?n?n istemi?
oldu?u sat?nalma taleplerini onaylama veya ret etme yetkisine sahiptir. Bu durum, i?letmede her
?al??an?n kafas?na g?re gereksiz sat?nalma yapmas?n? ?nlemektedir. Sistemde kilit bir ?neme sahiptir.
??letmenin verimlili?i ve karl?l??? a??s?ndan ?ok ?nemlidir.
d. Sat?nalma Departman?:
Kullan?c?lar taraf?ndan a??lm?? ve ilgili y?neticiler taraf?ndan onaylanm?? sat?nalma taleplerini inceler.
Bu talepleri de?erlendirir ve en uygun bulunan tedarik?ilere sat?nalma sipari?ini iletir. ?lgili tedarik?i
sistemde tan?ml? de?ilse tan?mlar. Belirli d?nem aral?klar?nda, tedarik?ilerin performanslar?n? hesaplar.
e. Depo:
Tedarik?ilerden gelen mallar? teslim al?r. Nitelik ve nicelik olarak do?ruluklar?n? kontrol eder. ?lgili
sat?nalma sipari?i ile e?le?tirme yapt?ktan sonra sisteme irsaliye giri?ini yapar.
f. Muhasebe:
??letmeye g?nderilen faturalar?n ERP sistemine giri?lerini yapar. Bu giri? s?ras?nda, fatura i?eri?indeki
mal ve hizmetlerin firmaya gelip gelmedi?ini kontrol eder. Mal faturas? ise, sistemdeki irsaliye ile
faturay? e?le?tirir.
g. Finans:
Muhasebe taraf?ndan giri?i yap?lan faturalar? kontrol eder. Faturalar?n ?deme g┨nlerini tespit eder ve
g┨n┨ geldi?inde ?demeyi ger?ekle?tirir.
5

4.2 S?STEMDEK? BELGELER
a. Sat?nalma Talebi:
??letmedeki her t┨rl┨ kullan?c? taraf?ndan a??labilir. Kullan?c?lar, i? g?rebilmek ve/veya i?letmede
kullanabilmek i?in gerekli olan her t┨rl┨ ┨r┨n ve hizmet sat?nalmas? i?in bir sat?nalma talebi a?mak
zorundad?r. Talep Id, Belge Tarihi, Talep Tarihi, Kullan?c? Id gibi bilgilerden olu?an bir ba?l?k tablosu ile,
sat?nal?nmas? istenen mal veya hizmetlerin id leri ve miktarlar?n?n bulundu?u bir detay tablosundan
olu?maktad?r. Kullan?c?lar farkl? tarihlerde istedikleri her t┨rl┨ sat?nalma talebi i?in ayr? bir talep belgesi
a?mal?d?rlar. E?er kar???k a??l?rsa, sistemde talep takibi zorla??r, ilgili tedarik?ilerin ve sat?nalma
departman?n performans? ?l?┨lemez. Tedarik?iden gelen bir mal?n, hangi talebe istinaden geldi?i
bulunamaz. Bu durumda, belgeler aras?ndaki ak?? kopacakt?r.
b. Sat?nalma Sipari?i:
Sadece sat?nalma departman? taraf?ndan a??labilir. Talep belgesindeki gibi ba?l?k tablosu ve ┨r┨n
bilgileri olan bir detay tablodan olu?ur. 2 ?ekilde olu?turulabilir. Kullan?c?lar?n olu?turmu? oldu?u
sat?nalma talep belgelerinden direkt olarak olu?turabilir. Yada, herhangi bir talep olmadan, direkt
olarak manuel ?ekilde olu?turulabilir. Bu durumda, sat?nalma sipari? belgesi her hangi bir talep
belgesini i?aret etmez. Sipari? belgesindeki TalepId de?eri 0 (s?f?r) olacakt?r.
c. ?rsaliye:
Tedarik?iler taraf?ndan i?letmeye g?nderilen ┨r┨nler ile gelen bir belgedir. Ticari mal sevkiyatlar?nda
bulunmas? zorunludur. Ta??nan mallar?n isimleri ve miktarlar? yaz?lmaktad?r. ??letmeye gelen mallar
depo sorumlusu taraf?ndan kontrol edilir. ?rsaliye ┨zerinde yazan bilgilerin do?rulu?u teyid edildikten
sonra sisteme giri?i yap?l?r. ??letmeye gelen mallar, sisteme irsaliyenin girilmesiyle sistemsel olarak da
stokla??r. Gelen irsaliyenin sipari? belgesi bulunarak e?le?tirilir. B?ylece, ilgili sat?nalma sipari?i de
kapat?lm?? olur. (miktar tam ise) Bundan dolay?, irsaliyelerin ┨zerine ilgili sat?nalma sipari? numaras?n?n
yaz?lmas? operat?rlere h?z kazand?rmakta, bo? yere ve hatal? veri giri?ini engellemektedir. Sat?nalma
sipari?i olmadan i?letmeye gelen mallar?n kabul┨ depocu taraf?ndan yap?lmaz. Mutlaka bir ┨st
y?neticinin onay? al?narak mal kab┨l┨ yap?lmal?d?r. Bu durumda da, mutlaka sat?nalma sipari?i
a??lmal?d?r. Ba?l?k ve detay tablosu olmak ┨zere 2 tablodan olu?ur.
d. Fatura:
??letmelerde ticari i?lemler fatura ile yap?lmaktad?r. Bir i?letme di?er i?letmeden mal ve hizmet
kar??l??? para talep ediyorsa, ?nceden mutlaka fatura kesilmi? olmas? gerekmektedir. Her t┨rl┨ ticari
bor? ve alacak faturaya dayanmak zorundad?r. Fatura ┨zerinde, kesilen firma ┨nvan?, adresi, vergi
dairesi, vergi numaras?, ilgili mal ve hizmetlerin a??klamalar?, br┨t tutarlar?, iskonto tutarlar?, vergi
tutarlar? ve ?deme tarihi (vade) gibi bilgileri bulunmaktad?r. Fatura i?eri?indeki ┨r┨nlerin, firmaya
ger?ekten gelip gelmedi?i sorgulanmal?d?r. (irsaliye kontrol┨) Ayn? mallar?n birden fazla kez
faturalanmamas? i?in, fatura ┨zerlerinde irsaliye numaras? mutlaka yazmal?d?r. Son y?llarda irsaliyeli
fatura uygulamalar? yayg?nla?m??t?r. Bu gibi kontrollere gerek kalmam??t?r.
e.Odeme:
Muhasebe departman? taraf?ndan sisteme sorunsuz olarak girilmi? ve ?deme onay? verilmi? olan
faturalar?n tutarlar? finans departman? taraf?ndan tedarik?iye (alacakl? firmaya) ?e?itli y?ntemler ile
?denir. (nakit, ?ek, havale, eft vs)
6

4.3 USECASE DIAGRAMI
7

5.MANTIKSAL TASARIM
5.1 ACTIVITY DIAGRAMS
8
9

5.2 CLASS DIAGRAM
10

5.3 DATA MODEL DIAGRAM
11

6. GEL??T?RME
6.1 PROGRAMLAMA D?L? SE??M?
Tasarlanan sistemin geli?tirilmesi i?in nesne y?nelimli programlama dilleri ara?t?r?lm??t?r. Bu
ara?t?rmalar sonucunda Java programlama dilinde geli?tirme yap?lmas?na karar verilmi?tir. Bu kararda,
ge?mi?te ya?anm?? olan programlama deneyimleri ve ders kapsam?nda ??renilen yeni bilgiler etkili
olmu?tur. Bu etken fakt?rlerden baz?lar? ?unlard?r:
a.
b.
c.
d.

e.

f.
g.

Ders kapsam?nda anlat?lan Nesne Y?nelimli Programlama kavram ve tekniklerinin Java ile
?rneklenmesi.
Java nesne y?nelimli bir programlama dili oldu?undan, her ?eyin bir nesneden ibaret olmas?. Daha
tasar?m a?amas?nda nesne tabanl? d┨?┨nmeye zorlamas?.
Java ile geli?tirilmi? yaz?l?mlar?n farkl? platformlarda (windows, unix, linux vs) ve farkl? cihazlarda
(pocked pc, pda, vs) ?al??abilmesi.
Son y?llarda geli?en bili?im teknolojileri ve yayg?nla?an internet (network) ortamlar? sayesinde,
yaz?l?mlar?n ?ok katmanl? ve sunucu tarafl? tasarlanmas?. Java n?n istemci taraf?nda oldu?u kadar
sunucu taraf?nda da ?ok g┨?l┨ y?nlerinin bulunmas?.
Sunucu taraf?nda ?al??an yaz?l?mlarda en ?nemli hususlardan biri de kaynak y?netimi ve
kararl?l?kt?r.(kesintisiz ?al??ma) ?stemcilerden ayn? anda gelen istekler ?ok iyi y?netilmeli ve ortaya
??kabilecek hatalar kontrol alt?na al?nmal?d?r. Java n?n bu ihtiyaca ?ok iyi cevap vermesi.
Javan?n bir programlama dili olmas? yan?nda, bir geli?tirme ve teknoloji platformu haline gelerek
bir end┨stri standard?na d?n┨?mesi.
Ge?mi?te ya?anan programlama deneyimlerimde Java platformunun bulunmamas?. Java
teknojilerinde deneyim kazan?lmak istenmesi.

6.2 PROGRAMLAMA ARACI SE??M? (IDE)
T┨m programlama dillerinde, yaz?m kurallar? (syntax) s?k? bir disipline ba?l?d?r. Yaz?l?m geli?tiriler bu
kurallara uymak zorundad?rlar. Ayr?ca programlama dillerinde binlerce komut bulunmaktad?r. B┨t┨n
bu komutlar?n yaz?l??lar?n? ve kullan?mlar?n? ezberlemek m┨mk┨n de?ildir. Bu zorluklardan dolay? genel
olarak ^t┨mle?ik geli?tirme ortam? ̄ ad? verilen yaz?l?mlar yap?lm??t?r. (IDE-Integrated Development
Environment) Son y?llarda bir ?ok programlama dili i?in g┨?l┨ IDE yaz?l?mlar? ortaya ??km??t?r. IDE
ara?lar?nda bulunan genel ?zellikler ve yaz?l?m geli?tiricilere sa?lad??? faydalardan baz?lar? ?unlard?r:
a.
b.
c.
d.
e.
f.
g.

Kullan?c? aray┨zlerinin ve baz? soyut nesne tasar?mlar?n?n (veritaban? ba?lant?lar? vs) g?rsel olarak
kolayl?kla yap?labilmesi. (s┨r┨kle-b?rak)
G?rsel olarak yap?lan tasar?m kodlar?n?n otomatik olarak olu?turulmas?.
S?k kullan?lan ve kurallar? belli olan kodlar?n otomatik olu?turulmas?. (re-factor)
S?zdizim ve baz? basit mant?k hatalar?n?n IDE taraf?ndan yakalanabilmesi.
Programa durma noktalar? eklenerek olaylar?n ve de?i?kenlerin izlenebilmesi. (watch-debug)
Birden fazla program?n yer ald??? b┨y┨k yaz?l?m projelerinde, programlar?n bir arada tutulabilmesi,
s┨r┨m denetimlerinin yap?labilmesi.
Programlar?n kolayl?kla derlenmesi ve da??t?m dosyalar?n?n haz?rlanmas?. (run time files)

Java programlama dili i?in ?ok say?da t┨mle?ik geli?tirme ortam? bulunmaktad?r. (NetBeans, Eclipse,
JBuilder, JDeveloper vs) Her IDE nin di?erlerine g?re zay?f veya g┨?l┨ oldu?u y?nler bulunmaktad?r. Bu
durumun Java i?in avantajlar? ve dezavantajlar? bulunmaktad?r. Java ile yaz?l?m geli?tiren bir ?ok firma
farkl? IDE ler kulland??? i?in, bu IDE ortamlar?n?n da ?ok iyi ??renilmesi gerekmektedir. Yap?lan
incelemeler sonucunda, bu projede NetBeans 6.9 IDE sinin kullan?lmas?na karar verilmi?tir.
12

7. TEST
Geli?tirilen program ?e?itli Windows i?letim sistemlerinde ve OpenSuse Linux i?letim sisteminde
?al??t?r?lm??, t┨m g?revlerini yerine getirdi?i ve hata yakalama fonksiyonlar?n?n sorunsuz ?al??t???
g?r┨lm┨?t┨r. Bu i?letim sistemi s┨r┨mleri a?a??daki gibidir:
Windows:
-

Windows XP
Windows Vista
Windows 7
Windows Server 2003
Windows Server 2008

Linux:
-

OpenSuse Linux 11
13

8. DA?ITIM
8.1 GEREKS?N?MLER
Program Java dilinde geli?tirilmi?tir. Java ile geli?tirilen programlar, derlendikten sonra hemen makina
diline ?evrilmezler. Bundan dolay? Java platform ba??ms?z olmaktad?r. ?┨nk┨, derleme an?nda
program?n hangi i?letim sisteminde ?al??t?r?laca?? bilinmemektedir ve b?yle bir ?n ko?ul yoktur.
Derleme (compile) i?leminde, program kodu ^byte code ̄ ad? verilen ara bir koda ?evrilmektedir. Byte
code a d?n┨?m┨? olan program, ?al??ma an?nda makina diline ?evrilir. Bu ?evrimi yapacak olan ba?ka
bir programa daha ihtiyac duyulmaktad?r. Bu programlara JRE (Java Runtime Environment) ad?
verilmektedir. Bundan dolay? program?n ?al??t??? t┨m i?letim sistemlerinde JRE 1.6 kurulmu? olmal?d?r.
Ayr?ca, program bir veritaban? uygulamas? oldu?undan ?al??t??? i?letim sisteminde Microsoft Access
Database Driver kurulmu? olmal?d?r. (ODBC kayna?? tan?mlayabilmek i?in)
Java Runtime s┨r┨m┨;
http://www.oracle.com/technetwork/java/javase/downloads/index.html
Microsoft Database Driver;
http://www.microsoft.com/downloads/en/resultsForCategory.aspx?displaylang=en&categoryId=3&st
ype=n_dc
Linklerinden download edilebilir.
JRE 1.6 n?n kurulumu ve i?letim sistemlerine g?re gerekli minumum bilgisayar konfigurasyonlar? kendi
teknik d?k┨manlar?nda bulunmaktad?r.

8.2 KURULUM
8.2.1 Program dosyalar?:
Program, MyApp4.jar, MyApp4Src.rar ve MYDB.MDB olmak ┨zere 3 dosyadan olu?maktad?r:
MyApp4.jar dosyas? program?n ana runtime dosyas?d?r. Programda bulunan derlenmi? s?n?flar bu
dosya i?erisinde bulunmaktad?r. (*.class)
MyApp4Src.rar dosyas?nda, program?n kaynak kodlar? bulunmaktad?r. Olu?turulan t┨m s?n?flar i?in
kaynak kod dosyas? bulunmaktad?r. (*.java) Program?n ?al??mas? i?in gerekli de?ildir. Kaynak kodlar?n
online olarak incelenebilmesi amac?yla eklenmi?tir.
MYDB.MDB dosyas?, program?n kulland??? MS ACCESS format?nda veritaban? dosyas?d?r.
8.2.2 Program?n Kurulmas? ve Ayarlar?n yap?lmas?:
1. Program?n kurulmas? i?in herhangi bir setup program? yoktur. Programdaki 3 dosya ayn? klas?re
kopyalanmal?d?r.
2. MYDB.MDB veritaban? dosyas?n?n ODBC ayarlar? yap?larak i?letim sistemi ┨zerinde bir ^veri kayna?? ̄
olu?turulmal?d?r. Olu?turulan veri kayna??n?n ad? ^MYDB ̄ olmal?d?r. (tamam? b┨y┨k harf) Program
?al??mas? s?ras?nda, ODBC ┨zerinde MYDB isimli veri kayna??na ba?lanmaya ?al??acakt?r. ODBC
ayarlar?n?n yap?lmas? a?a??daki ekran g?r┨nt┨lerinde bulunmaktad?r.
14
Denetim Masas? -> Y?netimsel Ara?lar -> Veri Kaynaklar? (ODBC)

Sistem DSN sekmesinde Ekle -> Veri Kayna?? Ad?: MYDB
Veritaban? Se? -> MYDB.MDB dosyas?n? kopyalad???n?z klas?r.
15

8.3 ?ALI?TIRMA
??letim sisteminizde jar uzant?l? dosyalar java.exe dosyas? ile ili?kilendirilmi? ise, MyApp4.jar dosyas?na
?ift t?klanarak program ?al??t?r?labilir. ?li?kili de?ilse, i?letim sisteminde komut sat?r? moduna ge?erek
a?a??daki ekranda g?r┨nd┨?┨ ?ekilde ?al??t?r?labilir.

Ayr?ca, JRE dosyalar?ndan java.exe dosyas?n?n i?letim sistemi ortam de?i?kenlerinde yolunun
tan?mlanm?? olmas? gerekir. (path) Tan?ml? de?ilse, java.exe dosyas?n?n bulunamad???n? belirten bir
uyar? mesaj? al?n?r.
Bu durumda, java.exe dosyas?n?n yolu i?letim sisteminde tan?mlanmal? veya java.exe dosyas?n?n
bulundu?u klas?re ge?ilerek ?al??t?rma komutu verilmelidir. Komut sat?r?ndaki MyApp4.jar dosyas?n?n
tam yolu da yaz?lmal?d?r.
JRE 1.6 s┨r┨m┨ (minumum) kurulmu?, ODBC ayar? yap?larak MYDB.MDB veritaban?n? g?steren bir veri
kayna?? tan?mlanm?? ise program ?al??acak ve a?a??daki ekran g?r┨nt┨s┨ gelecektir.
16

9.PROGRAMIN KULLANILMASI
Program 2 b?l┨m olarak tasarlanm??t?r. Bir b?l┨mde program ?al???rken kullan?lacak olan sabit tan?mlar
yap?lmaktad?r. ?rnek; ?r┨n Tan?mlar?, Tedarik?i Tan?mlar?, Departman Tan?mlar?, Kullan?c? Tan?mlar?.
Di?er b?l┨mde ise, s┨rekli olarak yap?lacak i?lemler almaktad?r. Bu b?l┨mden girilen bilgiler, hareket
verisi olmaktad?r. ?rnek; Talep Bilgileri, Sipari? Bilgileri, ?rsaliye Bilgileri, Fatura Bilgileri vs.
Programda ilk ?nce gerekli sabit tan?mlar?n yap?lmas? gerekmektedir. Bu tan?mlar ger?ekte birer veri
nesnesi dir. ??lemler men┨s┨ndeki bilgilerde, bu nesneler aras?nda (zaman boyutunda) ili?ki
kurulmas?n? sa?layan veri nesneleridir.
Kullan?c? grafik aray┨zleri (GUI) basit, sade ve kullan??l? ?ekilde yap?lmaya ?al???lm??t?r. Kullan?c?n?n veri
giri?i yapmas?n? sa?layan bir veri giri? formu ve girilen verilerin listelenmesini, bulunmas?n? ve
silinmesini sa?layan liste (browse) formu yap?lm??t?r. Yap?lan i?lem sonu?lar?nda, kullan?c?ya mutlaka
mesaj verilmi?tir. ?rne?in; Kay?t Yap?ld?, Hata Olu?tu vs vs.....
Ayr?ca, hata denetimi maximum seviyede yap?lmaya ?al???lm??, meydana gelen hatalar kontrol alt?na
al?narak program?n kararl?l?kla ?al??mas?n? s┨rd┨rmesi sa?lanm??t?r. ?rnek ekran g?r┨nt┨leri a?a??dad?r:
17
Kay?t ba?ar?l? ger?ekle?ti?inde bilgi mesaj? g?sterilmi?tir.

Eksik bilgi ile kay?t yap?ld???nda veya ?ak??ma meydana geldi?inde uyar? mesajlar? g?sterilmi?tir.
18
Yenile butonuna t?kland???nda veriler tablodan grid e geliyor.

Bul butonuna t?kland???nda, aranan ID no soruluyor.
19
Sil butonuna t?kland???nda, silincek ID no soruluyor.
20

10.KAYNAKLAR
10.1 ELEKTRONIK KAYNAKLAR
1. Gazi ?niversitesi Bili?im Enstit┨s┨ Online NYP Ders ??erikleri
2. Gazi ?niversitesi Bili?im Enstit┨s┨ ?rg┨n ??renim NYP Ders Slaytlar?
3. http://www.uml.org/
4. http://www.agilemodeling.com/
5. http://www.agiledata.org/
6. http://atlas.kennesaw.edu/~dbraun/csis4650/A&D/index.htm
7. http://www-01.ibm.com/software/rational/uml/
8. http://msdn.microsoft.com/en-us/library/ff604964%28office.14%29.aspx
9. http://www.oracle.com/technetwork/java/index.html
10. http://netbeans.org/

10.2 BASILI KAYNAKLAR
1. Nesne Odakl? Analiz ve Modelleme, Yrd.Do?.Dr. ?brahim ED?N, 2009
2. Sistem Analizi ve Tasar?m?, Prof.Dr. Oya KALIPSIZ, Ay?e BUHARALI, G?ksel B?R?C?K, 2008 (2.Bas?m)
3. UML ile Nesne Tabanl? ??z┨mleme ve Tasar?m, Bora G?NG?REN, 2009
4. JAVA Programlama Dili Yaz?l?m Tasar?m?, Altu? B. ALTINTA?, 2010
5. Java ile Programlama ve Veri Yap?lar?, B┨lent ?OBANO?LU, 2010 (2.Bas?m)
6. Java Uygulamalar?, Murat ?nan, 2007
7. Teach Yourself JAVA in 21 Days, Laura LEMAY, Charles L. PERKINS, 1996
21

11.PROGRAM KAYNAK KODU VE ACIKLAMALAR
Frameler ┨zerindeki nesnelerin tasar?m kodlar? ?ok uzun ve basit olduklar?ndan dolay? a?a??da yer
almamaktad?r. Okunabilirli?i art?rmak i?in sadece metotlar al?nm??t?r. Tasar?m nesnelerini olu?turan
initComponents() metodu kurucu metotlardan ?a?r?lmaktad?r. Ayr?ca, veri giri? s?n?flar?ndan sadece
KullaniciJFrame s?n?f?n?n kodlar? yer almaktad?r. ?┨nk┨ di?er s?n?flar ile ayn? metotlara sahiptir sadece
veri yap?s? de?i?mektedir. Yaz?l?m?n t┨m kodlar?, ?al??t?r?labilir jar dosyas? ile birlikte bulunmaktad?r.
Program ba?lang?c?nda Main s?n?f?, myMenuJFrame s?n?f?n? olu?turmakta ve men┨ formunu g?r┨n┨r
yapmaktad?r. myMenuJFrame s?n?f? i?erisinde de bir menu ve i?lerinde men┨ se?enekleri
bulunmaktad?r. (menuItem) Kullan?c?n?n t?klad??? se?enek olay? yakalanarak ilgili form ?a?r?lmakta ve
g?r┨n┨r hale getirilmektedir. (KullaniciJFrame, UrunJFrame, DepartmanJFrame, TedarikciJFrame)
Fiziki veritaban?n? temsil eden Veritabani isimli bir s?n?f olu?turulmu?tur. T┨m veritaban? i?lemleri bu
s?n?f arac?l??? ile y┨r┨t┨lmektedir. Baglan(), baglantiKapat(), calistirSorgu(), olusturKayitSet() isimli
metotlar? bulunmaktad?r. S?n?f?n, ResultSet tipindeki kayitSet ?zelli?i public olarak tan?mland?. ?┨nk┨,
sorgu sonucunda olu?an kay?t setine d??ar?dan eri?ilebilmesi gerekmektedir. Di?er ?zellikleri private
olarak tan?mlanm??t?r. Bu s?n?f, veritaban? operasyonlar?n? merkezi bir hale getirmektedir. Veritaban?
tipi, s┨r┨c┨s┨ veya adresi de?i?ti?inde sadece bu s?n?ftaki baglan() metodunun de?i?tirilmesi yeterli
olmaktad?r. Ayr?ca, kullan?c? aray┨z s?n?flar? ve veri s?n?flar? i?erisinde herhangi bir sql komutu
olmad???ndan java.sql paketinin import edilmesine gerek kalmam??t?r.
Veritaban? ┨zerindeki tablolar? temsil eden veri s?n?flar? olu?turulmu?tur. Kullanici, Urun, Departman ve
Tedarikci. Her bir s?n?f?n yap?s? temsil etti?i tablo yap?s? ile ayn?d?r. S?n?f?n t┨m ?zellikleri saklanm??t?r.
Ancak public eri?imde olan set ve get metotlar? ile eri?ilebilir. Her veri s?n?f?nda, kaydet() ve sil()
metotlar? bulunmaktad?r. Ayr?ca, veri s?n?f?n?n kurucu metodunda veritaban? ba?lant?s? a??lm??, final
metodunda veritaban? ba?lant?s? kapat?lm??t?r. Aray┨zde yap?lan i?lem ise, form nesnelerindeki
de?erlerin elde edilerek, veri s?n?f? nesnesine aktar?lmas? sonra ilgili metodun ?a?r?lmas?ndan ibaretttir.

Main.java
/ @author mazimli /
/* ** Ana men┨y┨ olu?turur ve g?sterir ***/
package myapp4;
public class Main {
private static MenuJFrame myMenuJFrame;
public static void main(String[] args) {
myMenuJFrame = new MenuJFrame();
myMenuJFrame.setVisible(true);
myMenuJFrame.setBounds(50, 50, 640, 480);
}
}
MenuJFrame.java
/ @author mazimli **/
/*** Men┨den se?ilen se?eneklere ait formlar? g?sterir ***/
package myapp4;
public class MenuJFrame extends javax.swing.JFrame {
22
private static TedarikciJFrame myTedarikciJFrame;
private static UrunJFrame myUrunJFrame;
private static DepartmanJFrame myDepartmanJFrame;
private static KullaniciJFrame myKullaniciJFrame;
private static HakkindaJFrame myHakkindaJFrame;
public MenuJFrame() {
initComponents();
}
@SuppressWarnings("unchecked")
//--KULLANICI TANIMLARI---------------------------------------------------private void jMenuItem1ActionPerformed(java.awt.event.ActionEvent evt) {
myKullaniciJFrame = new KullaniciJFrame();
myKullaniciJFrame.setVisible(true);
myKullaniciJFrame.setBounds(100, 100, 750, 500);
}
//--KAPAT------------------------------------------------------------------private void jMenuItem2ActionPerformed(java.awt.event.ActionEvent evt) {
System.exit(0);
}
//--HAKKINDA------------------------------------------------------------private void jMenuItem11ActionPerformed(java.awt.event.ActionEvent evt) {
myHakkindaJFrame = new HakkindaJFrame();
myHakkindaJFrame.setVisible(true);
myHakkindaJFrame.setBounds(150, 150, 450, 150);
}
//--DEPARTMAN TANIMLARI----------------------------------------------------private void jMenuItem3ActionPerformed(java.awt.event.ActionEvent evt) {
myDepartmanJFrame = new DepartmanJFrame();
myDepartmanJFrame.setVisible(true);
myDepartmanJFrame.setBounds(100, 100, 640, 480);
}
//--URUN TANIMLARI---------------------------------------------------------private void jMenuItem10ActionPerformed(java.awt.event.ActionEvent evt) {
myUrunJFrame = new UrunJFrame();
myUrunJFrame.setVisible(true);
myUrunJFrame.setBounds(100, 100, 750, 500);
}
//--TEDARIKCI TANIMLARI----------------------------------------------------private void jMenuItem4ActionPerformed(java.awt.event.ActionEvent evt) {
myTedarikciJFrame = new TedarikciJFrame();
myTedarikciJFrame.setVisible(true);
myTedarikciJFrame.setBounds(100, 100, 750, 550);
}
23

//--MAIN METOT--------------------------------------------------------------public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new MenuJFrame().setVisible(true);
}
});
}
}
Veritabani.java
/*** @author mazimli ****/
/*** Veritaban? s?n?f?d?r. Veritaban? i?lemlerini ger?ekle?tirir. ****/
package myapp4;
import java.sql.*;
import javax.swing.JOptionPane;
public class Veritabani {
private Connection baglanti;
private Statement sorgu;
public ResultSet kayitSet;
public boolean baglan(){
boolean sonuc = false;
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
baglanti = DriverManager.getConnection("jdbc:odbc:MYDB");
sonuc = true;
} catch (Exception e) {
JOptionPane.showMessageDialog(null,e.getMessage(),"!!! HATA OLUSTU !!!",0);
sonuc = false;
}
return sonuc;
}
public boolean olusturKayitSet(String sqlText){
boolean sonuc = false;
try{
sorgu = baglanti.createStatement();
kayitSet = sorgu.executeQuery(sqlText);
sonuc = true;
} catch (Exception e) {
JOptionPane.showMessageDialog(null,e.getMessage(),"!!! HATA OLUSTU !!!",0);
sonuc = false;
}
return(sonuc);
24
}
public boolean calistirSorgu(String sqlText){
boolean sonuc = false;
try{
sorgu = baglanti.createStatement();
sorgu.executeUpdate(sqlText);
sonuc = true;
} catch (Exception e) {
JOptionPane.showMessageDialog(null,e.getMessage(),"!!! HATA OLUSTU !!!",0);
sonuc = false;
}
return(sonuc);
}
public void baglantiKapat(){
try{
baglanti.close();
} catch (Exception e) {
JOptionPane.showMessageDialog(null,e.getMessage(),"!!! HATA OLUSTU !!!",0);
}
}
}
Kullanici.java
/**** @author mazimli ****/
/*** Kullanici veri yap? s?n?f?. KULLANICI tablosuna kar??l?k gelir.***/
package myapp4;
import javax.swing.JOptionPane;
public class Kullanici {
private int id;
private String ad;
private String soyad;
private String departmanId;
private int yonetici;
private int admin;
private int aktif;
private String sifre;
private Veritabani myDb;
private boolean baglantiVar;
private boolean sonuc;
public int getId() {
return id;
}
25
public void setId(int id) {
this.id = id;
}
public String getAd() {
return ad;
}
public void setAd(String ad) {
this.ad = ad;
}
public String getSoyad() {
return soyad;
}
public void setSoyad(String soyad) {
this.soyad = soyad;
}
public String getDepartmanId() {
return departmanId;
}
public void setDepartmanId(String departmanId) {
this.departmanId = departmanId;
}
public int getYonetici() {
return yonetici;
}
public void setYonetici(int yonetici) {
this.yonetici = yonetici;
}
public int getAdmin() {
return admin;
}
public void setAdmin(int admin) {
this.admin = admin;
}
public int getAktif() {
return aktif;
}
public void setAktif(int aktif) {
this.aktif = aktif;
26
}
public String getSifre() {
return sifre;
}
public void setSifre(String sifre) {
this.sifre = sifre;
}
//--KURUCU METOT: VERITABANI SURUCUSUNU YUKLER VE BAGLANTIYI KURAR...
public Kullanici(){
myDb = new Veritabani();
baglantiVar = myDb.baglan();
}
//--YOK EDICI METOT: BAGLANTIYI KESER, VERITABANI NESNESINI YOK EDER...
@Override
public void finalize() throws Throwable{
myDb.baglantiKapat();
super.finalize();
}
public void kaydet(){
if (baglantiVar == true) {
sonuc = myDb.calistirSorgu("INSERT INTO KULLANICI
(ID,AD,SOYAD,DEPARTMANID,YONETICI,ADMIN,AKTIF,SIFRE) VALUES (" + id + ",'" + ad + "','" + soyad
+ "'," + departmanId + "," + yonetici + "," + admin + "," + aktif + ",'" + sifre + "')");
if (sonuc == true) {
JOptionPane.showMessageDialog(null,"Kayit Yapildi...nnId: " + id,"B i l g i",1);
}
}
}
public void sil(){
if (baglantiVar == true) {
sonuc = myDb.calistirSorgu("DELETE FROM KULLANICI WHERE ID=" + id);
if (sonuc == true) {
JOptionPane.showMessageDialog(null,"Kayit Silindi...nnId: " + id,"B i l g i",1);
}
}
}
}
KullaniciJFrame.java
/* @author mazimli */
/*** *** Kullan?c? tan?mlar? form s?n?f? /
package myapp4;
27
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;
import javax.swing.table.DefaultTableModel;
public class KullaniciJFrame extends javax.swing.JFrame {
private Veritabani myDb;
private boolean sonuc;
/** Creates new form KullaniciJFrame */
public KullaniciJFrame() {
initComponents();
}
@SuppressWarnings("unchecked")
//--KAPAT----------------------------------------------------------------private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {
}//GEN-LAST:event_jButton3ActionPerformed

this.dispose();

//--TEMIZLE--------------------------------------------------------------private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
jTextField1.setText("");
jTextField2.setText("");
jTextField3.setText("");
jTextField4.setText("");
jPasswordField1.setText("");
}
//--KAYDET---------------------------------------------------------------private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
Kullanici myKullanici = new Kullanici();
try {
myKullanici.setId(Integer.parseInt(jTextField1.getText()));
myKullanici.setAd(jTextField2.getText());
myKullanici.setSoyad(jTextField3.getText());
myKullanici.setDepartmanId(jTextField4.getText());
myKullanici.setYonetici(jComboBox1.getSelectedIndex());
myKullanici.setAdmin(jComboBox2.getSelectedIndex());
myKullanici.setAktif(jComboBox3.getSelectedIndex());
myKullanici.setSifre(jPasswordField1.getText());
myKullanici.kaydet();
} catch (Exception e) {
JOptionPane.showMessageDialog(null,e.getMessage(),"!!! HATA OLUSTU !!!",0);
} finally {
28
myKullanici = null;
}
}
//--GRID TABLO ICI YENILENIYOR---------------------------private void yenile(String prmId) throws SQLException{
int i = 0;
int j = 0;
int kayitSayi = 0;
DefaultTableModel myModel;
myModel = (DefaultTableModel) jTable1.getModel();
j = myModel.getRowCount();
for (i = 0; i < j; i++ ){
//-----grid tablo ici temizleniyor...
myModel.removeRow(0);
}
i = 0;
myDb = new Veritabani();
sonuc = myDb.baglan();
if (sonuc == true) {
sonuc = myDb.olusturKayitSet("SELECT COUNT(*) AS ROWCOUNT FROM KULLANICI " + prmId);
myDb.kayitSet.next();
kayitSayi = myDb.kayitSet.getInt("ROWCOUNT")-1;
jProgressBar1.setMaximum(kayitSayi);
sonuc = myDb.olusturKayitSet("SELECT * FROM KULLANICI " + prmId + " ORDER BY ID");
}
try {
while (myDb.kayitSet.next()) {
myModel.addRow(new
Object[]{myDb.kayitSet.getString("ID"),myDb.kayitSet.getString("AD"),myDb.kayitSet.getString("SOYA
D"),myDb.kayitSet.getString("DEPARTMANID"),myDb.kayitSet.getString("YONETICI"),myDb.kayitSet.ge
tString("ADMIN"),myDb.kayitSet.getString("AKTIF")});
jProgressBar1.setValue(i);
i++;
}
} catch (SQLException ex) {
Logger.getLogger(KullaniciJFrame.class.getName()).log(Level.SEVERE, null, ex);
}
myDb.baglantiKapat();
myDb = null;
}
//--YENILE---------------------------------------------------------------private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {
29
try {
yenile("");
} catch (SQLException ex) {
Logger.getLogger(KullaniciJFrame.class.getName()).log(Level.SEVERE, null, ex);
}
}
//--BUL------------------------------------------------------------------private void jButton5ActionPerformed(java.awt.event.ActionEvent evt) {
String id;
id = JOptionPane.showInputDialog(null,"[Kullanici Bul]nnID Giriniz:",null);
if (id != null) {
try {
yenile("WHERE ID=" + id);
} catch (SQLException ex) {
Logger.getLogger(KullaniciJFrame.class.getName()).log(Level.SEVERE, null, ex);
}
}
}

//--SIL------------------------------------------------------------------private void jButton6ActionPerformed(java.awt.event.ActionEvent evt) {//GENFIRST:event_jButton6ActionPerformed
String id;
id = JOptionPane.showInputDialog(null,"[Kullanici Sil]nnID Giriniz:",null);
if (id != null) {
Kullanici myKullanici = new Kullanici();
try {
myKullanici.setId(Integer.parseInt(id));
myKullanici.sil();
yenile("");
} catch (Exception ex) {
Logger.getLogger(KullaniciJFrame.class.getName()).log(Level.SEVERE, null, ex);
} finally {
myKullanici = null;
}
}
}
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new KullaniciJFrame().setVisible(true);
}
});
}
30
}

More Related Content

What's hot (20)

Proizvodne neproizvodne delatnosti
Proizvodne neproizvodne delatnostiProizvodne neproizvodne delatnosti
Proizvodne neproizvodne delatnosti
Gorica
?
Одредбе-за-место-време-и-начин-ма?-2020.-?ела-Стеванови? (1) (1).pdf
Одредбе-за-место-време-и-начин-ма?-2020.-?ела-Стеванови? (1) (1).pdfОдредбе-за-место-време-и-начин-ма?-2020.-?ела-Стеванови? (1) (1).pdf
Одредбе-за-место-време-и-начин-ма?-2020.-?ела-Стеванови? (1) (1).pdf
FilipDemirovic1
?
皆界温鉛温の仟号並匍で皆界温鉛温の隆UY宀をオンボ`ディング
皆界温鉛温の仟号並匍で皆界温鉛温の隆UY宀をオンボ`ディング皆界温鉛温の仟号並匍で皆界温鉛温の隆UY宀をオンボ`ディング
皆界温鉛温の仟号並匍で皆界温鉛温の隆UY宀をオンボ`ディング
Tatsuya Iwamatsu
?
Upitnik za u?enike
Upitnik za u?enikeUpitnik za u?enike
Upitnik za u?enike
Osnovna ?kola "Sveti Sava"
?
Power MOSFETのスパイスモデル
Power MOSFETのスパイスモデルPower MOSFETのスパイスモデル
Power MOSFETのスパイスモデル
Tsuyoshi Horigome
?
2.prezentacija biljke.-ii-raz
2.prezentacija biljke.-ii-raz2.prezentacija biljke.-ii-raz
2.prezentacija biljke.-ii-raz
Ма?а Радоман Цвети?анин
?
Sa?etak obnovljivih izvora energije - letci
Sa?etak obnovljivih izvora energije - letciSa?etak obnovljivih izvora energije - letci
Sa?etak obnovljivih izvora energije - letci
Gordana Divic
?
バグなんて需毛しちゃえ
バグなんて需毛しちゃえバグなんて需毛しちゃえ
バグなんて需毛しちゃえ
ssuser0be501
?
Bolesti zavisnosti
Bolesti zavisnostiBolesti zavisnosti
Bolesti zavisnosti
Elementary School "Bora Lazi?"
?
Koreni Aleksandra Smalcelj
Koreni Aleksandra SmalceljKoreni Aleksandra Smalcelj
Koreni Aleksandra Smalcelj
Dejan Pej?i?
?
書さらけない繁のためのDocker階秘T CentOS 7.2鬦
書さらけない繁のためのDocker階秘T CentOS 7.2鬦書さらけない繁のためのDocker階秘T CentOS 7.2鬦
書さらけない繁のためのDocker階秘T CentOS 7.2鬦
VirtualTech Japan Inc.
?
安艶恢アフ?リを旺佩蝕kする縞のマイク?レ`ション藺
安艶恢アフ?リを旺佩蝕kする縞のマイク?レ`ション藺安艶恢アフ?リを旺佩蝕kする縞のマイク?レ`ション藺
安艶恢アフ?リを旺佩蝕kする縞のマイク?レ`ション藺
Takayuki Shimizukawa
?
Контролни задатак ЧЛАНОВИ РЕЧЕНИЦЕ.docx
Контролни задатак ЧЛАНОВИ РЕЧЕНИЦЕ.docxКонтролни задатак ЧЛАНОВИ РЕЧЕНИЦЕ.docx
Контролни задатак ЧЛАНОВИ РЕЧЕНИЦЕ.docx
DanijelaSakota
?
Plan biblioteka
Plan bibliotekaPlan biblioteka
Plan biblioteka
sladjanagaluska
?
Pismo
PismoPismo
Pismo
Ivana ?ali?
?
Prezentacija Master rad
Prezentacija Master radPrezentacija Master rad
Prezentacija Master rad
Damir Vucinic
?
1 voved nutricionizam
1 voved nutricionizam1 voved nutricionizam
1 voved nutricionizam
Saso Gjorevski
?
Proizvodne neproizvodne delatnosti
Proizvodne neproizvodne delatnostiProizvodne neproizvodne delatnosti
Proizvodne neproizvodne delatnosti
Gorica
?
Одредбе-за-место-време-и-начин-ма?-2020.-?ела-Стеванови? (1) (1).pdf
Одредбе-за-место-време-и-начин-ма?-2020.-?ела-Стеванови? (1) (1).pdfОдредбе-за-место-време-и-начин-ма?-2020.-?ела-Стеванови? (1) (1).pdf
Одредбе-за-место-време-и-начин-ма?-2020.-?ела-Стеванови? (1) (1).pdf
FilipDemirovic1
?
皆界温鉛温の仟号並匍で皆界温鉛温の隆UY宀をオンボ`ディング
皆界温鉛温の仟号並匍で皆界温鉛温の隆UY宀をオンボ`ディング皆界温鉛温の仟号並匍で皆界温鉛温の隆UY宀をオンボ`ディング
皆界温鉛温の仟号並匍で皆界温鉛温の隆UY宀をオンボ`ディング
Tatsuya Iwamatsu
?
Power MOSFETのスパイスモデル
Power MOSFETのスパイスモデルPower MOSFETのスパイスモデル
Power MOSFETのスパイスモデル
Tsuyoshi Horigome
?
Sa?etak obnovljivih izvora energije - letci
Sa?etak obnovljivih izvora energije - letciSa?etak obnovljivih izvora energije - letci
Sa?etak obnovljivih izvora energije - letci
Gordana Divic
?
バグなんて需毛しちゃえ
バグなんて需毛しちゃえバグなんて需毛しちゃえ
バグなんて需毛しちゃえ
ssuser0be501
?
Koreni Aleksandra Smalcelj
Koreni Aleksandra SmalceljKoreni Aleksandra Smalcelj
Koreni Aleksandra Smalcelj
Dejan Pej?i?
?
書さらけない繁のためのDocker階秘T CentOS 7.2鬦
書さらけない繁のためのDocker階秘T CentOS 7.2鬦書さらけない繁のためのDocker階秘T CentOS 7.2鬦
書さらけない繁のためのDocker階秘T CentOS 7.2鬦
VirtualTech Japan Inc.
?
安艶恢アフ?リを旺佩蝕kする縞のマイク?レ`ション藺
安艶恢アフ?リを旺佩蝕kする縞のマイク?レ`ション藺安艶恢アフ?リを旺佩蝕kする縞のマイク?レ`ション藺
安艶恢アフ?リを旺佩蝕kする縞のマイク?レ`ション藺
Takayuki Shimizukawa
?
Контролни задатак ЧЛАНОВИ РЕЧЕНИЦЕ.docx
Контролни задатак ЧЛАНОВИ РЕЧЕНИЦЕ.docxКонтролни задатак ЧЛАНОВИ РЕЧЕНИЦЕ.docx
Контролни задатак ЧЛАНОВИ РЕЧЕНИЦЕ.docx
DanijelaSakota
?
Prezentacija Master rad
Prezentacija Master radPrezentacija Master rad
Prezentacija Master rad
Damir Vucinic
?

Similar to NYP (OOP) Java Proje Raporu (20)

S?STEM ?STERLER?N?N TESP?T?
S?STEM ?STERLER?N?N TESP?T? S?STEM ?STERLER?N?N TESP?T?
S?STEM ?STERLER?N?N TESP?T?
cgoze
?
Sistem ?sterlerinin Tespiti ve Modellenmesi
Sistem ?sterlerinin Tespiti ve ModellenmesiSistem ?sterlerinin Tespiti ve Modellenmesi
Sistem ?sterlerinin Tespiti ve Modellenmesi
cgoze
?
Sistem isterlerinin tespiti ve modellenmesi
Sistem isterlerinin tespiti ve modellenmesiSistem isterlerinin tespiti ve modellenmesi
Sistem isterlerinin tespiti ve modellenmesi
Sevgi Belder Eren
?
Erp sisteminde dikkat edilecek konular
Erp sisteminde dikkat edilecek konularErp sisteminde dikkat edilecek konular
Erp sisteminde dikkat edilecek konular
U?ur Meta
?
Kurumsal Bilgi Portali - Knowledge Management
Kurumsal Bilgi Portali - Knowledge ManagementKurumsal Bilgi Portali - Knowledge Management
Kurumsal Bilgi Portali - Knowledge Management
Sevket Akpinar
?
Form series
Form seriesForm series
Form series
kredimodeli
?
Personel Y?netimi
Personel Y?netimiPersonel Y?netimi
Personel Y?netimi
MuzafferUlu
?
Trex Erp Ii Sat?Nalma Ve B┨T?E Y?Netimi
Trex Erp Ii Sat?Nalma Ve B┨T?E Y?NetimiTrex Erp Ii Sat?Nalma Ve B┨T?E Y?Netimi
Trex Erp Ii Sat?Nalma Ve B┨T?E Y?Netimi
赫┨姻界温稼
?
Otomasyon Yat?R?M Analizi
Otomasyon Yat?R?M AnaliziOtomasyon Yat?R?M Analizi
Otomasyon Yat?R?M Analizi
Eren YAMAN
?
Maliyet Muhasebesi
Maliyet MuhasebesiMaliyet Muhasebesi
Maliyet Muhasebesi
S. Tar?k Salt
?
京姻看?┨姻
京姻看?┨姻京姻看?┨姻
京姻看?┨姻
INARAVUKATLIKOFSHUKU
?
End┨Stride Depolama
End┨Stride DepolamaEnd┨Stride Depolama
End┨Stride Depolama
Cafer SALCAN
?
VisionPlus E-fatura ?zel Entegrat?r
VisionPlus E-fatura ?zel Entegrat?rVisionPlus E-fatura ?zel Entegrat?r
VisionPlus E-fatura ?zel Entegrat?r
?dea Teknoloji ??z┨mleri
?
Kurumsal Kaynak Planlama - Muhasebe Mod┨l┨
Kurumsal Kaynak Planlama - Muhasebe Mod┨l┨Kurumsal Kaynak Planlama - Muhasebe Mod┨l┨
Kurumsal Kaynak Planlama - Muhasebe Mod┨l┨
Abdullah Cihan
?
┨Retim y?netimi proje ?devi
┨Retim y?netimi proje ?devi┨Retim y?netimi proje ?devi
┨Retim y?netimi proje ?devi
Habip TAYLAN
?
S?STEM ?STERLER?N?N TESP?T?
S?STEM ?STERLER?N?N TESP?T? S?STEM ?STERLER?N?N TESP?T?
S?STEM ?STERLER?N?N TESP?T?
cgoze
?
Sistem ?sterlerinin Tespiti ve Modellenmesi
Sistem ?sterlerinin Tespiti ve ModellenmesiSistem ?sterlerinin Tespiti ve Modellenmesi
Sistem ?sterlerinin Tespiti ve Modellenmesi
cgoze
?
Sistem isterlerinin tespiti ve modellenmesi
Sistem isterlerinin tespiti ve modellenmesiSistem isterlerinin tespiti ve modellenmesi
Sistem isterlerinin tespiti ve modellenmesi
Sevgi Belder Eren
?
Erp sisteminde dikkat edilecek konular
Erp sisteminde dikkat edilecek konularErp sisteminde dikkat edilecek konular
Erp sisteminde dikkat edilecek konular
U?ur Meta
?
Kurumsal Bilgi Portali - Knowledge Management
Kurumsal Bilgi Portali - Knowledge ManagementKurumsal Bilgi Portali - Knowledge Management
Kurumsal Bilgi Portali - Knowledge Management
Sevket Akpinar
?
Trex Erp Ii Sat?Nalma Ve B┨T?E Y?Netimi
Trex Erp Ii Sat?Nalma Ve B┨T?E Y?NetimiTrex Erp Ii Sat?Nalma Ve B┨T?E Y?Netimi
Trex Erp Ii Sat?Nalma Ve B┨T?E Y?Netimi
赫┨姻界温稼
?
Otomasyon Yat?R?M Analizi
Otomasyon Yat?R?M AnaliziOtomasyon Yat?R?M Analizi
Otomasyon Yat?R?M Analizi
Eren YAMAN
?
End┨Stride Depolama
End┨Stride DepolamaEnd┨Stride Depolama
End┨Stride Depolama
Cafer SALCAN
?
Kurumsal Kaynak Planlama - Muhasebe Mod┨l┨
Kurumsal Kaynak Planlama - Muhasebe Mod┨l┨Kurumsal Kaynak Planlama - Muhasebe Mod┨l┨
Kurumsal Kaynak Planlama - Muhasebe Mod┨l┨
Abdullah Cihan
?
┨Retim y?netimi proje ?devi
┨Retim y?netimi proje ?devi┨Retim y?netimi proje ?devi
┨Retim y?netimi proje ?devi
Habip TAYLAN
?

More from Murat Azimli (6)

ERP Sistemleri Ara?t?rma Projesi Sunumu
ERP Sistemleri Ara?t?rma Projesi SunumuERP Sistemleri Ara?t?rma Projesi Sunumu
ERP Sistemleri Ara?t?rma Projesi Sunumu
Murat Azimli
?
Veri Madencili?i (Data Mining)
Veri Madencili?i (Data Mining)Veri Madencili?i (Data Mining)
Veri Madencili?i (Data Mining)
Murat Azimli
?
KKP (ERP) Proje Raporu
KKP (ERP) Proje RaporuKKP (ERP) Proje Raporu
KKP (ERP) Proje Raporu
Murat Azimli
?
?li?kisel Veritaban? Sistemleri ve NoSQL
?li?kisel Veritaban? Sistemleri ve NoSQL?li?kisel Veritaban? Sistemleri ve NoSQL
?li?kisel Veritaban? Sistemleri ve NoSQL
Murat Azimli
?
Tedarik Zinciri Y?netiminde Bili?im Teknolojileri
Tedarik Zinciri Y?netiminde Bili?im TeknolojileriTedarik Zinciri Y?netiminde Bili?im Teknolojileri
Tedarik Zinciri Y?netiminde Bili?im Teknolojileri
Murat Azimli
?
E-Ticaret ve B2B ?? Modeli
E-Ticaret ve B2B ?? ModeliE-Ticaret ve B2B ?? Modeli
E-Ticaret ve B2B ?? Modeli
Murat Azimli
?
ERP Sistemleri Ara?t?rma Projesi Sunumu
ERP Sistemleri Ara?t?rma Projesi SunumuERP Sistemleri Ara?t?rma Projesi Sunumu
ERP Sistemleri Ara?t?rma Projesi Sunumu
Murat Azimli
?
Veri Madencili?i (Data Mining)
Veri Madencili?i (Data Mining)Veri Madencili?i (Data Mining)
Veri Madencili?i (Data Mining)
Murat Azimli
?
KKP (ERP) Proje Raporu
KKP (ERP) Proje RaporuKKP (ERP) Proje Raporu
KKP (ERP) Proje Raporu
Murat Azimli
?
?li?kisel Veritaban? Sistemleri ve NoSQL
?li?kisel Veritaban? Sistemleri ve NoSQL?li?kisel Veritaban? Sistemleri ve NoSQL
?li?kisel Veritaban? Sistemleri ve NoSQL
Murat Azimli
?
Tedarik Zinciri Y?netiminde Bili?im Teknolojileri
Tedarik Zinciri Y?netiminde Bili?im TeknolojileriTedarik Zinciri Y?netiminde Bili?im Teknolojileri
Tedarik Zinciri Y?netiminde Bili?im Teknolojileri
Murat Azimli
?
E-Ticaret ve B2B ?? Modeli
E-Ticaret ve B2B ?? ModeliE-Ticaret ve B2B ?? Modeli
E-Ticaret ve B2B ?? Modeli
Murat Azimli
?

NYP (OOP) Java Proje Raporu

  • 1. GAZ? ?N?VERS?TES? B?L???M ENST?T?S? B?L???M S?STEMLER? Y?KSEK L?SANS (UZAK) PROGRAMI NESNE Y?NEL?ML? PROGRAMLAMA (NYP) D?NEM PROJES? RAPORU ??RET?M ?YES? : Yrd.Do?.Dr.Hacer KARACAN ??RENC? : Murat AZ?ML? ?UBE C NO : A2 C 108007755
  • 2. 2 ???NDEK?LER 1. G?R?? 3 2. AMA? 3 3. KAPSAM 3 4. KAVRAMSAL TASARIM 4.1 S?STEMDEK? AKT?RLER 4.2 S?STEMDEK? BELGELER 5 4.3 USECASE DIAGRAM 5. 4 6 MANTIKSAL TASARIM 5.1 ACTIVITY DIAGRAMS 5.2 CLASS DIAGRAM 9 5.3 DATA MODEL DIAGRAM 6. 7 10 GEL??T?RME 6.1 PROGRAMLAMA D?L? SE??M? 11 6.2 PROGRAMLAMA ARACI SE??M? (IDE) 11 7. TEST 12 8. DA?ITIM 8.1 GEREKS?N?MLER 8.2 KURULUM 13 8.3 ?ALI?TIRMA 9. 13 15 PROGRAMIN KULLANILMASI 16 10. KAYNAKLAR 10.1 ELEKTRON?K KAYNAKLAR 20 10.2 BASILI KAYNAKLAR 20 11. PROGRAM KAYNAK KODU VE ACIKLAMALAR 21
  • 3. 3 1.G?R?? ?al??anlar? aras?nda fonksiyonel ayr?m yap?larak kurumsalla?m?? veya kurumsalla?ma a?amas?nda olan orta ?l?ekli sistemler (i?letmeler) i?in tasarlanm?? olan ERP Yaz?l?m? Sat?nalma Mod┨l┨ i?leyi?i tasar?m a?amas?nda detayl? olarak a??klanmaya ?al???lm??t?r. Yaz?l?m tasar?m?nda Nesne Y?nelimli Programlama y?ntemi kullan?lm??t?r. ?ncelikle, sistemdeki roller, akt?rler ve bunlar?n fonksiyonlar? tespit edilmi?tir. Daha sonra bu fonksiyonlar aras?ndaki ili?ki belirlenmi? ve ak?? diyagramlar? olu?turulmu?tur. Son olarak, statik veri yap?lar? ve veriler aras? ili?kiler (d?n┨?┨mler) olu?turularak Mant?ksal Tasar?m s┨reci tamamlanm??t?r. 2.AMA? G┨n┨m┨zde orta ve b┨y┨k ?l?ekli i?letmeler, i?letme i?i s┨re?lerin kurulmas?, y?netilmesi, verilerin kay?t alt?na al?narak raporlanmas?n?n ?nemini kavram?? durumdad?r. Bunun i?in bir ?ok i?letme bir ERP (Entireprise Resource Planning- Kurumsal Kaynak Planlama) sistemi kurmu?tur. Bu sayede i?letmeler, s┨re?lerini y?netebilir, bilgiye ve objektif say?sal verilere dayanan kararlar alabilirler. Bu kriterlere dayanarak al?nan kararlar?n do?ru olma olas?l??? ?ok y┨ksektir. Bu do?ru kararlar ile yap?lan faaliyetler sonucunda da ba?ar? ve b┨y┨me ka??n?lmaz olarak gelecektir. 3.KAPSAM Bu d?k┨manda, i?letmedeki s┨re?lerden SATINALMA s┨reci detayl? olarak ve ili?kide oldu?u di?er s┨re?ler ise kaba olarak ele al?nm??t?r. Sat?nalma s┨recinin ?neminin anla??lmas? i?in, ili?kide oldu?u di?er s┨re?lerin de bilinmesi gerekmektedir. ??letmeler, mal veya hizmet ┨retebilmek i?in ?ncelikle sat?nalma yapmak zorundad?rlar. Bir motor par?as? ┨reten i?letmeyi d┨?┨nd┨?┨m┨zde; Motor par?as?n? ┨retmek i?in gerekli olan hammadde ve yard?mc? maddeler sat?n al?nmal?, sonra bu hammaddeler ?e?itli i?lemlere tabi tutularak motor par?as? ┨retilmelidir. Ayn? ?ekilde bir pizza i?letmesini d┨?┨nd┨?┨m┨zde; Pizza ┨retmek i?in ?nce ?e?itli sebzeler, et ┨r┨nleri ve un sat?n al?nmal?, undan hamur yap?lmal? ve di?er malzemelerde hamurun ┨zerine yerle?tirilip f?r?nda pi?irilmelidir. Hatta ┨retilmi? olan pizzan?n da??t?m?n? yapabilmek i?in, daha ?nceden bir motorlu ara? ve pi?irebilmek i?in bir f?r?n sat?n al?nm?? olmal?d?r. ?rneklerden de anla??laca?? ┨zere sat?nalma faaliyeti her t┨rl┨ i?letme i?inde ?nemli bir yere sahiptir. Sat?? faaliyeti nas?l i?letmeye para girmesini sa?l?yor ise sat?nalma faaliyeti de i?letmeden para ??k???n? sa?lamaktad?r. Bundan dolay? i?letme sahipleri, genelde sat?nalma yapmak istemezler. ?retimin devam etmesi i?in zorunlu olan hammadde, yard?mc? madde ve enerji d???nda sat?nalmay? istemezler. Ayr?ca, i?letme ?al??anlar?n?n da asl?nda i?letmeye hizmet satt???n? d┨?┨nebiliriz. ?┨nk┨, i?letme ?al??anlar? ?nceden belirlenmi? bir ┨cret kar??l???nda bilgi ve becerilerini o i?letme i?in kullanmaktad?r. ?nsan ┨retimin bir unsuru oldu?una g?re, ?al??anlar da ┨retimin asli bir unsurudur. Ancak bu temel nokta, ?o?u i?letme sahibi taraf?ndan g?z ard? edilmekte, ?al??anlara gereksiz bir masraf g?z┨yle bak?lmaktad?r. ?al??anlardan hizmet al?m? normal sat?nalma s┨re?leri d???nda i?lemektedir. ??letmelerde bu s┨rece genelde Insan Kaynaklar? (Personel) departmanlar? bakmaktad?r. ERP sistemlerinde ayr? bir mod┨ld┨r. Bu mod┨lde sadece, di?er i?letmelerden yap?lan mal ve hizmet sat?nalma s┨re?leri yer almaktad?r.
  • 4. 4 4.KAVRAMSAL TASARIM Bir i?letmede kurulmak istenen sat?nalma sisteminde minumum d┨zeyde bulunmas? gereken akt?rler, kullan?m durumlar? ve fonksiyonlar a?a??da a??kland??? gibi olmal?d?r. Bu ?gelerden baz?lar? direkt olarak sat?nalma sisteminin bir ?gesi olmay?p, yan sistemlerin ?gesidir. Di?er s┨re?leri i?ine alan bir ERP sistemi mevcut ise bu ?geler di?er sistemler i?erisinde yer alabilir. Ancak, sadece tek ba??na bir sat?nalma sistemi kurulmak istenirse, bu ?geler de sistem i?erisinde yer almal?d?r. 4.1 S?STEMDEK? AKT?RLER a. Sistem Y?neticisi: Sistemde yer alan di?er kullan?c?lar? olu?turur. Sistemde olu?an bilgileri belirli aral?klarla yedekler. Sistemin g┨venli?inden ve kesintisiz olarak ?al??mas?ndan sorumludur. b. Kullan?c?: Sistemde yer alan t┨m kullan?c?lard?r. Sat?nalma departmanlar?nda olabilece?i gibi, di?er departmanlardan da sistemi kullanacak olan ki?ilerdir. (┨retim, planlama, lojistik, sat??, muhasebe, finans vs) Sistemde atanm?? olan yetkiler dahilinde i?lem yaparlar. c. Y?netici: Y?netici sistemde yer alan bir kullan?c?d?r. Ancak, kendi departman?ndaki di?er bir kullan?c?n?n istemi? oldu?u sat?nalma taleplerini onaylama veya ret etme yetkisine sahiptir. Bu durum, i?letmede her ?al??an?n kafas?na g?re gereksiz sat?nalma yapmas?n? ?nlemektedir. Sistemde kilit bir ?neme sahiptir. ??letmenin verimlili?i ve karl?l??? a??s?ndan ?ok ?nemlidir. d. Sat?nalma Departman?: Kullan?c?lar taraf?ndan a??lm?? ve ilgili y?neticiler taraf?ndan onaylanm?? sat?nalma taleplerini inceler. Bu talepleri de?erlendirir ve en uygun bulunan tedarik?ilere sat?nalma sipari?ini iletir. ?lgili tedarik?i sistemde tan?ml? de?ilse tan?mlar. Belirli d?nem aral?klar?nda, tedarik?ilerin performanslar?n? hesaplar. e. Depo: Tedarik?ilerden gelen mallar? teslim al?r. Nitelik ve nicelik olarak do?ruluklar?n? kontrol eder. ?lgili sat?nalma sipari?i ile e?le?tirme yapt?ktan sonra sisteme irsaliye giri?ini yapar. f. Muhasebe: ??letmeye g?nderilen faturalar?n ERP sistemine giri?lerini yapar. Bu giri? s?ras?nda, fatura i?eri?indeki mal ve hizmetlerin firmaya gelip gelmedi?ini kontrol eder. Mal faturas? ise, sistemdeki irsaliye ile faturay? e?le?tirir. g. Finans: Muhasebe taraf?ndan giri?i yap?lan faturalar? kontrol eder. Faturalar?n ?deme g┨nlerini tespit eder ve g┨n┨ geldi?inde ?demeyi ger?ekle?tirir.
  • 5. 5 4.2 S?STEMDEK? BELGELER a. Sat?nalma Talebi: ??letmedeki her t┨rl┨ kullan?c? taraf?ndan a??labilir. Kullan?c?lar, i? g?rebilmek ve/veya i?letmede kullanabilmek i?in gerekli olan her t┨rl┨ ┨r┨n ve hizmet sat?nalmas? i?in bir sat?nalma talebi a?mak zorundad?r. Talep Id, Belge Tarihi, Talep Tarihi, Kullan?c? Id gibi bilgilerden olu?an bir ba?l?k tablosu ile, sat?nal?nmas? istenen mal veya hizmetlerin id leri ve miktarlar?n?n bulundu?u bir detay tablosundan olu?maktad?r. Kullan?c?lar farkl? tarihlerde istedikleri her t┨rl┨ sat?nalma talebi i?in ayr? bir talep belgesi a?mal?d?rlar. E?er kar???k a??l?rsa, sistemde talep takibi zorla??r, ilgili tedarik?ilerin ve sat?nalma departman?n performans? ?l?┨lemez. Tedarik?iden gelen bir mal?n, hangi talebe istinaden geldi?i bulunamaz. Bu durumda, belgeler aras?ndaki ak?? kopacakt?r. b. Sat?nalma Sipari?i: Sadece sat?nalma departman? taraf?ndan a??labilir. Talep belgesindeki gibi ba?l?k tablosu ve ┨r┨n bilgileri olan bir detay tablodan olu?ur. 2 ?ekilde olu?turulabilir. Kullan?c?lar?n olu?turmu? oldu?u sat?nalma talep belgelerinden direkt olarak olu?turabilir. Yada, herhangi bir talep olmadan, direkt olarak manuel ?ekilde olu?turulabilir. Bu durumda, sat?nalma sipari? belgesi her hangi bir talep belgesini i?aret etmez. Sipari? belgesindeki TalepId de?eri 0 (s?f?r) olacakt?r. c. ?rsaliye: Tedarik?iler taraf?ndan i?letmeye g?nderilen ┨r┨nler ile gelen bir belgedir. Ticari mal sevkiyatlar?nda bulunmas? zorunludur. Ta??nan mallar?n isimleri ve miktarlar? yaz?lmaktad?r. ??letmeye gelen mallar depo sorumlusu taraf?ndan kontrol edilir. ?rsaliye ┨zerinde yazan bilgilerin do?rulu?u teyid edildikten sonra sisteme giri?i yap?l?r. ??letmeye gelen mallar, sisteme irsaliyenin girilmesiyle sistemsel olarak da stokla??r. Gelen irsaliyenin sipari? belgesi bulunarak e?le?tirilir. B?ylece, ilgili sat?nalma sipari?i de kapat?lm?? olur. (miktar tam ise) Bundan dolay?, irsaliyelerin ┨zerine ilgili sat?nalma sipari? numaras?n?n yaz?lmas? operat?rlere h?z kazand?rmakta, bo? yere ve hatal? veri giri?ini engellemektedir. Sat?nalma sipari?i olmadan i?letmeye gelen mallar?n kabul┨ depocu taraf?ndan yap?lmaz. Mutlaka bir ┨st y?neticinin onay? al?narak mal kab┨l┨ yap?lmal?d?r. Bu durumda da, mutlaka sat?nalma sipari?i a??lmal?d?r. Ba?l?k ve detay tablosu olmak ┨zere 2 tablodan olu?ur. d. Fatura: ??letmelerde ticari i?lemler fatura ile yap?lmaktad?r. Bir i?letme di?er i?letmeden mal ve hizmet kar??l??? para talep ediyorsa, ?nceden mutlaka fatura kesilmi? olmas? gerekmektedir. Her t┨rl┨ ticari bor? ve alacak faturaya dayanmak zorundad?r. Fatura ┨zerinde, kesilen firma ┨nvan?, adresi, vergi dairesi, vergi numaras?, ilgili mal ve hizmetlerin a??klamalar?, br┨t tutarlar?, iskonto tutarlar?, vergi tutarlar? ve ?deme tarihi (vade) gibi bilgileri bulunmaktad?r. Fatura i?eri?indeki ┨r┨nlerin, firmaya ger?ekten gelip gelmedi?i sorgulanmal?d?r. (irsaliye kontrol┨) Ayn? mallar?n birden fazla kez faturalanmamas? i?in, fatura ┨zerlerinde irsaliye numaras? mutlaka yazmal?d?r. Son y?llarda irsaliyeli fatura uygulamalar? yayg?nla?m??t?r. Bu gibi kontrollere gerek kalmam??t?r. e.Odeme: Muhasebe departman? taraf?ndan sisteme sorunsuz olarak girilmi? ve ?deme onay? verilmi? olan faturalar?n tutarlar? finans departman? taraf?ndan tedarik?iye (alacakl? firmaya) ?e?itli y?ntemler ile ?denir. (nakit, ?ek, havale, eft vs)
  • 8. 8
  • 10. 10 5.3 DATA MODEL DIAGRAM
  • 11. 11 6. GEL??T?RME 6.1 PROGRAMLAMA D?L? SE??M? Tasarlanan sistemin geli?tirilmesi i?in nesne y?nelimli programlama dilleri ara?t?r?lm??t?r. Bu ara?t?rmalar sonucunda Java programlama dilinde geli?tirme yap?lmas?na karar verilmi?tir. Bu kararda, ge?mi?te ya?anm?? olan programlama deneyimleri ve ders kapsam?nda ??renilen yeni bilgiler etkili olmu?tur. Bu etken fakt?rlerden baz?lar? ?unlard?r: a. b. c. d. e. f. g. Ders kapsam?nda anlat?lan Nesne Y?nelimli Programlama kavram ve tekniklerinin Java ile ?rneklenmesi. Java nesne y?nelimli bir programlama dili oldu?undan, her ?eyin bir nesneden ibaret olmas?. Daha tasar?m a?amas?nda nesne tabanl? d┨?┨nmeye zorlamas?. Java ile geli?tirilmi? yaz?l?mlar?n farkl? platformlarda (windows, unix, linux vs) ve farkl? cihazlarda (pocked pc, pda, vs) ?al??abilmesi. Son y?llarda geli?en bili?im teknolojileri ve yayg?nla?an internet (network) ortamlar? sayesinde, yaz?l?mlar?n ?ok katmanl? ve sunucu tarafl? tasarlanmas?. Java n?n istemci taraf?nda oldu?u kadar sunucu taraf?nda da ?ok g┨?l┨ y?nlerinin bulunmas?. Sunucu taraf?nda ?al??an yaz?l?mlarda en ?nemli hususlardan biri de kaynak y?netimi ve kararl?l?kt?r.(kesintisiz ?al??ma) ?stemcilerden ayn? anda gelen istekler ?ok iyi y?netilmeli ve ortaya ??kabilecek hatalar kontrol alt?na al?nmal?d?r. Java n?n bu ihtiyaca ?ok iyi cevap vermesi. Javan?n bir programlama dili olmas? yan?nda, bir geli?tirme ve teknoloji platformu haline gelerek bir end┨stri standard?na d?n┨?mesi. Ge?mi?te ya?anan programlama deneyimlerimde Java platformunun bulunmamas?. Java teknojilerinde deneyim kazan?lmak istenmesi. 6.2 PROGRAMLAMA ARACI SE??M? (IDE) T┨m programlama dillerinde, yaz?m kurallar? (syntax) s?k? bir disipline ba?l?d?r. Yaz?l?m geli?tiriler bu kurallara uymak zorundad?rlar. Ayr?ca programlama dillerinde binlerce komut bulunmaktad?r. B┨t┨n bu komutlar?n yaz?l??lar?n? ve kullan?mlar?n? ezberlemek m┨mk┨n de?ildir. Bu zorluklardan dolay? genel olarak ^t┨mle?ik geli?tirme ortam? ̄ ad? verilen yaz?l?mlar yap?lm??t?r. (IDE-Integrated Development Environment) Son y?llarda bir ?ok programlama dili i?in g┨?l┨ IDE yaz?l?mlar? ortaya ??km??t?r. IDE ara?lar?nda bulunan genel ?zellikler ve yaz?l?m geli?tiricilere sa?lad??? faydalardan baz?lar? ?unlard?r: a. b. c. d. e. f. g. Kullan?c? aray┨zlerinin ve baz? soyut nesne tasar?mlar?n?n (veritaban? ba?lant?lar? vs) g?rsel olarak kolayl?kla yap?labilmesi. (s┨r┨kle-b?rak) G?rsel olarak yap?lan tasar?m kodlar?n?n otomatik olarak olu?turulmas?. S?k kullan?lan ve kurallar? belli olan kodlar?n otomatik olu?turulmas?. (re-factor) S?zdizim ve baz? basit mant?k hatalar?n?n IDE taraf?ndan yakalanabilmesi. Programa durma noktalar? eklenerek olaylar?n ve de?i?kenlerin izlenebilmesi. (watch-debug) Birden fazla program?n yer ald??? b┨y┨k yaz?l?m projelerinde, programlar?n bir arada tutulabilmesi, s┨r┨m denetimlerinin yap?labilmesi. Programlar?n kolayl?kla derlenmesi ve da??t?m dosyalar?n?n haz?rlanmas?. (run time files) Java programlama dili i?in ?ok say?da t┨mle?ik geli?tirme ortam? bulunmaktad?r. (NetBeans, Eclipse, JBuilder, JDeveloper vs) Her IDE nin di?erlerine g?re zay?f veya g┨?l┨ oldu?u y?nler bulunmaktad?r. Bu durumun Java i?in avantajlar? ve dezavantajlar? bulunmaktad?r. Java ile yaz?l?m geli?tiren bir ?ok firma farkl? IDE ler kulland??? i?in, bu IDE ortamlar?n?n da ?ok iyi ??renilmesi gerekmektedir. Yap?lan incelemeler sonucunda, bu projede NetBeans 6.9 IDE sinin kullan?lmas?na karar verilmi?tir.
  • 12. 12 7. TEST Geli?tirilen program ?e?itli Windows i?letim sistemlerinde ve OpenSuse Linux i?letim sisteminde ?al??t?r?lm??, t┨m g?revlerini yerine getirdi?i ve hata yakalama fonksiyonlar?n?n sorunsuz ?al??t??? g?r┨lm┨?t┨r. Bu i?letim sistemi s┨r┨mleri a?a??daki gibidir: Windows: - Windows XP Windows Vista Windows 7 Windows Server 2003 Windows Server 2008 Linux: - OpenSuse Linux 11
  • 13. 13 8. DA?ITIM 8.1 GEREKS?N?MLER Program Java dilinde geli?tirilmi?tir. Java ile geli?tirilen programlar, derlendikten sonra hemen makina diline ?evrilmezler. Bundan dolay? Java platform ba??ms?z olmaktad?r. ?┨nk┨, derleme an?nda program?n hangi i?letim sisteminde ?al??t?r?laca?? bilinmemektedir ve b?yle bir ?n ko?ul yoktur. Derleme (compile) i?leminde, program kodu ^byte code ̄ ad? verilen ara bir koda ?evrilmektedir. Byte code a d?n┨?m┨? olan program, ?al??ma an?nda makina diline ?evrilir. Bu ?evrimi yapacak olan ba?ka bir programa daha ihtiyac duyulmaktad?r. Bu programlara JRE (Java Runtime Environment) ad? verilmektedir. Bundan dolay? program?n ?al??t??? t┨m i?letim sistemlerinde JRE 1.6 kurulmu? olmal?d?r. Ayr?ca, program bir veritaban? uygulamas? oldu?undan ?al??t??? i?letim sisteminde Microsoft Access Database Driver kurulmu? olmal?d?r. (ODBC kayna?? tan?mlayabilmek i?in) Java Runtime s┨r┨m┨; http://www.oracle.com/technetwork/java/javase/downloads/index.html Microsoft Database Driver; http://www.microsoft.com/downloads/en/resultsForCategory.aspx?displaylang=en&categoryId=3&st ype=n_dc Linklerinden download edilebilir. JRE 1.6 n?n kurulumu ve i?letim sistemlerine g?re gerekli minumum bilgisayar konfigurasyonlar? kendi teknik d?k┨manlar?nda bulunmaktad?r. 8.2 KURULUM 8.2.1 Program dosyalar?: Program, MyApp4.jar, MyApp4Src.rar ve MYDB.MDB olmak ┨zere 3 dosyadan olu?maktad?r: MyApp4.jar dosyas? program?n ana runtime dosyas?d?r. Programda bulunan derlenmi? s?n?flar bu dosya i?erisinde bulunmaktad?r. (*.class) MyApp4Src.rar dosyas?nda, program?n kaynak kodlar? bulunmaktad?r. Olu?turulan t┨m s?n?flar i?in kaynak kod dosyas? bulunmaktad?r. (*.java) Program?n ?al??mas? i?in gerekli de?ildir. Kaynak kodlar?n online olarak incelenebilmesi amac?yla eklenmi?tir. MYDB.MDB dosyas?, program?n kulland??? MS ACCESS format?nda veritaban? dosyas?d?r. 8.2.2 Program?n Kurulmas? ve Ayarlar?n yap?lmas?: 1. Program?n kurulmas? i?in herhangi bir setup program? yoktur. Programdaki 3 dosya ayn? klas?re kopyalanmal?d?r. 2. MYDB.MDB veritaban? dosyas?n?n ODBC ayarlar? yap?larak i?letim sistemi ┨zerinde bir ^veri kayna?? ̄ olu?turulmal?d?r. Olu?turulan veri kayna??n?n ad? ^MYDB ̄ olmal?d?r. (tamam? b┨y┨k harf) Program ?al??mas? s?ras?nda, ODBC ┨zerinde MYDB isimli veri kayna??na ba?lanmaya ?al??acakt?r. ODBC ayarlar?n?n yap?lmas? a?a??daki ekran g?r┨nt┨lerinde bulunmaktad?r.
  • 14. 14 Denetim Masas? -> Y?netimsel Ara?lar -> Veri Kaynaklar? (ODBC) Sistem DSN sekmesinde Ekle -> Veri Kayna?? Ad?: MYDB Veritaban? Se? -> MYDB.MDB dosyas?n? kopyalad???n?z klas?r.
  • 15. 15 8.3 ?ALI?TIRMA ??letim sisteminizde jar uzant?l? dosyalar java.exe dosyas? ile ili?kilendirilmi? ise, MyApp4.jar dosyas?na ?ift t?klanarak program ?al??t?r?labilir. ?li?kili de?ilse, i?letim sisteminde komut sat?r? moduna ge?erek a?a??daki ekranda g?r┨nd┨?┨ ?ekilde ?al??t?r?labilir. Ayr?ca, JRE dosyalar?ndan java.exe dosyas?n?n i?letim sistemi ortam de?i?kenlerinde yolunun tan?mlanm?? olmas? gerekir. (path) Tan?ml? de?ilse, java.exe dosyas?n?n bulunamad???n? belirten bir uyar? mesaj? al?n?r. Bu durumda, java.exe dosyas?n?n yolu i?letim sisteminde tan?mlanmal? veya java.exe dosyas?n?n bulundu?u klas?re ge?ilerek ?al??t?rma komutu verilmelidir. Komut sat?r?ndaki MyApp4.jar dosyas?n?n tam yolu da yaz?lmal?d?r. JRE 1.6 s┨r┨m┨ (minumum) kurulmu?, ODBC ayar? yap?larak MYDB.MDB veritaban?n? g?steren bir veri kayna?? tan?mlanm?? ise program ?al??acak ve a?a??daki ekran g?r┨nt┨s┨ gelecektir.
  • 16. 16 9.PROGRAMIN KULLANILMASI Program 2 b?l┨m olarak tasarlanm??t?r. Bir b?l┨mde program ?al???rken kullan?lacak olan sabit tan?mlar yap?lmaktad?r. ?rnek; ?r┨n Tan?mlar?, Tedarik?i Tan?mlar?, Departman Tan?mlar?, Kullan?c? Tan?mlar?. Di?er b?l┨mde ise, s┨rekli olarak yap?lacak i?lemler almaktad?r. Bu b?l┨mden girilen bilgiler, hareket verisi olmaktad?r. ?rnek; Talep Bilgileri, Sipari? Bilgileri, ?rsaliye Bilgileri, Fatura Bilgileri vs. Programda ilk ?nce gerekli sabit tan?mlar?n yap?lmas? gerekmektedir. Bu tan?mlar ger?ekte birer veri nesnesi dir. ??lemler men┨s┨ndeki bilgilerde, bu nesneler aras?nda (zaman boyutunda) ili?ki kurulmas?n? sa?layan veri nesneleridir. Kullan?c? grafik aray┨zleri (GUI) basit, sade ve kullan??l? ?ekilde yap?lmaya ?al???lm??t?r. Kullan?c?n?n veri giri?i yapmas?n? sa?layan bir veri giri? formu ve girilen verilerin listelenmesini, bulunmas?n? ve silinmesini sa?layan liste (browse) formu yap?lm??t?r. Yap?lan i?lem sonu?lar?nda, kullan?c?ya mutlaka mesaj verilmi?tir. ?rne?in; Kay?t Yap?ld?, Hata Olu?tu vs vs..... Ayr?ca, hata denetimi maximum seviyede yap?lmaya ?al???lm??, meydana gelen hatalar kontrol alt?na al?narak program?n kararl?l?kla ?al??mas?n? s┨rd┨rmesi sa?lanm??t?r. ?rnek ekran g?r┨nt┨leri a?a??dad?r:
  • 17. 17 Kay?t ba?ar?l? ger?ekle?ti?inde bilgi mesaj? g?sterilmi?tir. Eksik bilgi ile kay?t yap?ld???nda veya ?ak??ma meydana geldi?inde uyar? mesajlar? g?sterilmi?tir.
  • 18. 18 Yenile butonuna t?kland???nda veriler tablodan grid e geliyor. Bul butonuna t?kland???nda, aranan ID no soruluyor.
  • 19. 19 Sil butonuna t?kland???nda, silincek ID no soruluyor.
  • 20. 20 10.KAYNAKLAR 10.1 ELEKTRONIK KAYNAKLAR 1. Gazi ?niversitesi Bili?im Enstit┨s┨ Online NYP Ders ??erikleri 2. Gazi ?niversitesi Bili?im Enstit┨s┨ ?rg┨n ??renim NYP Ders Slaytlar? 3. http://www.uml.org/ 4. http://www.agilemodeling.com/ 5. http://www.agiledata.org/ 6. http://atlas.kennesaw.edu/~dbraun/csis4650/A&D/index.htm 7. http://www-01.ibm.com/software/rational/uml/ 8. http://msdn.microsoft.com/en-us/library/ff604964%28office.14%29.aspx 9. http://www.oracle.com/technetwork/java/index.html 10. http://netbeans.org/ 10.2 BASILI KAYNAKLAR 1. Nesne Odakl? Analiz ve Modelleme, Yrd.Do?.Dr. ?brahim ED?N, 2009 2. Sistem Analizi ve Tasar?m?, Prof.Dr. Oya KALIPSIZ, Ay?e BUHARALI, G?ksel B?R?C?K, 2008 (2.Bas?m) 3. UML ile Nesne Tabanl? ??z┨mleme ve Tasar?m, Bora G?NG?REN, 2009 4. JAVA Programlama Dili Yaz?l?m Tasar?m?, Altu? B. ALTINTA?, 2010 5. Java ile Programlama ve Veri Yap?lar?, B┨lent ?OBANO?LU, 2010 (2.Bas?m) 6. Java Uygulamalar?, Murat ?nan, 2007 7. Teach Yourself JAVA in 21 Days, Laura LEMAY, Charles L. PERKINS, 1996
  • 21. 21 11.PROGRAM KAYNAK KODU VE ACIKLAMALAR Frameler ┨zerindeki nesnelerin tasar?m kodlar? ?ok uzun ve basit olduklar?ndan dolay? a?a??da yer almamaktad?r. Okunabilirli?i art?rmak i?in sadece metotlar al?nm??t?r. Tasar?m nesnelerini olu?turan initComponents() metodu kurucu metotlardan ?a?r?lmaktad?r. Ayr?ca, veri giri? s?n?flar?ndan sadece KullaniciJFrame s?n?f?n?n kodlar? yer almaktad?r. ?┨nk┨ di?er s?n?flar ile ayn? metotlara sahiptir sadece veri yap?s? de?i?mektedir. Yaz?l?m?n t┨m kodlar?, ?al??t?r?labilir jar dosyas? ile birlikte bulunmaktad?r. Program ba?lang?c?nda Main s?n?f?, myMenuJFrame s?n?f?n? olu?turmakta ve men┨ formunu g?r┨n┨r yapmaktad?r. myMenuJFrame s?n?f? i?erisinde de bir menu ve i?lerinde men┨ se?enekleri bulunmaktad?r. (menuItem) Kullan?c?n?n t?klad??? se?enek olay? yakalanarak ilgili form ?a?r?lmakta ve g?r┨n┨r hale getirilmektedir. (KullaniciJFrame, UrunJFrame, DepartmanJFrame, TedarikciJFrame) Fiziki veritaban?n? temsil eden Veritabani isimli bir s?n?f olu?turulmu?tur. T┨m veritaban? i?lemleri bu s?n?f arac?l??? ile y┨r┨t┨lmektedir. Baglan(), baglantiKapat(), calistirSorgu(), olusturKayitSet() isimli metotlar? bulunmaktad?r. S?n?f?n, ResultSet tipindeki kayitSet ?zelli?i public olarak tan?mland?. ?┨nk┨, sorgu sonucunda olu?an kay?t setine d??ar?dan eri?ilebilmesi gerekmektedir. Di?er ?zellikleri private olarak tan?mlanm??t?r. Bu s?n?f, veritaban? operasyonlar?n? merkezi bir hale getirmektedir. Veritaban? tipi, s┨r┨c┨s┨ veya adresi de?i?ti?inde sadece bu s?n?ftaki baglan() metodunun de?i?tirilmesi yeterli olmaktad?r. Ayr?ca, kullan?c? aray┨z s?n?flar? ve veri s?n?flar? i?erisinde herhangi bir sql komutu olmad???ndan java.sql paketinin import edilmesine gerek kalmam??t?r. Veritaban? ┨zerindeki tablolar? temsil eden veri s?n?flar? olu?turulmu?tur. Kullanici, Urun, Departman ve Tedarikci. Her bir s?n?f?n yap?s? temsil etti?i tablo yap?s? ile ayn?d?r. S?n?f?n t┨m ?zellikleri saklanm??t?r. Ancak public eri?imde olan set ve get metotlar? ile eri?ilebilir. Her veri s?n?f?nda, kaydet() ve sil() metotlar? bulunmaktad?r. Ayr?ca, veri s?n?f?n?n kurucu metodunda veritaban? ba?lant?s? a??lm??, final metodunda veritaban? ba?lant?s? kapat?lm??t?r. Aray┨zde yap?lan i?lem ise, form nesnelerindeki de?erlerin elde edilerek, veri s?n?f? nesnesine aktar?lmas? sonra ilgili metodun ?a?r?lmas?ndan ibaretttir. Main.java / @author mazimli / /* ** Ana men┨y┨ olu?turur ve g?sterir ***/ package myapp4; public class Main { private static MenuJFrame myMenuJFrame; public static void main(String[] args) { myMenuJFrame = new MenuJFrame(); myMenuJFrame.setVisible(true); myMenuJFrame.setBounds(50, 50, 640, 480); } } MenuJFrame.java / @author mazimli **/ /*** Men┨den se?ilen se?eneklere ait formlar? g?sterir ***/ package myapp4; public class MenuJFrame extends javax.swing.JFrame {
  • 22. 22 private static TedarikciJFrame myTedarikciJFrame; private static UrunJFrame myUrunJFrame; private static DepartmanJFrame myDepartmanJFrame; private static KullaniciJFrame myKullaniciJFrame; private static HakkindaJFrame myHakkindaJFrame; public MenuJFrame() { initComponents(); } @SuppressWarnings("unchecked") //--KULLANICI TANIMLARI---------------------------------------------------private void jMenuItem1ActionPerformed(java.awt.event.ActionEvent evt) { myKullaniciJFrame = new KullaniciJFrame(); myKullaniciJFrame.setVisible(true); myKullaniciJFrame.setBounds(100, 100, 750, 500); } //--KAPAT------------------------------------------------------------------private void jMenuItem2ActionPerformed(java.awt.event.ActionEvent evt) { System.exit(0); } //--HAKKINDA------------------------------------------------------------private void jMenuItem11ActionPerformed(java.awt.event.ActionEvent evt) { myHakkindaJFrame = new HakkindaJFrame(); myHakkindaJFrame.setVisible(true); myHakkindaJFrame.setBounds(150, 150, 450, 150); } //--DEPARTMAN TANIMLARI----------------------------------------------------private void jMenuItem3ActionPerformed(java.awt.event.ActionEvent evt) { myDepartmanJFrame = new DepartmanJFrame(); myDepartmanJFrame.setVisible(true); myDepartmanJFrame.setBounds(100, 100, 640, 480); } //--URUN TANIMLARI---------------------------------------------------------private void jMenuItem10ActionPerformed(java.awt.event.ActionEvent evt) { myUrunJFrame = new UrunJFrame(); myUrunJFrame.setVisible(true); myUrunJFrame.setBounds(100, 100, 750, 500); } //--TEDARIKCI TANIMLARI----------------------------------------------------private void jMenuItem4ActionPerformed(java.awt.event.ActionEvent evt) { myTedarikciJFrame = new TedarikciJFrame(); myTedarikciJFrame.setVisible(true); myTedarikciJFrame.setBounds(100, 100, 750, 550); }
  • 23. 23 //--MAIN METOT--------------------------------------------------------------public static void main(String args[]) { java.awt.EventQueue.invokeLater(new Runnable() { public void run() { new MenuJFrame().setVisible(true); } }); } } Veritabani.java /*** @author mazimli ****/ /*** Veritaban? s?n?f?d?r. Veritaban? i?lemlerini ger?ekle?tirir. ****/ package myapp4; import java.sql.*; import javax.swing.JOptionPane; public class Veritabani { private Connection baglanti; private Statement sorgu; public ResultSet kayitSet; public boolean baglan(){ boolean sonuc = false; try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); baglanti = DriverManager.getConnection("jdbc:odbc:MYDB"); sonuc = true; } catch (Exception e) { JOptionPane.showMessageDialog(null,e.getMessage(),"!!! HATA OLUSTU !!!",0); sonuc = false; } return sonuc; } public boolean olusturKayitSet(String sqlText){ boolean sonuc = false; try{ sorgu = baglanti.createStatement(); kayitSet = sorgu.executeQuery(sqlText); sonuc = true; } catch (Exception e) { JOptionPane.showMessageDialog(null,e.getMessage(),"!!! HATA OLUSTU !!!",0); sonuc = false; } return(sonuc);
  • 24. 24 } public boolean calistirSorgu(String sqlText){ boolean sonuc = false; try{ sorgu = baglanti.createStatement(); sorgu.executeUpdate(sqlText); sonuc = true; } catch (Exception e) { JOptionPane.showMessageDialog(null,e.getMessage(),"!!! HATA OLUSTU !!!",0); sonuc = false; } return(sonuc); } public void baglantiKapat(){ try{ baglanti.close(); } catch (Exception e) { JOptionPane.showMessageDialog(null,e.getMessage(),"!!! HATA OLUSTU !!!",0); } } } Kullanici.java /**** @author mazimli ****/ /*** Kullanici veri yap? s?n?f?. KULLANICI tablosuna kar??l?k gelir.***/ package myapp4; import javax.swing.JOptionPane; public class Kullanici { private int id; private String ad; private String soyad; private String departmanId; private int yonetici; private int admin; private int aktif; private String sifre; private Veritabani myDb; private boolean baglantiVar; private boolean sonuc; public int getId() { return id; }
  • 25. 25 public void setId(int id) { this.id = id; } public String getAd() { return ad; } public void setAd(String ad) { this.ad = ad; } public String getSoyad() { return soyad; } public void setSoyad(String soyad) { this.soyad = soyad; } public String getDepartmanId() { return departmanId; } public void setDepartmanId(String departmanId) { this.departmanId = departmanId; } public int getYonetici() { return yonetici; } public void setYonetici(int yonetici) { this.yonetici = yonetici; } public int getAdmin() { return admin; } public void setAdmin(int admin) { this.admin = admin; } public int getAktif() { return aktif; } public void setAktif(int aktif) { this.aktif = aktif;
  • 26. 26 } public String getSifre() { return sifre; } public void setSifre(String sifre) { this.sifre = sifre; } //--KURUCU METOT: VERITABANI SURUCUSUNU YUKLER VE BAGLANTIYI KURAR... public Kullanici(){ myDb = new Veritabani(); baglantiVar = myDb.baglan(); } //--YOK EDICI METOT: BAGLANTIYI KESER, VERITABANI NESNESINI YOK EDER... @Override public void finalize() throws Throwable{ myDb.baglantiKapat(); super.finalize(); } public void kaydet(){ if (baglantiVar == true) { sonuc = myDb.calistirSorgu("INSERT INTO KULLANICI (ID,AD,SOYAD,DEPARTMANID,YONETICI,ADMIN,AKTIF,SIFRE) VALUES (" + id + ",'" + ad + "','" + soyad + "'," + departmanId + "," + yonetici + "," + admin + "," + aktif + ",'" + sifre + "')"); if (sonuc == true) { JOptionPane.showMessageDialog(null,"Kayit Yapildi...nnId: " + id,"B i l g i",1); } } } public void sil(){ if (baglantiVar == true) { sonuc = myDb.calistirSorgu("DELETE FROM KULLANICI WHERE ID=" + id); if (sonuc == true) { JOptionPane.showMessageDialog(null,"Kayit Silindi...nnId: " + id,"B i l g i",1); } } } } KullaniciJFrame.java /* @author mazimli */ /*** *** Kullan?c? tan?mlar? form s?n?f? / package myapp4;
  • 27. 27 import java.sql.SQLException; import java.util.logging.Level; import java.util.logging.Logger; import javax.swing.JOptionPane; import javax.swing.table.DefaultTableModel; public class KullaniciJFrame extends javax.swing.JFrame { private Veritabani myDb; private boolean sonuc; /** Creates new form KullaniciJFrame */ public KullaniciJFrame() { initComponents(); } @SuppressWarnings("unchecked") //--KAPAT----------------------------------------------------------------private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) { }//GEN-LAST:event_jButton3ActionPerformed this.dispose(); //--TEMIZLE--------------------------------------------------------------private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) { jTextField1.setText(""); jTextField2.setText(""); jTextField3.setText(""); jTextField4.setText(""); jPasswordField1.setText(""); } //--KAYDET---------------------------------------------------------------private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { Kullanici myKullanici = new Kullanici(); try { myKullanici.setId(Integer.parseInt(jTextField1.getText())); myKullanici.setAd(jTextField2.getText()); myKullanici.setSoyad(jTextField3.getText()); myKullanici.setDepartmanId(jTextField4.getText()); myKullanici.setYonetici(jComboBox1.getSelectedIndex()); myKullanici.setAdmin(jComboBox2.getSelectedIndex()); myKullanici.setAktif(jComboBox3.getSelectedIndex()); myKullanici.setSifre(jPasswordField1.getText()); myKullanici.kaydet(); } catch (Exception e) { JOptionPane.showMessageDialog(null,e.getMessage(),"!!! HATA OLUSTU !!!",0); } finally {
  • 28. 28 myKullanici = null; } } //--GRID TABLO ICI YENILENIYOR---------------------------private void yenile(String prmId) throws SQLException{ int i = 0; int j = 0; int kayitSayi = 0; DefaultTableModel myModel; myModel = (DefaultTableModel) jTable1.getModel(); j = myModel.getRowCount(); for (i = 0; i < j; i++ ){ //-----grid tablo ici temizleniyor... myModel.removeRow(0); } i = 0; myDb = new Veritabani(); sonuc = myDb.baglan(); if (sonuc == true) { sonuc = myDb.olusturKayitSet("SELECT COUNT(*) AS ROWCOUNT FROM KULLANICI " + prmId); myDb.kayitSet.next(); kayitSayi = myDb.kayitSet.getInt("ROWCOUNT")-1; jProgressBar1.setMaximum(kayitSayi); sonuc = myDb.olusturKayitSet("SELECT * FROM KULLANICI " + prmId + " ORDER BY ID"); } try { while (myDb.kayitSet.next()) { myModel.addRow(new Object[]{myDb.kayitSet.getString("ID"),myDb.kayitSet.getString("AD"),myDb.kayitSet.getString("SOYA D"),myDb.kayitSet.getString("DEPARTMANID"),myDb.kayitSet.getString("YONETICI"),myDb.kayitSet.ge tString("ADMIN"),myDb.kayitSet.getString("AKTIF")}); jProgressBar1.setValue(i); i++; } } catch (SQLException ex) { Logger.getLogger(KullaniciJFrame.class.getName()).log(Level.SEVERE, null, ex); } myDb.baglantiKapat(); myDb = null; } //--YENILE---------------------------------------------------------------private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {
  • 29. 29 try { yenile(""); } catch (SQLException ex) { Logger.getLogger(KullaniciJFrame.class.getName()).log(Level.SEVERE, null, ex); } } //--BUL------------------------------------------------------------------private void jButton5ActionPerformed(java.awt.event.ActionEvent evt) { String id; id = JOptionPane.showInputDialog(null,"[Kullanici Bul]nnID Giriniz:",null); if (id != null) { try { yenile("WHERE ID=" + id); } catch (SQLException ex) { Logger.getLogger(KullaniciJFrame.class.getName()).log(Level.SEVERE, null, ex); } } } //--SIL------------------------------------------------------------------private void jButton6ActionPerformed(java.awt.event.ActionEvent evt) {//GENFIRST:event_jButton6ActionPerformed String id; id = JOptionPane.showInputDialog(null,"[Kullanici Sil]nnID Giriniz:",null); if (id != null) { Kullanici myKullanici = new Kullanici(); try { myKullanici.setId(Integer.parseInt(id)); myKullanici.sil(); yenile(""); } catch (Exception ex) { Logger.getLogger(KullaniciJFrame.class.getName()).log(Level.SEVERE, null, ex); } finally { myKullanici = null; } } } public static void main(String args[]) { java.awt.EventQueue.invokeLater(new Runnable() { public void run() { new KullaniciJFrame().setVisible(true); } }); }
  • 30. 30 }