PDA

View Full Version : حرفه ای: استفاده از mysql در جاوا



ghiravani
یک شنبه 21 اسفند 1390, 11:55 صبح
با سلام.خسته نباشید
برای برنامه نویسی جاوا با کمک mysql راهی وجود داره؟
آیا از دیتابیس mysqlمیشه در برنامه نویسی جاوا برای موبایل استفاده کرد؟

Beginner2013
سه شنبه 01 فروردین 1391, 12:53 عصر
فک نکنم برنامه ای مث mysql رو موبایل ها نصب باشه!
اما رو کامپیوتر جواب مثبته،فقط یه جستجوی ساده می خواد.

biyavar
سه شنبه 20 تیر 1391, 18:41 عصر
روی کامپیوتر شما به وسیله یک فایل jar که به عنوان کانکتور شناخته میشه می تونید برنامه My SQL خودتون رو به پروژه بشناسونید و بعد از اون یک کلاس با تمام اطلاعات که جاوا نیاز داره به وصل شدن داره بسازید که شامل یوزر و پسورد My SQL شما باشه امید وارم مشکلت حل شده باشه !!!

maktoom
جمعه 23 تیر 1391, 20:50 عصر
سلام
این قطعه کد نیاز شما رو برای استفاده از پایگاه داده mysql رفع می کنه. در ادامه بیشتر توضیح می دم.
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
String url="jdbc:mysql://localhost:3306/rectangle?user=root&password=123456789";
Connection con=DriverManager.getConnection(url);
Statement st=con.createStatement();
String sql="INSERT INTO rec (recLength,recwidth) values (%s,%s)";
sql=String.format(sql,jfLength.getText(),jfWidth.g etText());
st.execute(sql);
double area;
area=Double.valueOf(jfLength.getText())*Double.val ueOf(jfWidth.getText());
jfArea.setText(Double.toString(area));
st.close();
con.close();


} catch (Exception e) {
JOptionPane.showMessageDialog(null,e.getMessage()) ;
}
در خط دوم شما دارید درایوری که لازمه تا بشه باهاش با mysql کار کرد رو بهش میشناسونید. ولی باید از قبل به کتابخونه هاتون اضفش کرده باشید.
در خط بعد دارید آدرس رو دقیق بهش میدید. یعنی چه نوع پایگاهی و و از کدوم پورت(برای mysql از 3306 استفاده میشه) و نام پایگاه داده ای که در mysql ساختید و الان قصد دارید با اون کار کنید رو میارید(rectangle) وبعد یوزر پسوردی که با اون توی mysql ، سطح دسترسی ساختید رو وارد می کنید.
بعد یه اتصال می سازید تا بتونید با اون به پایگاهتون متصل بشید. نقشش فقط همینه.
و در خط بعد یهStatement تا بتونید با اون کوئری هاتون از این پایگاه رو اجرا کنید.
کوئری ها بصورت رشته هستن که باید به فرمت خاصی در بیان که اینکار هم در خط String.format انجام شده.
این برنامه رو داخل یه jframe نوشتم. بنابراین اون سینتکسای مربوط به getText شما رو بوحشت نندازه! :)
کلا برنامه میره طول و عرض یه مستطیل رو میگیره داخل پایگاه داده ای به نام rectangle که دارای فیلدایی به نام recId و recLength و recWidth هست ثبت می کنه. و درنهایت با ضرب طول در عرض مساحت رو بر می گردونه.
این برنامه بدون رعایت اصول شیئ گرایی نوشته شده. چرا که کلاسی برای rectangle در نظر گرفته نشده. که در اونصورت کد تمیز تر و استانداردی بود.

maktoom
جمعه 23 تیر 1391, 20:53 عصر
لازم به یادآوری چون این برنامه فقط چیزی رو به پایگاهتون اضافه می کنه و چیزی رو از پایگاهتون برنمی گردونه، دو سه خط کد کمتر از حالتیه که مثلا بخواید از پایگاهتون چیزی رو برگردونید. در اون حالت کد به این شکل در میاد:
مثلا برای برگردوندن طول یه مستطیل خاص که قبلا بهش یه recId نسبت دادید:
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
String url="jdbc:mysql://localhost:3306/rectangle?user=root&password=123456789";
Connection con=DriverManager.getConnection(url);
Statement st=con.createStatement();
String sql="select recLength from rec where (recId='"+this.getId()+"')";
st.execute(sql);
ResultSet rs=st.getResultSet();
while(rs.next()){
return rs.getDouble("recLength");
}
rs.close();
st.close();
con.close();

} catch (Exception e) {
JOptionPane.showMessageDialog(null,e.getMessage()) ;
}

که در اینحالت لازمه اصول شیئ گرایی رعایت شده باشه. تا برای هر rec یه id داشته باشید.