将access 2013与netbeans 7.2.1连接起来

时间:2013-11-29 14:55:45

标签: java database netbeans ms-access-2013

我有Microsoft access 2013和net beans 7.2.1 如何使用netbeans 7.2.1创建和连接数据库 我有三个数据Name.getText(),Address.getText(),ContactNumber.getText() 我从GUI获得。 我想要做的就是将这些数据从GUI放到数据库中。 我尝试搜索网络,但它太混乱或太具体 任何帮助? 我看到了以下示例,但我不确定它是否为2013访问

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

我希望用相对路径

来做

1 个答案:

答案 0 :(得分:0)

这就像它得到的简化一样。我在NetBeans 7.4下对此进行了测试,它对我有用。

注意:

更新的Access数据库文件(Database1.accdb)与.class文件位于同一文件夹中。对我来说是

  

C:\用户\戈德\文件\的NetBeansProjects \ AccessTest \建立\类\ accesstest

您可能会发现NetBeans还需要源文件夹中的.accdb文件的副本,在我的情况下是

  

C:\用户\戈德\文件\的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();
        }
    }

}