我有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
我希望用相对路径
来做答案 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();
}
}
}