Jump to content
Forumu Destekleyenlere Katılın ×
Paticik Forumları
2000 lerden beri faal olan, çok şukela bir paylaşım platformuyuz. Hoşgeldiniz.

Java MySQL birlikte kullanmak..


Kithnos

Öne çıkan mesajlar

Merhaba arkadaslar okul projem icin Java ve MySQL i birlikte kullaniyorum,cok dar kapsamli ve konsoldan olan bi program oluyo ama neyse ilk deneyimler icin iyidir..Arastirark sql e baglanmayi,query dir update dir , insert dur ogrendim javadan kontrol edebiliyorum o ozellikleri.

Fakat Date kavrami ily ilgili bisey sorucam ( basligi de genel aciyim dedim , muhakkak bu konuyla ilgili ilerde sorunum olur :) ) Tarih tutmasi gereken Date tipi var ya,onu nasil kullaniyoruz mysql de,default u nedir data yi nasil gondericez ? Bi ornek verebilirseniz iyi olur,syntax ini cozemedim javadan nasil yollicam sql e.23 Aralik 2007 yi yollamak istiyorum mesela. 23.12.2007 de olabilir.
Java da hangi lib leri import edicem , nasil sql e paslicam?
Link to comment
Sosyal ağlarda paylaş

Sorgularda kullanmak için kullanılan class java.sql.Date.

Aslında tarihi long olarak üretin diyor Java API'si. Ama senin için eski constructor daha rahat olur:


public Date(int year,
int month,
int day)

Deprecated. instead use the constructor Date(long date)

Constructs a Date object initialized with the given year, month, and day.

The result is undefined if a given argument is out of bounds.

Parameters:
year - the year minus 1900; must be 0 to 8099. (Note that 8099 is 9999 minus 1900.)
month - 0 to 11
day - 1 to 31


java.sql.Date API linki (1.6)

java.sql.Date türünden bir nesne yarattıktan sonra sorguya yerleştireceksin işte. Sorgu için Statement türünden bir nesne kullanıyorsan setDate ile koyabiliyorsun mesela. String yada int koymaktan bir farkı yok yani.
Link to comment
Sosyal ağlarda paylaş

Class.forName("com.mysql.jdbc.Driver").newInstance();
Connection conTest = DriverManager.getConnection("jdbc:mysql://localhost/erkin","root", "");
Date tar = null;
//tar="2012-10-10";
tar.setYear(8900);
tar.setMonth(10);
tar.setDate(20);


String query = "insert into date values('"+tar+"')";

su sekilde birsey denedim ama olmadi..

java.lang.NullPointerException
at First.main(First.java:14)
SURUCU YUKLENEMEDI...null
Link to comment
Sosyal ağlarda paylaş

Bence okul projene devam etmeden önce biraz java rehberi okuman faydalı olur. Bir çok şey birbirine karışmış çünkü.

İlk sorun tar değişkenini tanımladıktan sonra Date nesnesi üretmemiş olmandan kaynaklanıyor.

Date tar;

sadece tar değişkeninin türünün Date olduğunu bildirir. Date tar; yada Date tar = null; yazdığın zaman, değişkenin bir nesneyi göstermiyor olacaktır. Yani tar bir NullPointer. Sonraki satırda tar değişkeni üzerinden bir metod çağırıyorsun. null üzerinden metod çağırdığın zaman da NullPointerException çıkar ortaya.

Date türünden bir nesne üretmen lazım önce. Bunu da new kelimesiyle yaparsın. new dedikten sonra Constructor çağırarak yaparsın. Constructor'un aldığı parametreleri bir önceki mesajımda yazmıştım.

Date tar = new Date(8900, 10, 20);

yazdığın zaman nesneni üretmiş ve değişkene atamış oluyorsun.

Yalnız bu Date nesnesini sorgu içinde kolayca kullanabilmen için bir Statement nesnesi kullanman lazım. Java içinde sadece String kullanarak sorgu oluşturmak pek hoş bir yol değil. Statement yada PreparedStatement classlarının detayları için Java API'ine bakmanı tavsiye ederim. Burda anlatmak isterdim ama çok vakit alır. Özetle, önce sorgunun sabit kısmını oluşturup, boşlukları sonradan doldurmanı sağlıyorlar.

İlla sorgunu sadece String kullanarak hazırlamak istiyorsan, java nesnelerine ihtiyacın yok. Direkt olarak SQL formatıyla date girebilirsin.

values('Jan-10-1999')

şeklinde mesela. Tabi Jan-10-1999 kısmını değişkenlerle eklersin. Jan-10-1999 yerine başka bir tarih formatı da olur. MySQL sitesine bakman lazım detaylar için.

NullPointerException devam ediyorsa

Class.forName("com.mysql.jdbc.Driver").newInstance(); satırında driver yerinde bulunamadığı için bir null dönüyor. null üzerinden newInstance() metodu çağırılınca exception çıkıyor.

Link to comment
Sosyal ağlarda paylaş

×
×
  • Yeni Oluştur...