簡體   English   中英

使用Netbeans 7.2.1連接Access 2013

[英]connecting access 2013 with netbeans 7.2.1

我可以使用Microsoft Access 2013和Net Beans 7.2.1,如何使用NetBeans 7.2.1創建和連接數據庫,我可以從GUI獲取三個數據Name.getText(),Address.getText(),ContactNumber.getText() 。 我要做的就是將這些數據從GUI放到數據庫中。 我嘗試搜索網絡,但是它太混亂或太具體了,有什么幫助嗎? 我看到了以下示例,但我不確定其是否適用於2013年訪問

jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=C:\\db1.mdb

我想用相對路徑

這將盡可能簡化。 我在NetBeans 7.4下進行了測試,它對我有用。

筆記:

更新的Access數據庫文件(Database1.accdb)與.class文件位於同一文件夾中。 對我來說

C:\\ Users \\ Gord \\ Documents \\ NetBeansProjects \\ AccessTest \\ build \\ classes \\ accesstest

您可能會發現NetBeans還需要源文件夾中.accdb文件的副本,在我的情況下是

C:\\ Users \\ Gord \\ Documents \\ NetBeansProjects \\ AccessTest \\ src \\ accesstest

但這不是要更新的數據庫文件。 (我嘗試刪除src\\...的副本,但是也刪除了build\\...的副本。看來NetBeans會在這兩個位置中對文件進行一些自動同步。)

這使我懷疑,依賴與.class文件位於同一文件夾中的數據文件是否明智? 根據應用程序的部署方式,用戶可能沒有對該文件夾的讀/寫權限,或者如果.class文件位於.jar文件中,則“ .class文件的路徑”可能並不意味着您假設是的。

無論如何,代碼是:

package accesstest;

import java.io.File;
import java.sql.*;

public class AccessTest {

    public static void main(String[] args) {
        // find the folder in which this class currently lives
        //   ref: http://www.roseindia.net/java/java-get-example/get-class-location.shtml
        final java.net.URL classLocationURL;
        final String classLocation = AccessTest.class.getName().replace('.', '/') + ".class";
        final ClassLoader loader = AccessTest.class.getClassLoader();
        classLocationURL = loader.getResource(classLocation);

        File classFile = new File(classLocationURL.toString().substring(6));  // remove "file:/" prefix
        String codePath = classFile.getParent();

        Connection con;
        try {
            con = DriverManager.getConnection(
                    "jdbc:odbc:" +
                    "Driver={Microsoft Access Driver (*.mdb, *.accdb)};" +
                    "Dbq=" + codePath + "\\Database1.accdb;");
            PreparedStatement ps = con.prepareStatement(
                    "INSERT INTO ContactInfo (FullName, Address, ContactNumber) " +
                    "VALUES (?,?,?)");
            ps.setString(1, "Gord Thompson");
            ps.setString(2, "Canada");
            ps.setString(3, "111-222-3333");
            ps.executeUpdate();
            ps.close();
            con.close();
        } catch (SQLException ex) {
            ex.printStackTrace();
        }
    }

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM