Java ile MySQL Veritabanina Baglanmak

Veri Tabani ile ilgili derslerimizin ilkinde java ile MS-SQL baglantisini yapmistik. Bu derste ise java ile mysql baglantisini yapacagiz insallah.

Ilk olarak yapmamiz gereken bilgisayarimiza mysql server kurmak. Kurulum için su dersten yararlanabilirsiniz.

Eger mysql’imizi kurduysak baglanti yapmak için bir veritabani olusturuyoruz.

Benim olusturdugum veritabaninin adi “testdatabase”. Içerisinde bir tane “calisanlar” adinda tablo var; bu tabloda 3 tane sütun var: id, isim, sehir. Siz elbette istediginiz gibi bir tablo olusturabilirsiniz. Tabi bu olusturdugunuz tabloya denemek için veriler eklemeyi unutmuyoruz.

Eger tablomuz da hazirsa sira geldi en önemli adimlardan birine: ODBC Connector hazirlamaya. http://www.mysql.com/downloads/connector/odbc/ adresinden sisteminize uygun olanini indiriniz.

.

Öncelikle zipli olan bu dosyayi bir yere çikariyoruz. Sonra Eclips’i açiyoruz.

  • Yeni bir java projesi açiyoruz.
  • JRE System Library’e sag tiklayip Configure Build Path diyoruz.
mysql and java
  • Karsimiza çikan pencereden Add External JARs seçenegini tikliyoruz.
mysql and java

Buraya kadar her sey tamamsa isin yarisindan fazlasini yaptik demektir.

Simdi sira geldi kodlarimiza. Yeni bir paket ve sinif açiyoruz ve su kodlari yaziyoruz:

.
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
  public class Main
{
   public static void main(String[] args) throws Exception
   {
     Class.forName("com.mysql.jdbc.Driver");
     Connection con = DriverManager.getConnection("jdbc:mysql://localhost/testdatabase","root","");
     PreparedStatement statement = con.prepareStatement("select * from calisanlar");
     ResultSet result = statement.executeQuery();
     while(result.next())
     {
       System.out.println(result.getString(1)+" "+result.getString(2)+" "+result.getString(3));
     }
   }
}
Class.forName("com.mysql.jdbc.Driver");

com.mysql.jdbc.Driver ekledigimiz ODBC Connector içerisinde bulunan bir sinif.

Connection con = DriverManager.getConnection("jdbc:mysql://localhost/testdatabase","root","");

Buradaki con degiskeni veritabanina baglanti için gerekli. testdatabase, yukarida da belirttigim gibi olusturdugum veritabaninin adi.

  • root, kullanici adi.
  • ” “, ise sifrem. Yani sifre yok.
PreparedStatement statement = con.prepareStatement("select * from calisanlar");
–Bir sorgu olusturuyoruz.
ResultSet result = statement.executeQuery();
–Dönen degeri result degiskenine atiyoruz.
while(result.next())
{
   System.out.println(result.getString(1)+" "+result.getString(2)+" "+result.getString(3));
}
–Ve son olarak da 1’inci, 2’inci ve 3’üncü sütunlardaki verileri ekrana yazdiriyoruz.
.

5 thoughts on “Java ile MySQL Veritabanina Baglanmak

  1. package mysqlapp;
    import java.sql.*;
    import java.util.Scanner;
    public class uurrrOrnek {
    private static Connection baglanti = null;
        private static String url = “jdbc:mysql://localhost:3306/”;
        private static String dbName = “baslangiç”; 
        private static String driver = “com.mysql.jdbc.Driver”;
        private static String userName = “root”; 
        private static String password = “admin”; 
        private static ResultSet  result; 
     
        
        
    public static  void silme() throws SQLException{
    String sorgu=”Delete from islem where ad=’ayse'”;
    Statement  St = baglanti.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE);
    result=St.executeQuery(sorgu);
    }
    public static  void ekleme() throws SQLException{
    String sorgu=”insert into islem(ad,soyad,tarih,yapylan_islem,kullanilan_malzeme,sonuc,dusunce) values(‘sibel’,’keskyn’,20150227,’balyaj’,’açycy+30 vol oksidan’,’parlak sary rengine ulasylmystyr’,’i?lem basaryly’)”;
    Statement  St = baglanti.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE);
    result=St.executeQuery(sorgu);
    }
    public static  void arama() throws SQLException{
    String sorgu=”Select * from islem where ad=’ece'”;
    Statement St = null;
    try {
    St = baglantiAc();
    } catch (Exception e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    result=St.executeQuery(sorgu);
    }
    public static  Statement baglantiAc() throws Exception {
            Class.forName(driver).newInstance();
            Connection baglanti = DriverManager.getConnection(url + dbName, userName, password);          
            return baglanti.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
    }
            public static void baglantiKapat() throws Exception {
                baglanti.close();
            }
    public static void main(String[] args) {
    try {
    Statement St = baglantiAc();
    } catch (Exception e1) {
    // TODO Auto-generated catch block
    e1.printStackTrace();
    }
           
              Scanner veri=new Scanner(System.in);
              System.out.println(“Y?lem numarasyny Giriniz:1)ekleme, 2)silme, 3)arama”);
              int islem=veri.nextInt();
              switch(islem) {
                 case 1: 
    try {
    ekleme();
    } catch (SQLException e3) {
    // TODO Auto-generated catch block
    e3.printStackTrace();
    }
                  break;
                 case 2: 
                 
    try {
    silme();
    } catch (SQLException e2) {
    // TODO Auto-generated catch block
    e2.printStackTrace();
    }
                  break;
                 case 3: 
               
    try {
    arama();
    } catch (SQLException e1) {
    // TODO Auto-generated catch block
    e1.printStackTrace();
    }
                 break;
                 }
               
    try {
    baglantiKapat();
    } catch (Exception e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    }
    Exception in thread “main” java.lang.NullPointerException
    at mysqlapp.uurrrOrnek.ekleme(uurrrOrnek.java:29)
    at mysqlapp.uurrrOrnek.main(uurrrOrnek.java:71)  
    HATA ALIYORUM YARDIM EDEBILIRMISINIZ
  2.  tablonuzdaki kolon bilgilerini ve nasil bir sonuc almak istediginizi gonderseniz yardimci olmaya çalisalim

  3.  Yazi için tesekkürler,

    Ben gömülü veri tabani kullaniyorum bir konuda takildim yardim isteyecektim. Müsteriler ve halilar adinda iki tablom var fakat iki tabloyu birbirine baglayamadim iç içe sql sorgusu yapmam gerekiyo galiba ama islerim çok karisik yardimci olabilir misiniz?

Guests için bir cevap yazın Cevabı iptal et

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir