jsp如何用ado方式连接Access 2007数据库文件?
比如用JDBC_ODBC方式连接Access 2007数据库文件如下:
String dbname = "data/test.accdb";//Access 数据库名称路径
String dbpath = application.getRealPath(dbname);//转化成物理路径
String user = ""; //Access 数据库用户名,没有则为空
String pwd = ""; //Access 数据库密码,没有则为空
//数据库连接字符串
String url ="jdbc:odbc:Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ="+dbpath;
//加载驱动程序
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
//建立连接
Connection conn= DriverManager.getConnection(url,user,pwd);
想用ado方式连接Access 2007数据库文件,怎么写呢?
[解决办法]
第一个是你想要的吗?
http://blog.csdn.net/withiter/article/details/17224651
[解决办法]
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.Timestamp;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
public class AccessManger {
private static Connection conn = null;
private ResultSet rs = null;
private Statement st = null;
static Logger log = Logger.getLogger(AccessManger.class);
public static Connection getConn(){
String url = "jdbc:odbc:myDS"; //myDS 数据源名称
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
conn = DriverManager.getConnection(url);
log.info("Access数据库连接成功");
} catch (Exception e) {
log.info("Access数据库连接失败");
}
return conn;
}
public static void close(ResultSet rs, Statement stmt, Connection conn) {
try {
if (rs != null)
rs.close();
} catch (Exception e) {
log.error("access rs 关闭异常",e);
} finally {
try {
if (stmt != null)
stmt.close();
} catch (Exception e2) {
log.error("access st 关闭异常",e2);
} finally {
try {
if (conn != null)
conn.close();
} catch (Exception e3) {
log.error("access conn 关闭异常",e3);
}
}
}
}
}
public void getZbstatList() throws SQLException {
String sql = "select log_id,wnd_id,time_call,time_leave,queue_id from zbstat where states = 4 ";
Connection conn = AccessManger.getConn();
Statement st = conn.createStatement();
ResultSet rs = st.executeQuery(sql);
try {
while (rs.next()) {
System.out.println(rs.getInt("log_id"));
System.out.println(rs.getString("wnd_id"));
System.out.println(rs.getTimestamp("time_call"));
System.out.println(rs.getTimestamp("time_leave"));
System.out.println(rs.getString("queue_id"));
}
} catch (SQLException e) {
System.out.println("读取ACCESS数据库数据出错了,导致原因可能是 :"+e.getMessage());
}finally{
AccessManger.close(rs, st, conn);
}
}