我想把数据源去掉,用netbeans连接access数据库,然后把数据库中的表内容显示到swing中怎么实现?网上也有一些连接例子,比如
import java.sql.*;   
  
public class Access{   
  
    public static void main(String args[]) throws Exception{   
        String strurl="jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=D:\\projects\\demo.mdb";   
        Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");   
        Connection conn=DriverManager.getConnection(strurl) ;   
        Statement stmt=conn.createStatement();   
        ResultSet rs=stmt.executeQuery("select * from mcp_swty_player");   
        while(rs.next())   
            System.out.println(rs.getString("player_mobile"));   
        rs.close();   
        stmt.close();   
        conn.close();   
    }   
}   我现在实现的方法是建立实体类,持久性,jframe窗口,添加控件
去掉数据源后 就会提示错误,我也不知道怎么用这段代码?
急用!!!!!!!

解决方案 »

  1.   

    从来没用过 access 数据库,进来学习一下
      

  2.   

    http://zhangyuanjava.javaeye.com/blog/666873
      

  3.   

    给你个例子:import java.io.File;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;/**
     *
     * @author Administrator
     */
    public class DB{    public DB() {
            this.init();
        }
    //将Connection,Statament作为类属性,方便后边直接使用
        Connection con;
        Statement stm;    public void init() {
            try {
    //加载jdbc-odbc驱动,并且捕获异常
                Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
                System.out.println("加载驱动成功");
            } catch (ClassNotFoundException ex) {
                System.out.println("驱动加载失败");
            }
    //下边这句就是今天的精彩部分了,我们通过这句就能完成直接连接到文件的目的
            String url = "jdbc:odbc:Driver={MicroSoft Access Driver (*.mdb)};DBQ=数据库文件绝对路径或相对路径";        try {
                con = DriverManager.getConnection(url, "", "");
                System.out.println("建立连接成功");
            } catch (SQLException ex1) {
                System.out.println("建立连接失败");
            }
            try {
                stm = (Statement) con.createStatement();
            } catch (SQLException ex2) {
                System.out.println("创建控制器失败");
            }
        //System.out.println(file.getAbsolutePath());
        }    //执行delete insert updata 抛出异常
        public int exec(String s) throws SQLException {
            return stm.executeUpdate(s);
        }    //执行查询 抛出异常
        public ResultSet query(String s) throws SQLException {
            return stm.executeQuery(s);
        }    /**
         * 关闭数据库连接
         * @throws java.sql.SQLException
         */
        public void closeDB() {
            try {
                stm.close();
            } catch (SQLException ex) {
            }
            try {
                con.close();
            } catch (SQLException ex) {
            }
        }
    }这段代码跟LZ代码差不多。只不过重用性更强些,且不用配置数据源,是一种直连方式。
    下面给你用法。假设数据库有张user表,结构如下。
    id     自动编号
    u_name 文本
    假设你有实体类 User 与 user 表相对应。
    那么可以在某业务类这样获取user表数据:
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.util.ArrayList;
    import java.util.List;public class UserDAO () {
        public List findAll() {        List list = new ArrayList();
            String sql = "SELECT * FROM user";
            DB db = new DB();
            try {
                ResultSet rs = db.query(sql); // 执行查询            while (rs.next()) {
                    User user = new User ();
                    b.setId(rs.getLong("id"));
                    b.setName(rs.getString("u_name"));
                    list.add(b);
                }
            } catch (SQLException ex) {        } finally {
                db.closeDB(); // 关闭数据库连接
            }
            return list;
        }
    }在显示层可以调用 UserDAO 的 findAll () 方法来获取 user 表的数据,并遍历 List,将数据显示在JFrame 的各控件中。
      

  4.   

    你可以在在数据源中配置Access数据源,
    Class.forName( "sun.jdbc.odbc.JdbcOdbcDriver" );  Connection cn = DriverManager.getConnection( "jdbc:odbc:" + sDsn, sUsr, sPwd );去连接数据库,这种就是连接池的做法,不知道是否适合你做
      

  5.   

    6楼的
    我将表格绑定到list,跟你说的遍历list一样吗??
      

  6.   

    获取数据源,然后通过用户名和密码连接,java连接数据库都是这个思路
      

  7.   

    access 要用户名和密码吗?直接用路径就行了吧
      

  8.   

    不一样,遍历是取值,绑定是填充。如果我理解的没错,你所谓的绑定到list,应该是说把结果集中的数据填充到list。也就是上面代码中一部分。如下:
      while (rs.next()) {
        User user = new User ();
        b.setId(rs.getLong("id"));
        b.setName(rs.getString("u_name"));
        list.add(b);
      }不知道你问的是不是这个意思。