для школьного проекта базы данных мы делаем программу базы данных (пользовательский интерфейс и база данных).Используя Microsoft Access 2010, я создал базу данных, заполнил ее некоторыми примерами данных, сохранил их в формате .mdb и поместил в папку моего проекта.
При запуске в eclipse следующий код работает нормально, подключается идаже получает запрос.Однако я нахожу, что не могу экспортировать код в jar-файл и запустить его (что необходимо для проекта, дать им рабочую копию вашей программы на компакт-диске или флэш-диске), и я также не могу перенестикод для Netbeans, чтобы он работал, а также попытка компиляции на машине Linux.
Я предполагаю, что это проблема с включением драйверов или попыткой использования доступа Microsoft.Ошибка, которую я получаю при запуске jar или при работе на Netbeans, приведена под кодом.Поэтому я спрашиваю, как мне включить драйверы, чтобы сделать программу переносимой, или как еще я могу решить эту проблему?
Заранее спасибо
import java.sql.*;
public class JDBCTest {
static Connection connection;
static Statement statement;
public static void main(String args[]){
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();
String database = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=TLDATABASEDBM.mdb";
connection = DriverManager.getConnection( database ,"","");
buildStatement();
executeQuery();
}catch(Exception e){
e.printStackTrace();
System.out.println("Error!");
}
}
public static void buildStatement() throws SQLException {
statement = connection.createStatement();
}
public static void executeQuery() throws SQLException {
boolean foundResults = statement.execute("SELECT * FROM tblStaff AS x WHERE City='Calgary'");
if(foundResults){
ResultSet set = statement.getResultSet();
if(set!=null) displayResults(set);
}else {
connection.close();
}
}
public static 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)+":\t";
text+=rs.getString(i);
//text+="</"+metaData.getColumnName(i)+">";
text+="\n";
}
text+="\n";
}
System.out.println(text);
}
}
Ошибка, упомянутая выше:
java.sql.SQLException: [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified
at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6957)
at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7114)
at sun.jdbc.odbc.JdbcOdbc.SQLDriverConnect(JdbcOdbc.java:3073)
at sun.jdbc.odbc.JdbcOdbcConnection.initialize(JdbcOdbcConnection.java:323)
at sun.jdbc.odbc.JdbcOdbcDriver.connect(JdbcOdbcDriver.java:174)
at java.sql.DriverManager.getConnection(DriverManager.java:582)
at java.sql.DriverManager.getConnection(DriverManager.java:207)
at tldatabase.DataConnect.makeConnection(DataConnect.java:35)
at tldatabase.Main.main(Main.java:24)