View Full Version : استفاده از دیتابیس در جاوا
kfaghih
سه شنبه 18 خرداد 1395, 19:22 عصر
با سلام خدمت اساتید محترم
می خواستم بدونم چجوری می شه در برنامه جاوا به یک پاگاه داده متصل شد و اطلاعات رو از اون خوند ؟ ممنون می شم منو راهنمایی کنید.
vahid-p
چهارشنبه 19 خرداد 1395, 05:34 صبح
یک سایت خیلی خوب با آموزش ساده و جامع (به زبان انگلیسی): http://www.tutorialspoint.com/jdbc/
مطالب خیلی زیادی در این ارتباط وجود داره. فقط بدونید جاوا به راحتی با هر دیتابیسی اون هم به شکل یکسانی متصل میشه (سرچ کنید JDBC)
همین سوالتون رو اگر به فارسی سرچ می کردید هم آموزش هایی وجود داره. مثلا: http://www.tahlildadeh.com/ArticleDetails/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-java-%D8%A7%D8%AA%D8%B5%D8%A7%D9%84-%D8%A8%D9%87-%D8%AF%DB%8C%D9%86%D8%A7%D8%A8%DB%8C%D8%B3-%D8%A8%D8%A7-%DA%A9%D8%AF-%D8%AC%D8%A7%D9%88%D8%A7
kfaghih
چهارشنبه 19 خرداد 1395, 12:26 عصر
یک سایت خیلی خوب با آموزش ساده و جامع (به زبان انگلیسی): http://www.tutorialspoint.com/jdbc/
مطالب خیلی زیادی در این ارتباط وجود داره. فقط بدونید جاوا به راحتی با هر دیتابیسی اون هم به شکل یکسانی متصل میشه (سرچ کنید JDBC)
همین سوالتون رو اگر به فارسی سرچ می کردید هم آموزش هایی وجود داره. مثلا: http://www.tahlildadeh.com/ArticleDetails/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-java-%D8%A7%D8%AA%D8%B5%D8%A7%D9%84-%D8%A8%D9%87-%D8%AF%DB%8C%D9%86%D8%A7%D8%A8%DB%8C%D8%B3-%D8%A8%D8%A7-%DA%A9%D8%AF-%D8%AC%D8%A7%D9%88%D8%A7
ممنون از راهنماییتون اما یک مشکلی که دارم اینه که زمانی که می خوام ResultSet رو تعریف کنم executeQuery رو نمی شناسه
vahid-p
چهارشنبه 19 خرداد 1395, 18:21 عصر
کدتون رو قرار بدید
maryam.eng
جمعه 21 خرداد 1395, 12:09 عصر
ممنون از راهنماییتون اما یک مشکلی که دارم اینه که زمانی که می خوام ResultSet رو تعریف کنم executeQuery رو نمی شناسه
سلام مشکل اینکه که شما درایو اتصال به پایگاه رو به لیست کتابخانه های برنامتون اضافه نکردید.با توجه به پایگاه دادتون سرچ کنید درایور برای اتصال به پایگاه داده.
kfaghih
شنبه 22 خرداد 1395, 20:56 عصر
با سلام و تشکر از راهنمایی های شما مشکل قبلی من حل شد اما یک مشکل جدید پیدا کردم و اون اینه که زمانی که می خوام به یک پایگاه داده mysql وصل بشم و اطلاعات جدول رو بخونم با پیغام زیر مواجه می شم
Illegal operation on empty result set.
کد برنامه
import java.sql.Statement;
import java.sql.*;
public class JCDBtest {
public static void main(String[] args) throws ClassNotFoundException, SQLException {
String path ="jdbc:mysql://localhost:3306/ccdbfinal";
String un ="root";
String pw ="";
try{
Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection(path,un,pw);
Statement a = con.createStatement();
String sql = "Select * FROM iou";
ResultSet rs = a.executeQuery("Select * FROM ioutable");
double i1 = rs.getDouble("I1");
double r = i1*2;
System.out.println(r);
}
catch(Exception e){
System.out.println(e.getMessage());}
}
}
ممنون می شم منو راهنمایی کنید.
vahid-p
یک شنبه 23 خرداد 1395, 08:40 صبح
دلیلش یه خورده به گفته ای tricky است! چون ResultSet یک cursor داره که پس از تشکیل، cursor رو قبل از اولین نتیجه قرار میده (متدی داریم به اسم beforeFirst() و isBeforeFirst() ). شما میتونید تست کنید rs.first() که cursor روی اولین نتیجه میبره و اگر نتیجه ای باشه و در نتیجه اولین نتیجه وجود داره true رو برمیگردونه و میدونی خالی نیست.
http://ecomputernotes.com/images/Scrollable-ResultSet.jpg
http://images.slideplayer.com/31/9774137/slides/slide_9.jpg
در توضیحات بالا First cursor position is Before first row و Rows and columns count from one مهمه که باید در نظر داشته باشید.
در کدتون بعد از خط
ResultSet rs = a.executeQuery("Select * FROM ioutable");
بنویسید:
System.out.println("BeforeFirst:"+ rs.isBeforeFirst());
System.out.println("First:"+ rs.isFirst());
System.out.println("Last:"+ rs.isLast());
System.out.println("AfterLast:"+ rs.isAfterLast());
تا دقیقا موقعیت cursor رو ببینید.
همچنین از rs.next() برای جلو بردن cursor استفاده می کنی (یه جورایی شبیه fetch تو php است)
پس با اولین rs.next به اولین نتیجه میرسیم. کد:
double i1;
while(rs.next()){
i1=rs.getDouble("I1");
System.out.println(i1);
}
volkswagen
جمعه 17 فروردین 1397, 18:16 عصر
یک سایت خیلی خوب با آموزش ساده و جامع (به زبان انگلیسی): http://www.tutorialspoint.com/jdbc/
مطالب خیلی زیادی در این ارتباط وجود داره. فقط بدونید جاوا به راحتی با هر دیتابیسی اون هم به شکل یکسانی متصل میشه (سرچ کنید JDBC)
همین سوالتون رو اگر به فارسی سرچ می کردید هم آموزش هایی وجود داره. مثلا: http://www.tahlildadeh.com/ArticleDetails/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-java-%D8%A7%D8%AA%D8%B5%D8%A7%D9%84-%D8%A8%D9%87-%D8%AF%DB%8C%D9%86%D8%A7%D8%A8%DB%8C%D8%B3-%D8%A8%D8%A7-%DA%A9%D8%AF-%D8%AC%D8%A7%D9%88%D8%A7
سلام ، تاپیک قدیمی اوردم بالا چون مطلب بود...
من از همین سایت فارسی اشاره شده استفاده کردم منتها الان ارور داره...
http://uupload.ir/files/8zhx_error1.jpg
volkswagen
جمعه 17 فروردین 1397, 21:45 عصر
اونجایی که عکس گذاشتم ، از عبارت Exception استفاده کردم و فک می کنم حل شد
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.