PDA

View Full Version : مشکل برقراری ارتباط با دیتابیس



\\f-o-r //
یک شنبه 29 مرداد 1391, 10:01 صبح
آقا من میخوام با jsp به دیتابیس وصل شم میخواستم ببینم راه درستی رفتم اگه آره مشکل کدم چیه؟

<%@page import="javax.servlet.*"%>
<%@page import="javax.servlet.http.*"%>
<%@page import="java.net.*"%>
<%@page import="java.util.*"%>
<%@page import="java.sql.*"%>



<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page
</title>
<%! String first;
String []f;
String Ds;
HttpServletRequest request;
Statement DataRequest;
private Connection Db;
ResultSet resultSet;%>

</head>
<body>

<form method="get">
<input type="text" name="username"/>
<br>
<input type="submit" value="submit"/>
</form>

<p>Your Name:<%=first%></p>
<p>Your Name:<%=Ds%></p>
<%
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Db=DriverManager.getConnection("jdbc:odbc:Ozv");
DataRequest=Db.createStatement();
resultSet=DataRequest.executeQuery("SELECT * FROM Table1");
Ds=resultSet.getString("FirstName");
first=request.getParameter("username");
first="Hello";
DataRequest.close();
}catch(Exception e){
first=e.getMessage();%>
<p><%=first%></p>
<%
first="Hello";
System.out.print("He he he...");
}



%>




</body>
</html>

spiderman200700
یک شنبه 29 مرداد 1391, 14:53 عصر
اگه اشتباه نکرده باشم باید اینجوری بنویسی. در ضمن اسم متغییر ها رو هم خیلی بد انتخاب کردی
<%@page import="javax.servlet.*"%>
<%@page import="javax.servlet.http.*"%>
<%@page import="java.net.*"%>
<%@page import="java.util.*"%>
<%@page import="java.sql.*"%>



<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page
</title>
<%! String first;
String []f;
String Ds;
HttpServletRequest request;
Statement DataRequest;
private Connection Db;
ResultSet resultSet;%>

</head>
<body>

<%
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Db=DriverManager.getConnection("jdbc:odbc:Ozv");
DataRequest=Db.createStatement();
resultSet=DataRequest.executeQuery("SELECT * FROM Table1");
if(resultSet.next()){
Ds=resultSet.getString("FirstName");
first=request.getParameter("username");
}
first="Hello";
%>
<p>Your Name:<%=first%></p>
<p>Your Name:<%=Ds%></p>
<%
DataRequest.close();
}catch(Exception e){
%>
<p><%=e.getMessage();%></p>
<%}%>

</body>
</html>

\\f-o-r //
یک شنبه 29 مرداد 1391, 16:05 عصر
خدا خیرت بده واقعا رفته بود رو اعصابم مشکلش چی بود ؟
بازم ممنون

spiderman200700
یک شنبه 29 مرداد 1391, 22:51 عصر
خواهش میکنم.
یه کم جای خطوط رو تغیر دادم و یه خط هم اضافه کردم. بیشترین تغییر توی خطوط 37 تا 44 کد خودت هست.
البته یه کم خودت کدها رو مقایسه کنی میفهمی چه مشکلی داشته.
موفق باشی

reza_zah1991
پنج شنبه 09 شهریور 1391, 15:15 عصر
ozv چیه توی کدت؟
"jdbc:odbc:Ozv"

spiderman200700
پنج شنبه 09 شهریور 1391, 18:00 عصر
ozv یه ODBC Data Source هست
ODBC یه واسط برای ارتباط با دیتابیسه

agusta.ada
دوشنبه 26 فروردین 1392, 15:41 عصر
سلام و خسته نباشید خدمت اساتید
اقا ما یه desktop application داریم که میخواد به یه embedded database متصل بشه مشکل ما اونجاست که این برنامه portable میباشد.
راهی وجود داره که بشه با استفاده از JDBC به database متصل شد بصورتی که مسیر فایل دیتابیس که در پوشه برنامه هست را در تنضیمات jdbc وارد کرد.
jdbc:sqlserver://localhost:1433;databaseName=School

spiderman200700
پنج شنبه 29 فروردین 1392, 00:25 صبح
سلام
اگه از embedded database دیتا بیس استفاده می کنی و میخواید که portable باشه ، نباید از طریق ip و port به database وصل بشی.
باید با تعیین مسیر فایل database ، مستقیما به خود فایل database وصل بشی.
یه جستجو توی تالار Java SE و تالار برنامه نویسی جاوا بکنی ، تنها خود من چند تا تاپیک در این مورد رو جواب دادم و مطالب سایر دوستان هم قطعا وجود داره.
اینم یه مثال برای نحوه اتصال مستقیم به H2 Database:

Class.forName("org.h2.Driver");
connection = DriverManager.getConnection("jdbc:h2:DBName", "user", "pass");

با این کد به Databasی به نام DBName که موقع build کردن پروژه دقیقا در کنار فایل jar ایجاد میشه وصل میشیم.
موفق باشی

agusta.ada
پنج شنبه 29 فروردین 1392, 21:03 عصر
سلام
دوست عزیز در h2 database شاید بشه همچین کاری کرد ولی در sql server or my sql امکان ندارد (تا اونجایی که من میدونم).
در خود سایت مایکروسافت هم فرم کلی تعریف Connection URL به صورت زیر امده که همین طور که میبینی فقط یه راه داره اونم از طریق سرور و پورت هست اگر هم فکر میکنی از طریق پراپرتی میشه باید بگم که هیچ پراپرتی مربوط به ادرس فایلی وجود نداره.
ولی یه راهی داره اونم از طریق اتچ کردن فایل دیتابیسه.
jdbc:sqlserver://[serverName[\instanceName][:portNumber]][;property=value[;property=value]]

spiderman200700
جمعه 30 فروردین 1392, 17:17 عصر
برای برنامه های کاربردی دسکتاپ که قصد دارید روی سیستم های مختلفی ازشون استفاده کنی ، باید از دیتابیس های Embedded استفاد کنی نه SQLServer or MySQL .
یه دیتابیس Embedded همه ی نیازهای یک دسکتاپ اپلیکیشن رو برطرف میکنه. و هم اینکه باعث میشه که موقع جابه جایی برنامه مشکلی در استفاده از دیتابیس به وجود نمیاد

abs.hamid
جمعه 05 آذر 1395, 21:29 عصر
سلام منم میخوام به دیتا بیس وصل بسم خطا میده کمک کنید
این کد برنامه
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection db=DriverManager.getConnection("jdbc:odbc:xe");
Statement DataRequest=db.createStatement();
ResultSet resultSet=DataRequest.executeQuery("SELECT * FROM Table1");

اینم پیغام خطا

java.lang.ClassNotFoundException: sun.jdbc.odbc.JdbcOdbcDriver
at java.net.URLClassLoader$1.run(URLClassLoader.java: 372)
at java.net.URLClassLoader$1.run(URLClassLoader.java: 361)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.j ava:360)
at java.lang.ClassLoader.loadClass(ClassLoader.java:4 24)
at sun.misc.Launcher$AppClassLoader.loadClass(Launche r.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:3 57)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:259)
at JavaApplication2.main(JavaApplication2.java:25)

[younes]
جمعه 05 آذر 1395, 22:23 عصر
http://stackoverflow.com/questions/19709843/jdbc-odbc-driver-connection