六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 63|回复: 0

Java 操作Access加密、未加密数据库方法

[复制链接]

升级  10%

1

主题

1

主题

1

主题

童生

Rank: 1

积分
5
 楼主| 发表于 2013-1-29 22:30:09 | 显示全部楼层 |阅读模式
package com.mvc.fuhui;
import java.sql.*;

public class DBAccess {
    public Connection conn=null;
    /**
     * 连接未加密的数据库
     * @param dbPath
     * @return
     * @throws Exception
     */
    public Statement getStatement(String dbPath) throws Exception{
        Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
        String dburl = "jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};" +
                "DBQ="+dbPath;// 此为NO-DSN方式
        // String dburl ="jdbc:odbc:odbcName";//此为ODBC连接方式
        conn = DriverManager.getConnection(dburl);
        return conn.createStatement();
    }
   
    /**
     * 连接加密的数据库
     * @param dbPath
     * @return
     * @throws Exception
     */
    public Statement getStatement(String dbPath,String password) throws Exception{
        Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
        String dburl = "jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};" +
                "pwd="+password+";DBQ="+dbPath;// 此为NO-DSN方式
        // String dburl ="jdbc:odbc:odbcName";//此为ODBC连接方式
        conn = DriverManager.getConnection(dburl);
        return conn.createStatement();
    }
    /**
     * 查询数据库
     * @param stmt
     * @param query
     * @return
     * @throws Exception
     */
    public ResultSet executeQuery(Statement stmt,String query) throws Exception{
        ResultSet rs=stmt.executeQuery(query);
        return rs;
    }
   
    /**
     * 更新数据库
     * @param stmt
     * @param query
     * @throws SQLException
     */
    public void executeUpdate(Statement stmt,String query) throws SQLException{
        stmt.executeUpdate(query);
    }
   
    /**
     * 关闭链接
     * @throws SQLException
     */
    public void close() throws SQLException{
        if(conn!=null)
            conn.close();
    }
   
    public static void main(String args[]) throws Exception {
        DBAccess db=new DBAccess();
        String dbPath="D:\\fh\\FH-pwd6007.MDB";
        String query="select top 20 * from data";
        String password="6007";
        Statement stmt=db.getStatement(dbPath, password);
        ResultSet rs=db.executeQuery(stmt, query);
        while(rs.next()){
            System.out.println(rs.getString(1) + "\t" + rs.getString(2) + "\t"
                    + rs.getString(3) + "\t" + rs.getString(4) + "\t"
                    + rs.getString(5));
        }
    }
}
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表