I am connecting java to Microsoft access database but I am having following exception
java.sql.SQLException: [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified
try{
String ProjectPath= System.getProperties().getProperty("user.dir");
System.out.println(ProjectPath);
String path,fullstring;
path=ProjectPath+"\\data.mdb";
fullstring="jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=" +path;
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con=DriverManager.getConnection(fullstring);
System.out.println("Connected");
}catch(Exception e){
System.out.println("Connected Error: "+ e);
}
How can I solve my problem?
{Microsoft Access Driver (*.mdb)}
is the name of the older Microsoft Jet driver, which will only work in 32-bit applications. (There are no 64-bit versions of the Jet database engine or the Jet ODBC driver.)
To connect with .mdb
and .accdb
files from a 64-bit application you need to download and install the 64-bit version of the Access Database Engine (a.k.a. "ACE") from here, and then refer to it in your application by using the driver name {Microsoft Access Driver (*.mdb, *.accdb)}
.
import java.sql.*;
class dbTst {
public static void main(String args[]) throws Exception{
try{
//Driver for JDBC-ODBC Bridge
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
//Establishing the Connection through DSN
Connection con= DriverManager.getConnection("jdbc:odbc:db","","");
//Creating the Statement Object
Statement st=con.createStatement();
ResultSet rs=st.executeQuery("Select * from aman");
while(rs.next()==true){
System.out.println(rs.getString("name")+" - " + rs.getString("basic"));
}
rs.close();
st.close();
con.close();
}
catch(Exception ee){
System.out.println(ee.getMessage());
}
}
}
I think that you want to connect in some strange way..
http://docs.oracle.com/javase/tutorial/jdbc/basics/connecting.html
The code (use DriverManager):
public Connection getConnection() throws SQLException {
Connection conn = null;
Properties connectionProps = new Properties();
connectionProps.put("user", this.userName);
connectionProps.put("password", this.password);
if (this.dbms.equals("mysql")) {
conn = DriverManager.getConnection(
"jdbc:" + this.dbms + "://" +
this.serverName +
":" + this.portNumber + "/",
connectionProps);
} else if (this.dbms.equals("derby")) {
conn = DriverManager.getConnection(
"jdbc:" + this.dbms + ":" +
this.dbName +
";create=true",
connectionProps);
}
System.out.println("Connected to database");
return conn;
}