如何使用java在access数据库中创建表
我需要在access数据库中创建一个表。为此,我尝试了以下代码如何使用java在access数据库中创建表,java,ms-access,Java,Ms Access,我需要在access数据库中创建一个表。为此,我尝试了以下代码 public class Testac { public static void main(String[] args) { try { System.out.println("Begining conn"); Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); String acce
public class Testac {
public static void main(String[] args) {
try {
System.out.println("Begining conn");
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String accessFileName = "Centre";
String connURL = "jdbc:odbc:;DRIVER=Microsoft Access Driver (*.accdb);DBQ=" + accessFileName + ".accdb;PWD=";
Connection con = DriverManager.getConnection(connURL, "", "");
Statement stmt = con.createStatement();
System.out.println("Conn done succesfully");
stmt.execute("create table student ( Name string, ID integer )"); // create a student
stmt.execute("insert into student values(‘Md. SHAHJALAL’, ‘02223540’)"); // insert data into student
stmt.execute("select * from student"); // execute query in table student
ResultSet rs = stmt.getResultSet(); // get any Resultt that came from our query
if (rs != null) {
while (rs.next()) {
System.out.println("Name: " + rs.getString("Name") + " ID: " + rs.getString("ID"));
}
}
stmt.close();
con.close();
} catch (Exception err) {
System.out.println("ERROR: " + err);
}
}
}
但它抛出以下错误“
错误:java.sql.SQLException:[Microsoft][ODBC Driver Manager]未找到数据源名称,并且未指定默认驱动程序”
下面更正的代码可能会帮助您:
创建表时连接字符串和中出错。需要使用executeUpdate
方法
public class Testac {
public static void main(String[] args) {
try {
System.out.println("Begining conn");
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String accessFileName = "Centre";
String connURL = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=" + accessFileName + ".accdb;PWD=";
Connection con = DriverManager.getConnection(connURL, "", "");
Statement stmt = con.createStatement();
System.out.println("Conn done succesfully");
stmt.executeUpdate("create table student ( Name string, ID integer )"); // create a student
stmt.execute("insert into student values(‘Md. SHAHJALAL’, ‘02223540’)"); // insert data into student
stmt.execute("select * from student"); // execute query in table student
ResultSet rs = stmt.getResultSet(); // get any Resultt that came from our query
if (rs != null) {
while (rs.next()) {
System.out.println("Name: " + rs.getString("Name") + " ID: " + rs.getString("ID"));
}
}
stmt.close();
con.close();
} catch (Exception err) {
System.out.println("ERROR: " + err);
}
}
}
问题出在这一行:
String connURL=“jdbc:odbc:;DRIVER=Microsoft Access驱动程序(*.accdb);DBQ=“+accessFileName+”.accdb;PWD=“代码>
您应将其更改为:
String connURL=“jdbc:odbc:DRIVER=Microsoft Access驱动程序(*.accdb);DBQ=“+accessFileName+”.accdb;PWD=“”代码>
i、 e.您需要删除jdbc和odbc之间的分号。可以使用
尝试此操作。您遇到了哪种异常?它正在创建表,但在打开数据库中的表时抛出错误“保留错误(5001)。此错误没有原因”
con = ConnectMdb(homedirectory+"/"+"Centre.accdb");
if (con != null) {
Statement st3 = null;
try {
st3 = (Statement) con.createStatement();
} catch (SQLException ex) {
Logger.getLogger(DataEntryScreen.class.getName()).log(Level.SEVERE, null, ex);
}
String sqlq3 = "CREATE TABLE REGISTRATION " +
"(id INTEGER not NULL, " +
" first VARCHAR(255), " +
" last VARCHAR(255), " +
" age INTEGER, " +
" PRIMARY KEY ( id ))";
// System.out.println(sqlq1);
// ResultSet rs3 = null;
try {
st3.execute(sqlq3);
} catch (SQLException ex) {
Logger.getLogger(DataEntryScreen.class.getName()).log(Level.SEVERE, null, ex);
}