Java ile MySQL bağlantısı kurmak için MySQL JDBC Driver kütüphanesine
ihtiyacımız vardır.Bu kütüphane Netbeans ile beraber gömülü olarak gelir.Bu
kütüphaneyi projemize ekledikten sonra bağlantı aşağıda ki gibi kurulur.
public class JavaMySQL {
static
Connection con = null;
public
static void main(String[] args) {
try
{
Class.forName("com.mysql.jdbc.Driver").newInstance();
con
= (Connection) DriverManager.getConnection("jdbc:mysql://localhost:3307",
"root",
"root");
if(!con.isClosed()){
System.out.println("Veritabanına bağlanıldı!");
}
} catch
(Exception e) {
e.printStackTrace();
}
}
}
Bu işlemi kendimize has bir kütüphane yazarak da yapabiliriz. Bu takdirde
her defasında bu kodları yazmadan bir Connection nesnesi ve baglan()
metodu ile MySQL veritabanına bağlanılabilir.Örnekde veritabanına
bağlanmak için MySQLBaglantiBean classı ile baglan() metodu
kullanılmıştır.
Aşağıda ki örnek de girilen değerler veritabanına kaydedilip daha sonra h:dataTable
componenti ile listelenmektedir. Liste elemanının yanında ki Sil butonu ile
listeden dolayısıyla veritabanından eleman silinebilmektedir.
Bu web uygulamasının önyüzü aşağıda ki gibi kodlanır.
index.xhtml
<h:body>
<h:form>
<h:panelGrid columns="3" border="0">
<h:outputText value="Personel adı"/>
<h:inputText value="#{kmb.personelad}"
size="25" required="true"
requiredMessage="Lütfen personel adını giriniz!"
id="personeladi"/>
<h:message for="personeladi"
style="color: red"/>
<h:outputText value="Personel soyadı"/>
<h:inputText value="#{kmb.personelsoyad}"
size="25" required="true"
requiredMessage="Lütfen personel soyadını giriniz!"
id="personelsoyadi"/>
<h:message for="personelsoyadi"
style="color: red"/>
<h:outputText value="Personel görevi"/>
<h:inputText value="#{kmb.personelgorev}"
size="25" required="true"
requiredMessage="Lütfen personel görevini giriniz!"
id="personelgorevi"/>
<h:message for="personelgorevi"
style="color: red"/>
<h:outputText value="Personel
e-postası"/>
<h:inputText value="#{kmb.personeleposta}"
size="25" required="true"
requiredMessage="Lütfen personel epostasını giriniz!"
id="personeleposta"/>
<h:message for="personeleposta"
style="color: red"/>
<h:outputText value="Personel maaşı"/>
<h:inputText value="#{kmb.personelmaas}"
size="25" required="true"
requiredMessage="Lütfen personel maaşını giriniz!"
id="personelmaasi"/>
<h:message for="personelmaasi"
style="color: red"/>
<h:commandButton value="Kaydet"
action="#{kmb.veriEkle}" id="kayit"/>
<h:commandButton value="Temizle"
type="reset"/>
<h:outputText value=""/>
</h:panelGrid>
<h:messages globalOnly="true" style="color: red"/>
</h:form>
<br/>
<h:form>
<h:dataTable
value="#{kmb.liste}" var="l"
border="1" id="tablo">
<h:column>
<f:facet name="header">PERSONEL
ADI</f:facet>
#{l.ad}
</h:column>
<h:column>
<f:facet
name="header">PERSONEL
SOYADI</f:facet>
#{l.soyad}
</h:column>
<h:column>
<f:facet name="header">PERSONEL
E-POSTA</f:facet>
#{l.eposta}
</h:column>
<h:column>
<f:facet name="header">PERSONEL
GÖREVİ</f:facet>
#{l.gorev}
</h:column>
<h:column>
<f:facet name="header">PERSONEL
MAAŞI</f:facet>
#{l.maas}
</h:column>
<h:column>
<f:facet name="header">
SİL
</f:facet>
<h:commandLink action="#{kmb.veriSil(l)}"
value="Sil">
<h:graphicImage url="http://www.777icons.com/libs/basic-vista/delete-icon.gif"
width="20" height="20"/>
</h:commandLink>
</h:column>
</h:dataTable>
</h:form>
</h:body>
Bu sayfanın çıktısı aşağıda ki gibidir.
Gelelim asıl olayın döndüğü yere. ManagedBean'e.Bu
uygulama da veritabanı işlemlerinin yapıldığı yer ManagedBean dir.Bu java
classı aşağıda ki gibidir.
VeritabaniIslemBean.java
private String personelad;
private String personelsoyad;
private String personelgorev;
private String personeleposta;
private String personelmaas;
private MySQLBaglantisi msb
= new MySQLBaglantisi();
private boolean
resultSet, resultSilme;
private static
List<Personel> liste;
public String getPersonelad() {
return personelad;
}
public void setPersonelad(String personelad) {
this.personelad
= personelad;
}
public String getPersonelsoyad() {
return personelsoyad;
}
public void setPersonelsoyad(String personelsoyad)
{
this.personelsoyad
= personelsoyad;
}
public String getPersonelgorev() {
return personelgorev;
}
public void setPersonelgorev(String personelgorev)
{
this.personelgorev
= personelgorev;
}
public String getPersoneleposta() {
return personeleposta;
}
public void setPersoneleposta(String
personeleposta) {
this.personeleposta
= personeleposta;
}
public String getPersonelmaas() {
return personelmaas;
}
public void setPersonelmaas(String personelmaas) {
this.personelmaas
= personelmaas;
}
public List<Personel> getListe() {
msb.baglan();
liste = new
ArrayList<Personel>();
String
sql2 = "SELECT * FROM jsfapp.personel";
try {
PreparedStatement pstmt2 = (PreparedStatement)
msb.getConnection().prepareStatement(sql2);
ResultSet resultSetListe = pstmt2.executeQuery();
while (resultSetListe.next()) {
liste.add(new Personel(resultSetListe.getString(1),
resultSetListe.getString(2), resultSetListe.getString(3),
resultSetListe.getString(4), resultSetListe.getString(5)));
}
} catch (Exception e) {
e.printStackTrace();
}
return liste;
}
public String veriEkle() {
msb.baglan();
String
sonuc = "";
String
sql = "INSERT INTO jsfapp.personel (personelad,personelsoyad,"
+ "personeleposta,personelgorev,personelmaas) VALUES(?,?,?,?,?)";
try {
PreparedStatement pstmt = (PreparedStatement)
msb.getConnection().prepareStatement(sql);
pstmt.setString(1, personelad);
pstmt.setString(2, personelsoyad);
pstmt.setString(3, personeleposta);
pstmt.setString(4, personelgorev);
pstmt.setString(5, personelmaas);
resultSet = pstmt.execute();
} catch (Exception e) {
e.printStackTrace();
}
if (!resultSet) {
sonuc += personelad + " " +
personelsoyad + " kaydedildi.";
FacesContext.getCurrentInstance().addMessage(null,
new FacesMessage(sonuc));
return null;
} else {
sonuc += "Kayıt işlemi başarısız!";
FacesContext.getCurrentInstance().addMessage(null, new
FacesMessage(sonuc));
return null;
}
}
public String veriSil(Personel personel) {
msb.baglan();
String
sonuc = "";
String
sql = "DELETE FROM jsfapp.personel WHERE personelad='" +
personel.getAd() + "' AND personelsoyad='" + personel.getSoyad() +
"'";
try {
PreparedStatement pstmt = (PreparedStatement)
msb.getConnection().prepareStatement(sql);
resultSilme = pstmt.execute();
} catch (Exception e) {
e.printStackTrace();
}
if (!resultSilme) {
sonuc += personel.getAd() + " " + personel.getSoyad() + "
silindi.";
FacesContext.getCurrentInstance().addMessage(null,
new FacesMessage(sonuc));
return null;
} else {
sonuc += "Silme işlemi yapılamadı!";
FacesContext.getCurrentInstance().addMessage(null,
new FacesMessage(sonuc));
return null;
}
}
}
Personel.java
public class
Personel {
private String ad;
private String soyad;
private String eposta;
private String gorev;
private String maas;
public Personel(String ad, String soyad, String
eposta, String gorev, String maas) {
this.ad = ad;
this.soyad =
soyad;
this.eposta =
eposta;
this.gorev =
gorev;
this.maas =
maas;
}
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 getEposta() {
return eposta;
}
public void setEposta(String eposta) {
this.eposta =
eposta;
}
public String getGorev() {
return gorev;
}
public void setGorev(String gorev) {
this.gorev =
gorev;
}
public String getMaas() {
return maas;
}
public void setMaas(String maas) {
this.maas =
maas;
}
}
Sil butonu ile veri silindikten sonra sayfanın
görünümü aşağıda ki gibi olur.
Hiç yorum yok:
Yorum Gönder