public jdbc() {
  }
 Connection conn = null ;
 //String re = "" ;
 //设置你的数据库ip
 //String dbip = "127.0.0.1" ;
 //设置你的数据库用户名和密码:
 //String use = "" ;
 //String pass = "" ;
  public java.sql.Connection getConn(){
    try{
     Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();
     //String url ="jdbc:mysql://"+dbip+":3306/"+use+"?user="+use+"&password="+pass+"&useUnicode=true&characterEncoding=gb2312" ;
     conn= DriverManager.getConnection("jdbc:odbc:yyForum","xyworker","999");
     ///Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

}
    catch(Exception e){
    e.printStackTrace();
    System.out.println("LICHAO");
    }
    return this.conn ;
  }这个是我在网上看见的一段access数据操作代码,不过,总是感觉有问题,至少我用的时候总会报错,求解对于这段操作到底有问题么?

解决方案 »

  1.   

     对access数据操作  我们学的是连接 Oracle的。
    我们的方法是这样的。。希望对你有用、public class JdbcUtils {
    private static String url="jdbc:oracle:thin:@localhost:1521:orcl";
    private static String user="scott";
    private static String pwd="tiger";

    private JdbcUtils(){

    }
    // 1、注册驱动oracle.jdbc.driver.OracleDriver
    static{
    try {
    Class.forName("oracle.jdbc.driver.OracleDriver");
    } catch (ClassNotFoundException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    System.out.println("数据库驱动加载失败!");
    }
    }
    // 2、建立一个连接
    public static Connection getConnection() throws SQLException{
    return DriverManager.getConnection(url, user, pwd);
    }

    // 5、关闭资源
    public static void free(ResultSet rs,Statement stmt,Connection conn){
    try {
    if(rs!=null)
    rs.close();
    } catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }finally{
    try {
    if(stmt!=null)
    stmt.close();
    } catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }finally{
    try {
    if(conn!=null)
    conn.close();
    } catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    }
    }
    }
      

  2.   

    这是报的错误!
    java.sql.SQLException: [Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序
            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:185)
            at yy.jdbc.getConn(jdbc.java:19)
            at org.apache.jsp.index_jsp._jspService(index_jsp.java:105)
            at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
            at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
            at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:419)
            at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:391)
            at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
            at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
            at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
            at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240)
            at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:164)
            at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:462)
            at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
            at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
            at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:562)
            at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
            at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:395)
            at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:250)
            at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:188)
            at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:302)
            at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
            at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)        
            at java.lang.Thread.run(Thread.java:619)
             LICHAO
      

  3.   

    报错是驱动问题...难不成是少了驱动?  不过没用过Access  ,,用的oracle是要驱动Jar包
      

  4.   

    楼主啊,odbc啊,你用的是odbc连接啊,要在你的电脑上先配置。
    而不是纯java连接,你还是改用jdbc吧。
      

  5.   

    莫不是少了这条语句??
    jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ="+唉,继续坐等解答!
      

  6.   

    控制面板-》管理工具-》数据源 中加入一个access的数据源
      

  7.   

    问题已经给我解决了!
    是路径的问题,加上String accessurl ="jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ="+dbpath; 的问题 
    借着别人的代码重新写了遍,我把我改写的贴出来共享一下public class jdbc {
             private Connection conn = null;
             private File file=null;
             private URL url=null;  public Connection getConn(){
        
           String dbpath=String.valueOf(Thread.currentThread().getContextClassLoader().getResource("")); 
            dbpath=dbpath+"forum.mdb";
           System.out.println(dbpath);
          try
          {
                 url=new URL(dbpath);
                 file=new File(url.toURI());
           }catch(Exception e){}
            dbpath=file.toString();
            System.out.println(dbpath);
           String accessurl ="jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ="+dbpath; 
        try{
            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
            conn= DriverManager.getConnection(accessurl);
       }catch(Exception e){
           e.printStackTrace();
           System.out.println("打开失败");
      }
        return this.conn ;
      }
    不瞒你们说,
    这个就是我在网上下载的一个论坛的源码叫溢洋JSP论坛 jsp+access的超小型论坛
    写的很好,这可惜有点bug,
    唉,这个bug可把我害苦了!!!