X-man

导航

java连接access数据库

完整代码:

package odbcj;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.Properties;

public class ads {
    public static Connection getJDBCConnection(){  
         try{  
         Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");//加载Access驱动    
         Properties prop = new Properties();     
               prop.put("charSet", "gb2312");  //设置编码防止中文出现乱码  
        Connection con = DriverManager.getConnection("jdbc:odbc:DRIVER=Microsoft Access Driver (*.mdb, *.accdb);DBQ=E:/text.accdb");    
                 //System.out.println(con);//打印连接  
        return con;  
          
         }catch(Exception e){  
             e.printStackTrace();  
         }  
         return null;  
        }  
    public static void showAllJDBC()throws Exception{  
       Connection con=getJDBCConnection();  
         PreparedStatement ps=con.prepareStatement("select *from 表1");// 07  
          ResultSet rs=ps.executeQuery();  
          while(rs.next()){  
              System.out.println(rs.getString(1)+"   "+rs.getString(2));  
              //s=Integer.toString((int)value);
              
              //jta.setText(rs.getString(1));
          }  
          rs.close();  
          ps.close();  
          con.close();  
  }  
    public static void main(String []argv) throws Exception{
        showAllJDBC();
    }
}
View Code

1:不使建立ODBC数据源的方法;

注意:

String url = "jdbc:odbc:DRIVER=Microsoft Access Driver(*.mdb, *.accdb);DBQ=E:/text.accdb";//无分号,会出错
//String url="jdbc:odbc:driver=Microsoft Access Driver (*.mdb, *.accdb);DBQ=E:/text.accdb";

try{
            //String url = "jdbc:odbc:DRIVER=Microsoft Access Driver(*.mdb, *.accdb);DBQ=E:/text.accdb";
            String url="jdbc:odbc:driver=Microsoft Access Driver (*.mdb, *.accdb);DBQ=E:/text.accdb";
            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
            Connection conn = DriverManager.getConnection(url);
            Statement sta = (Statement) conn.createStatement();
            ResultSet resu = ((java.sql.Statement) sta).executeQuery("select * from 表1");
            while(resu.next()){
                System.out.println(resu.getString("noise"));
            }
            resu.close();
            sta.close();
            conn.close();
            }catch(Exception e){
                e.printStackTrace();
            }
View Code

2:使用ODBC建立数据源的方法;

开始

>>控制面板

>>管理工具

>>数据源(ODBC)

>>用户DSN或系统DSN

系统:
系统数据源对当前机器上的所有用户可见.
用户:
只对当前用户可见,且只能用于当前机器上.
文件:
可以由安装了相同驱动程序的用户共享.
权限不同~~

>>点添加

>>找到"Microsoft Access Driver (*.mdb)",选中,再点完成>>自定义数据源名称,可创建一个新的或选择已经有的Access数据库(.mdb)其它可以不选

>>确定>>确定

到此数据源已经建立成功

接下来JAVA代码连接:

try{
            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
            //jdbc:odbc:数据源名称", "数据库用户名(如有)没有则空", "用户密码(如有)没有则空
            Connection conn = DriverManager.getConnection("jdbc:odbc:xxx");
            java.sql.Statement sta = conn.createStatement();
            ResultSet resu=(sta).executeQuery("select * from 表1");
            while(resu.next()){
                System.out.println(resu.getString("noise"));
            }
            resu.close();
            sta.close();
            conn.close();
        }catch(Exception e){
            e.printStackTrace();
        }    
View Code

 两种输出

  resu.getString(3)

  resu.getString("noise"); 

 以上连接数据库的方式均支持数据库的更新,删除,插入等操作

我用的是第一种方法操作acess数据库,遇到的详细问题在后续blog中指出。

 

 获得access主键

ResultSet rs=conn.getMetaData().getIndexInfo(null,null,"表1",true,false);
			  while(rs.next()){
			   String index=rs.getString("INDEX_NAME");
			   if(index!=null&&index.equalsIgnoreCase("Primarykey"))
			   System.out.println(rs.getString("COLUMN_NAME"));
			  }
			rs.close();

  

posted on 2014-03-08 18:05  雨钝风轻  阅读(600)  评论(0编辑  收藏  举报