View Full Version : ارتباط SQL با جاوا
Amin1991-2012
یک شنبه 08 تیر 1393, 21:30 عصر
سلام دوستان
من یه پروژه ساده میخوام بنویسم که میخوام برای اولین بار از SQL استفاده کنم.قبلا جاوا رو به Access متصل کرده ام ولی الان نمیدونم چجوری sql رو به پروژه ی جاوام متصل کنم.در محیط نت بینز هم کدنویسی میکنم.
ممنون میشم بهم کمک کنین.متشکر
mr.dp+
یک شنبه 08 تیر 1393, 22:02 عصر
چند تا منبع وجود داره. بهتر یه منبع انگلیسی رو بخونی که خوب بفهمی چجوریه : آموزش وصل کردن : https://netbeans.org/kb/docs/ide/mysql.html
Amin1991-2012
یک شنبه 08 تیر 1393, 22:35 عصر
چند تا منبع وجود داره. بهتر یه منبع انگلیسی رو بخونی که خوب بفهمی چجوریه : آموزش وصل کردن : https://netbeans.org/kb/docs/ide/mysql.html
ممنون از جوابتون.متاسفانه لینکی که گذاشتین خرابه.
mr.dp+
یک شنبه 08 تیر 1393, 23:45 عصر
مطمئن باش مشکلی توش نیست داداش من.
من الان امتحان کردم . چون این لینک مال سایت Netbeans هستش . مطمئن باش مشکل از طرف سیستم شماست.
و اینکه . بعد اینکه مطالب لینک بالایی رو خوندید، این لینک رو هم نگا کن برای آموزش استفاده از MYSQL تو یه برنامه جاوا تحت وب :
https://netbeans.org/kb/docs/web/mysql-webapp.html
اگه بازم نتونستی بگو تا یه پی دی اف ازشون بارت بسازم بدم بت.
موفق باشی
Amin1991-2012
دوشنبه 09 تیر 1393, 03:12 صبح
مطمئن باش مشکلی توش نیست داداش من.
من الان امتحان کردم . چون این لینک مال سایت Netbeans هستش . مطمئن باش مشکل از طرف سیستم شماست.
و اینکه . بعد اینکه مطالب لینک بالایی رو خوندید، این لینک رو هم نگا کن برای آموزش استفاده از MYSQL تو یه برنامه جاوا تحت وب :
https://netbeans.org/kb/docs/web/mysql-webapp.html
اگه بازم نتونستی بگو تا یه پی دی اف ازشون بارت بسازم بدم بت.
موفق باشی
ممنون از کمکت
مشکل اصلی من توی url دستور (con = DriverManager.getConnection(url هست.من برای اکسز بلدم ولی sqlserver نمیدونم باید چجوری تعریف کنم؟؟؟؟
بفهمم چجوری باید بهش آدرس بدم حله.میتونین برام این آدرسه رو توضیح بدین؟
vahid-p
دوشنبه 09 تیر 1393, 08:03 صبح
به این صورت :
connect = DriverManager.getConnection("jdbc:mysql://localhost/dbname?user=sqluser&password=sqluserpw");
dbname اسم دیتابیس
sqluser نام کاربری
sqluserpw رمز عبور
حتی میتونی از کانستراکتور دیگه ای هم استفاده کنی که به این صورته :
connect = DriverManager.getConnection("jdbc:mysql://localhost/dbname","sqluser","sqluserpw");
محمد فدوی
دوشنبه 09 تیر 1393, 08:22 صبح
اول درایور Microsoft SQL Server برای JDBC رو از اینجا دانلود کن:
http://www.microsoft.com/en-us/download/confirmation.aspx?id=11774
بعد هم نگاهی بنداز به اینا برای کانکت شدن به دیتابیس:
http://blogs.msdn.com/b/brian_swan/archive/2011/03/02/getting-started-with-the-sql-server-jdbc-driver.aspx
http://technet.microsoft.com/en-us/library/aa342339(v=sql.110).aspx
vahid-p
دوشنبه 09 تیر 1393, 17:33 عصر
آها. ببخشید من حواسم نبود برای SQL server میخواستید. اونی که من نوشتم MySQL بود.
Amin1991-2012
سه شنبه 10 تیر 1393, 17:54 عصر
خب تا حدودی فهمیدم باید چیکار کنم ولی دیگه به بن بست رسیدم.
sql نسخه اینترپرایز ۲۰۰۸ رو نصب کردم.نام سرور من (local) هست.اومدم یه جدول به اسم PC و یه یوزر به اسم mamad با رمز ۳۵۲۳۷۸۹ تعریف کردم.قسمت security سرور هم تنظیم کردم که با یوزرخارجی (نه یوزرخود سیستم) هم بتونه وارد بشه.موقع نصب SQL هم از instance دیفالت استفاده کردم و خودم instance تعریف نکردم.
توی برنامم هم که بامحیط نت بینز کار میکنم کتابخونه ی SQL Server رو از سایت ماکروسافت دانلود کردم ودرقسمت کتابخونه ی پروژم ادش کردم.
کد زیر رو نوشتم و به نظرم درسته ولی خطا داره که متن خطایی که میده رو هم میذارم.
کدم:
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
String connectionUrl = "jdbc:sqlserver://(local):1433;" +
"database=PC;" + "user=mamad;" + "password=3523789";
Connection con = DriverManager.getConnection(connectionUrl);
System.out.println("connected.");
خطایی که میده:
The TCP/IP connection to the host (local),port 1433 has failed.Error:"null.Verify the connection properties.Make sure that an instance of SQL Server is running on the host and accepting TCP/IP connections at the port.Make sure that TCP connections to the port are not bloched by a firewall.".
بچه ها مشکلش چیه؟
این 1433 چیه؟من از این سر در نیوردم!!!
vahid-p
سه شنبه 10 تیر 1393, 21:57 عصر
1443 شماره پورت هست. من فکر میکنم SQL Server و لوکال هاست run نشده. چون اکثر این دیتابیس ها برای لوکال نیاز به برنامه ای دارن که بتونی آدرس localhost با یه پورت خاص رو روی کامپیوترت داشته باشی و بتونی مثلا از پورت مخصوص 1443 که احتمالا برای دیتابیس SQL Server در نظر گرفته شده استفاده کنی.
مثلا برای MySQL من از Xampp برای اجرا روی کامپیوتر استفاده میکنم. اگر اجرا نکنی و از طریق جاوا برنامت رو run کنی، localhost که سرورت هست یافت نمیشه و ارتباطی هم برقرار نمیشه. مثلا چنین ارروری بهت میده : ( ببینید نوشته سرور : null )
SEVERE: null
com.mysql.jdbc.exceptions.jdbc4.CommunicationsExce ption: Communications link failure
The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
برای SQLServer هم باید همینطور باشه گرچه تا به حال استفاده نکردم. گرچه فکر میکنم به جای (local) بنویسید localhost بهتر باشه!
خود سایت مایکروسافت (http://support.microsoft.com/kb/313100) پیشنهاد داده به این صورت بنویسید :
jdbc:microsoft:sqlserver://localhost:1433;databaseName=dbname;
( در پرانتز : هستند دیتابیس هایی که نیاز به اجرای برنامه جانبی نیست و خود دیتابیس تمام و کمال همراه با برنامه اجرا میشه مثل H2 و... )
Amin1991-2012
چهارشنبه 11 تیر 1393, 02:58 صبح
ممنون از جواب دوستان
کد رو به صورت زیر تغییر دادم درست شد.
String connectionUrl = "jdbc:sqlserver://localhost:1433;" +
"databaseName=AdventureWorks;user=UserName;password =*****";
حالا سوالم اینه که:
من وقتی با اکسز برنامه مینوشتم کافی بود فایل mdb رو همراه پروژم ضمیمه کنم و روی یه کامپیوتر دیگه اجرا کنم.بدون اینکه اکسز نصب باشه.توی کدبرنامه هم آدرس پایگاه داده اکسز داده میشه.
الان تو sql چجوریه؟اول اینکه ما آدرسی نمیدیم.بعدم اگه من بخوام پروژمو ببرم رو یه کامپیوتر دیگه یا حتی بخوام بفروشم، چجوری بایدپایگاه داده رو روی یه کامپیوتر جدید به برنامه بشناسونم؟حتما باید SQL Server رو روی کامپیوتر مقصد نصب کنم؟
محمد فدوی
چهارشنبه 11 تیر 1393, 09:57 صبح
اول اینکه ما آدرسی نمیدیم.در مورد اکثر دیتابیس ها همین کارو میکنیم! هرچند بسیاری از دیتابیس ها (و تکنولوژی ها) امکان هر دو نوع آدرس دهی رو دارن.
حتما باید SQL Server رو روی کامپیوتر مقصد نصب کنم؟آره. در مورد هر نوع دیتابیس دیگه هم همینطوره. البته لازم نیست برای اینکار نسخه پر دردسر Developer از Microsoft SQL Server رو روی سیستم کاربراتون نصب کنید.
همه ی اینکارا به عهده برنامه Installer هستش
بعدم اگه من بخوام پروژمو ببرم رو یه کامپیوتر دیگه یا حتی بخوام بفروشم، چجوری بایدپایگاه داده رو روی یه کامپیوتر جدید به برنامه بشناسونم؟با توجه به نوع برنامت میتونه متفاوت باشه. مثلا میتونی کل اسکریپت لازم برای ایجاد دیتابیس و جدولاش و غیره رو توی یه فایل sql ذخیره کنی و در موقع لازم (مثلا هنگام نصب یا توی برنامت یا...) اون فایل رو اجرا کنی.
بطور کلی این نگرانی ها توی برنامه های شامل دیتابیس خیلی رایجه. من خودم چون چنین حسی داشتم میگم، سعی کن موقع برنامه نویسی به اینکه چجوری قراره برنامت رو به دست کاربر برسونی فکر نکن و همه ی تمرکزت رو روی برنامت بذار. فکر کن میخوای یه برنامه بنویسی که فقط روی سیستم خودت اجرا شه! منتشر کردن برنامه خودش یه پروژه سنگینه که شاید از پروژه اصلیت هم پیچیده تر باشه که بعدا بش می پردازی!
موفق باشی.
Amin1991-2012
چهارشنبه 11 تیر 1393, 21:18 عصر
تشکر خیلی ممنون.چشم فعلا به نوشتن برنامم میپردازم تا نوبت به قسمت انتقالش برسه.آخه این برنامه که دارم مینویسم یه برنامه حسابداری خیلی ساده اس واسه مغازه بابام.
حالا بعد در تاپیکی جداگونه درمورد انتقال برنامه سوال میپرسم.
متشکر از دوستان.
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.