اتصال پایگاه access به جاوا

me.fatima

عضو جدید
کاربر ممتاز
سلام دوستان

خواهشا اگه کسی میدونه که چه جوری میتونم یک پایگاه داده Access در برنامه ی جاوا اجرا کنم ، بهم جواب بده .
میخوام یه پروژه جاوا که درش از Access استفاده شده رو اجرا کنم ولی Run نمیشه. که فکر میکنم نیاز به تنظیمات خاصی داره.
تو اینترنت جستجو کردم ولی چیزی متوجه نشدم.

خواهشا اگه کسی میدونه بهم کمک کنه !
 

کربلایی

مدیر بازنشسته
سلام دوستان


خواهشا اگه کسی میدونه که چه جوری میتونم یک پایگاه داده Access در برنامه ی جاوا اجرا کنم ، بهم جواب بده .
میخوام یه پروژه جاوا که درش از Access استفاده شده رو اجرا کنم ولی Run نمیشه. که فکر میکنم نیاز به تنظیمات خاصی داره.
تو اینترنت جستجو کردم ولی چیزی متوجه نشدم.

خواهشا اگه کسی میدونه بهم کمک کنه !

سلام
میدونم کمی دیر شده، اما شاید بدرد بقیه هم بخوره:

قدم اول طراحی پایگاه داده در اکسس هست که همه بلدن پس توضیح نمیدم
قدم دوم ساختن یک کانکشن DSN است، DSN مخفف ( Data Source name ) هست.
برای این کار مراحل زیر رو طی کنید:
1- به کنترل پنل برید
2- به Administrative Tools برید.
3-روی آیکون Data Sources دوبار کلیک کنید تا کادر محاوره ای ODBC Data Source Administrator باز بشه
4- در کادر محاوره ای ODBC Data Source Administrator روی تب File DSN کلیک کنید تا باز بشه، بعد دکمه Add را بزنید تا دیالوگ بوکس Microsoft ODBC Access Setup نمایش داده بشه.
5- دو کار بایدانجام بدید: اول نام پایگاه داده اکسس رو در جعبه متن Database Name بنویسید، بعد با استفاده از دکمه Select مسیر پایگاه داده رو(جایی که فایل اکسس رو در اونجا ذخیره کردید) مشخص کنید.

مرحله بعدی کدنویسی با جاوا هست.
کار رو با یک مثال ادامه میدیم
این مثال:
درایور پایگاه داده رو لود میکنه
با کانکشن DSN که قبلا ساختیم اتصال برقرار میکنه(وصل میشه بهش)
یک statement میسازه
و در نهایت یک تقاضا(query) رو اجرا میکنه.

برای شروع یک کلاس به نام ایجاد کنید
کد:
//RunDB
import java.sql.*;

public class RunDB {

   Connection connection;
   Statement statement;

   ... behaviors

}

یک متد بنام loadDriver برای واکشی پایگاه داده می سازیم
کد:
// Load the Driver

public void loadDriver() throws ClassNotFoundException{
   Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}

قدم بعدی ساخت کانکشن makeConnection هست
کد:
// Make the Connection
public void makeConnection() throws SQLException {
   connection=DriverManager.getConnection("jdbc:odbc:yourDatabaseName");
}

توجه داشته باشید که در کد، بجای yourDatabaseName نام پایگاه داده خودتان را بدون پسوند mdf بنویسید.


قدم بعدی ساخت متد executeQuery هست
کد:
// Execute the query
public void executeQuery() throws SQLException {

   boolean foundResults =
      statement.execute("SELECT * FROM yourDataTableName");
   if(foundResults){
      ResultSet set = statement.getResultSet();
      if(set!=null) displayResults(set);
   }else {
      connection.close();
   }
}

در اینجا هم بجای yourDataTableName نام جدول خودتان را بنویسید.

قدم نهایی نمایش نتایج هست
من برای نمایش از یک برنامه کنسول استفاده کرده ام(ساده تر هست)
شما می توانید به دلخواه کدها را تغییر دهید

کد:
// Display the Results
void displayResults(ResultSet rs) throws SQLException {
   ResultSetMetaData metaData = rs.getMetaData();
   int columns=metaData.getColumnCount();
   String text="";

   while(rs.next()){
      for(int i=1;i<=columns;++i) {
         text+="<"+metaData.getColumnName(i)+">";
         text+=rs.getString(i);
         text+="</"+metaData.getColumnName(i)+">";
         text+="n";
      }
      text+="n";
   }
   System.out.println(text);
}

در پایان کدهای کامل را میزارم
کد:
// JDBC|Test – complete code
public class JDBCTest {

   public static void main(String args[]){

      RunDB runDB = new RunDB();

      try{
         runDB.loadDriver();
         runDB.makeConnection();
         runDB.buildStatement();
         runDB.executeQuery();
      }catch(Exception e){
         e.printStackTrace();
      }

   }
}

//RunDB
import java.sql.*;

public class RunDB {

   Connection connection;
   Statement statement;

   public void loadDriver() throws ClassNotFoundException{
      Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
   }

   public void makeConnection() throws SQLException {
      connection=
         DriverManager.getConnection("jdbc:odbc:purchaseOrder")
   }

   public void buildStatement() throws SQLException {
      statement = connection.createStatement();
   }

   public void executeQuery() throws SQLException {

      boolean foundResults =
         statement.execute("SELECT * FROM Transaction");
      if(foundResults){
         ResultSet set = statement.getResultSet();
         if(set!=null) displayResults(set);
      }else {
         connection.close();
      }
   }

   void displayResults(ResultSet rs) throws SQLException {
      ResultSetMetaData metaData = rs.getMetaData();
      int columns=metaData.getColumnCount();
      String text="";

      while(rs.next()){
         for(int i=1;i<=columns;++i) {
            text+="<"+metaData.getColumnName(i)+">";
            text+=rs.getString(i);
             text+="</"+metaData.getColumnName(i)+">";
             text+="n";
         }
         text+="n";
      }

      System.out.println(text);

   }

}

در پیوست جدول مورد استفاده برای این مثال رو گذاشتم
 

پیوست ها

  • purchaseOrder.rar
    8.2 کیلوبایت · بازدیدها: 0
آخرین ویرایش:

me.fatima

عضو جدید
کاربر ممتاز
سلام دوست گرامی

من جوابم رو همون چند هفته پیش پیدا کردم و مشکلم حل شد.
ولی از اینکه یه توضیح کامل برای دیگران گذاشتید سپاسگزارم.:smile:
 

Similar threads

بالا