PDA

View Full Version : جستجو و درج در جدول



maktoom
یک شنبه 28 خرداد 1391, 10:28 صبح
سلام
من یه پایگاه داده mysql به نام library دارم که یه جدول به نام امانت(Amanat) داره که هر عضوی که کتاب می گیره توی این جدول ثبت میشه.
هر کتاب در هنگام ثبت امانت تاریخ ثبت خواهد داشت. و در هنگام باز گرداندن تاریخ برگشت.
هنگام بازگرداندن کتاب باید آپدیت روی رکوردی صورت بگیره که کد عضویت و کد کتابش با چیزی که از فرم میگیره یکی باشه و البته تاریخ بازگشت نداشته باشه.(اگه داشته باشه یعنی قبلا گرفته شده و پس داده شده)
خب مشکلی که باهاش برخوردم اینه که می خوام داخل کوئریم از مقادیری استفاده کنم که از طریق فرم گرفته شدن.

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
String url="jdbc:mysql://localhost:3306/library?user=root&password=123";
Connection con=DriverManager.getConnection(url);
Statement st=con.createStatement();
String a=ftBId.getText();
String b=ftMId.getText();
String sql="select amanatDate from Amanat where (BId='"+a+"') and MId='"+b+"')";
st.execute(sql);
ResultSet rs=st.getResultSet();
while(rs.next()){
System.out.print(rs.getString("amanatDate")+"\n");
}
rs.close();
st.close();
con.close();



} catch (Exception exception) {
JOptionPane.showMessageDialog(null,exception.getMe ssage());
}
}

spiderman200700
یک شنبه 28 خرداد 1391, 11:39 صبح
سلام
این کدی که گذاشتید مگه همین کار رو نمیکنه؟
توی این خط ها:
String a=ftBId.getText();
String b=ftMId.getText();

داره از فرم مقدار میگیره.
دیگه مشکل چیه؟

maktoom
یک شنبه 28 خرداد 1391, 13:36 عصر
سلام
آره اون کد رو دقیقا واسه همین گذاشتم. اما مشکل اون نیست. مشکل نحوه کوئری پرسیدنمه. از خودم نوشتم بدون اینکه بدونم همچین کوئری ای اصلا درسته یا نه. اینجا:
String sql="select amanatDate from Amanat where (BId='"+a+"') and MId='"+b+"')";

spiderman200700
یک شنبه 28 خرداد 1391, 15:49 عصر
پست اولتونو یه کم بد نوشته بودید. به خاطر همین من متوجه نشدم دقیقا قراره چیکار بکنید.
حالا کدتون یه مشکلاتی داشت من بر طرفش کردم.
اگه مشکلی بود بفرمایید
try {
Class.forName("com.mysql.jdbc.Driver").newInstance ();
String url="jdbc:mysql://localhost:3306/library?user=root&password=123";
Connection con=DriverManager.getConnection(url);
Statement st=con.createStatement();
String a=ftBId.getText();
String b=ftMId.getText();
String sql="select amanatDate from Amanat where BId='"+a+"' and MId='"+b+"'";
ResultSet rs= st.executeQuery(sql);
while(rs.next()){
System.out.print(rs.getString("amanatDate")+"\n");
}
rs.close();
st.close();
con.close();



} catch (Exception exception) {
JOptionPane.showMessageDialog(null,exception.getMe ssage());
}
}

maktoom
یک شنبه 28 خرداد 1391, 15:52 عصر
مشکل قبلی حل شد. اما یه مشکل جدید.
می خوام تاریخ برگشت رو بدم به جدولم. ازونطرف می خوام بدونم تفاضل این دو تاریخ(تاریخ امانت گرفتن و پس دادن کتاب) مثلا کمتر از 15 هست یا نه.
مشکلی که بهش برخوردم فرمت متفاوت ذخیره تاریخ در mysql و دادن تاریخ فعلی سیستم در جاوا است.
فرمت my sql:
2012-04-03
فرمت جاوا:
Fri Jun 01 00:00:00 IRDT 2012
کسی روشی می دونه که بشه تفاضل این دو تاریخ رو دونست؟

__________________________________________________ __
وقتی این کامنت رو گذاشتم کامنت شما رو دیدم.

spiderman200700
یک شنبه 28 خرداد 1391, 20:38 عصر
میتونید از این روش استفاده کنید:
Calendar calendar = new GregorianCalendar();
String date = calendar.get(Calendar.YEAR) + "-" + (calendar.get(Calendar.MONTH) + 1) + "-" + calendar.get(Calendar.DAY_OF_MONTH);