java连接access数据库

时间:2022-11-26 20:29:01

完整代码:

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();