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(); } }
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(); }
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(); }
两种输出
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();