JAVA连接access

Takuya1972 2010-10-12 09:12:38
我是java初学者,想用java连接access,按着一本书写的代码连接,怎么样都不对,明明跟书上一模一样了,还是提示有很多错误
如下
先在access里新建一个数据表student,内容包括学生姓名,年龄,介绍等
再建一个JdbcOdbcDriverTest.java的文件,内容如下



/* JdbcOdbcDriverTest.java */
//导入JDBC的相关类
import java.sql.*;

public class JdbcOdbcDriverTest
{
java.sql.Connection conn=null;//定义数据库连接对象
java.sql.Statement st=null;//定义数据库执行对象
public void connect_to_access() //定义连接数据库的方法
{
try
{
//查找JDBC-ODBC-Driver的驱动程序,如果找不到会出错
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
/*
如果查找成功就尝试连接数据库,DriverManager的getConnection方法有3个参数:
(1) 表示数据库的URL,每个数据库的URL定义方法不一样的,
JDBC-ODBC Driver连接Access的定义方法是:
jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=person.mdb
(2) 表示数据库的用户名
(3) 表示数据库的密码
*/
conn=DriverManager.getConnection("jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=person.mdb", "","");
System.out.println("与Access数据库连接成功!");
}catch(Exception e)//捕获错误
{
System.out.println("连接Access数据库错误!");
System.out.println(e.getMessage());//打印出错原因
}

}
/* 添加一个学生到Access数据库中
add_a_student方法有3个参数:
(1) name:表示学生的姓名
(2) age: 表示学生年龄
(3) introduce: 表示对学生的介绍
*/
public void add_a_student(String name,int age,String introduce)
{
try
{
st=conn.createStatement();//生成数据库执行对象
st.executeUpdate("insert into student values('"+name+"','"+age+"','"+introduce+"')");//执行添加学生的SQL语句
System.out.println("学生添加成功!");
}
catch(Exception e)//捕获错误
{
System.out.println("添加学生时出错!");
System.out.println(e.getMessage());//打印出错原因
}
}
public void close_connection()//定义关闭数据库的方法
{
try
{
conn.close();//关闭数据库
System.out.println("数据库关闭成功!");
}
catch(Exception e)//捕获错误
{
System.out.println("数据库关闭错误!");
System.out.println(e.getMessage());//打印出错原因
}
}
}

然后建一个InvokeAccess.java 的文件,内容如下

/* InvokeAccess.java
调用Access操作例程
*/
public class InvokeAccess
{
public static void main(String args[])
{
System.out.println("Begin to uses jdbc-odbc-Driver to access!");
JdbcOdbcDriverTest example=new JdbcOdbcDriverTest();
example.connect_to_access();
example.add_a_student("Seamus",23,"A very good student!");
example.close_connection();
}
};

然后运行上面两个文件,就会显示数据库连接成功等信息
可是我运行起来总是显示很多错误,我是个初学者,谁能帮帮我,万分感谢
...全文
4460 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
fenghuo_pc 2012-06-05
  • 打赏
  • 举报
回复
DBQ=person.mdb得用具体的存盘路径,例如DBQ=E:\\database\\student.mdb;
风云正 2012-02-23
  • 打赏
  • 举报
回复
把driver={Microsoft Access Driver (*.mdb)};DBQ=person.mdb换成你的数据源的名字。。。
ak471230 2011-09-25
  • 打赏
  • 举报
回复
看这里,这里有解决方法。
http://hi.baidu.com/ak461230/blog/item/4c52c6fa80ea490a6d22eb0a.html
Takuya1972 2010-10-13
  • 打赏
  • 举报
回复
错误信息很多我也不太懂是什么意思,有谁能帮我看一下
E:\access\javaccess>javac JdbcOdbcDriverTest.java
JdbcOdbcDriverTest.java:1: 警告:编码 GBK 的不可映射字符
锘?* JdbcOdbcDriverTest.java */
^
JdbcOdbcDriverTest.java:7: 警告:编码 GBK 的不可映射字符
java.sql.Connection conn=null;//瀹氫箟鏁版嵁搴撹繛鎺ュ璞?
^
JdbcOdbcDriverTest.java:8: 警告:编码 GBK 的不可映射字符
java.sql.Statement st=null;//瀹氫箟鏁版嵁搴撴墽琛屽璞?
^
JdbcOdbcDriverTest.java:16: 警告:编码 GBK 的不可映射字符
濡傛灉鏌ユ壘鎴愬姛灏卞皾璇曡繛鎺ユ暟鎹簱,DriverManager鐨刧etConnection鏂规硶鏈
?涓弬鏁帮細
^
JdbcOdbcDriverTest.java:17: 警告:编码 GBK 的不可映射字符
(1) 琛ㄧず鏁版嵁搴撶殑URL锛屾瘡涓暟鎹簱鐨刄RL瀹氫箟鏂规硶涓嶄竴鏍风殑锛?
^
JdbcOdbcDriverTest.java:20: 警告:编码 GBK 的不可映射字符
(2) 琛ㄧず鏁版嵁搴撶殑鐢ㄦ埛鍚?
^
JdbcOdbcDriverTest.java:27: 警告:编码 GBK 的不可映射字符
System.out.println("杩炴帴Access鏁版嵁搴撻敊璇?");
^
JdbcOdbcDriverTest.java:32: 警告:编码 GBK 的不可映射字符
/* 娣诲姞涓?釜瀛︾敓鍒癆ccess鏁版嵁搴撲腑
^
JdbcOdbcDriverTest.java:33: 警告:编码 GBK 的不可映射字符
add_a_student鏂规硶鏈?涓弬鏁帮細
^
JdbcOdbcDriverTest.java:34: 警告:编码 GBK 的不可映射字符
(1) name:琛ㄧず瀛︾敓鐨勫鍚?
^
JdbcOdbcDriverTest.java:42: 警告:编码 GBK 的不可映射字符
st=conn.createStatement();//鐢熸垚鏁版嵁搴撴墽琛屽璞?
^
JdbcOdbcDriverTest.java:44: 警告:编码 GBK 的不可映射字符
System.out.println("瀛︾敓娣诲姞鎴愬姛锛?);
^
JdbcOdbcDriverTest.java:48: 警告:编码 GBK 的不可映射字符
System.out.println("娣诲姞瀛︾敓鏃跺嚭閿?");
^
JdbcOdbcDriverTest.java:56: 警告:编码 GBK 的不可映射字符
conn.close();//鍏抽棴鏁版嵁搴?
^
JdbcOdbcDriverTest.java:57: 警告:编码 GBK 的不可映射字符
System.out.println("鏁版嵁搴撳叧闂垚鍔?");
^
JdbcOdbcDriverTest.java:61: 警告:编码 GBK 的不可映射字符
System.out.println("鏁版嵁搴撳叧闂敊璇?");
^
JdbcOdbcDriverTest.java:1: 非法字符: \65533
锘?* JdbcOdbcDriverTest.java */
^
JdbcOdbcDriverTest.java:44: 未结束的字符串字面值
System.out.println("瀛︾敓娣诲姞鎴愬姛锛?);
^
JdbcOdbcDriverTest.java:44: 需要 ';'
System.out.println("瀛︾敓娣诲姞鎴愬姛锛?);
^
JdbcOdbcDriverTest.java:46: "catch" 不带有 "try"
catch(Exception e)//鎹曡幏閿欒
^
JdbcOdbcDriverTest.java:46: 需要 ')'
catch(Exception e)//鎹曡幏閿欒
^
JdbcOdbcDriverTest.java:46: 不是语句
catch(Exception e)//鎹曡幏閿欒
^
JdbcOdbcDriverTest.java:46: 需要 ';'
catch(Exception e)//鎹曡幏閿欒
^
JdbcOdbcDriverTest.java:40: "try" 不带有 "catch" 或 "finally"
try
^
JdbcOdbcDriverTest.java:52: 非法的表达式开始
public void close_connection()//瀹氫箟鍏抽棴鏁版嵁搴撶殑鏂规硶
^
JdbcOdbcDriverTest.java:52: 非法的表达式开始
public void close_connection()//瀹氫箟鍏抽棴鏁版嵁搴撶殑鏂规硶
^
JdbcOdbcDriverTest.java:52: 需要 ';'
public void close_connection()//瀹氫箟鍏抽棴鏁版嵁搴撶殑鏂规硶
^
JdbcOdbcDriverTest.java:65: 进行语法解析时已到达文件结尾
}
^
12 错误
16 警告

E:\access\javaccess>javac InvokeAccess.java
.\JdbcOdbcDriverTest.java:1: 警告:编码 GBK 的不可映射字符
锘?* JdbcOdbcDriverTest.java */
^
.\JdbcOdbcDriverTest.java:7: 警告:编码 GBK 的不可映射字符
java.sql.Connection conn=null;//瀹氫箟鏁版嵁搴撹繛鎺ュ璞?
^
.\JdbcOdbcDriverTest.java:8: 警告:编码 GBK 的不可映射字符
java.sql.Statement st=null;//瀹氫箟鏁版嵁搴撴墽琛屽璞?
^
.\JdbcOdbcDriverTest.java:16: 警告:编码 GBK 的不可映射字符
濡傛灉鏌ユ壘鎴愬姛灏卞皾璇曡繛鎺ユ暟鎹簱,DriverManager鐨刧etConnection鏂规硶鏈
?涓弬鏁帮細
^
.\JdbcOdbcDriverTest.java:17: 警告:编码 GBK 的不可映射字符
(1) 琛ㄧず鏁版嵁搴撶殑URL锛屾瘡涓暟鎹簱鐨刄RL瀹氫箟鏂规硶涓嶄竴鏍风殑锛?
^
.\JdbcOdbcDriverTest.java:20: 警告:编码 GBK 的不可映射字符
(2) 琛ㄧず鏁版嵁搴撶殑鐢ㄦ埛鍚?
^
.\JdbcOdbcDriverTest.java:27: 警告:编码 GBK 的不可映射字符
System.out.println("杩炴帴Access鏁版嵁搴撻敊璇?");
^
.\JdbcOdbcDriverTest.java:32: 警告:编码 GBK 的不可映射字符
/* 娣诲姞涓?釜瀛︾敓鍒癆ccess鏁版嵁搴撲腑
^
.\JdbcOdbcDriverTest.java:33: 警告:编码 GBK 的不可映射字符
add_a_student鏂规硶鏈?涓弬鏁帮細
^
.\JdbcOdbcDriverTest.java:34: 警告:编码 GBK 的不可映射字符
(1) name:琛ㄧず瀛︾敓鐨勫鍚?
^
.\JdbcOdbcDriverTest.java:42: 警告:编码 GBK 的不可映射字符
st=conn.createStatement();//鐢熸垚鏁版嵁搴撴墽琛屽璞?
^
.\JdbcOdbcDriverTest.java:44: 警告:编码 GBK 的不可映射字符
System.out.println("瀛︾敓娣诲姞鎴愬姛锛?);
^
.\JdbcOdbcDriverTest.java:48: 警告:编码 GBK 的不可映射字符
System.out.println("娣诲姞瀛︾敓鏃跺嚭閿?");
^
.\JdbcOdbcDriverTest.java:56: 警告:编码 GBK 的不可映射字符
conn.close();//鍏抽棴鏁版嵁搴?
^
.\JdbcOdbcDriverTest.java:57: 警告:编码 GBK 的不可映射字符
System.out.println("鏁版嵁搴撳叧闂垚鍔?");
^
.\JdbcOdbcDriverTest.java:61: 警告:编码 GBK 的不可映射字符
System.out.println("鏁版嵁搴撳叧闂敊璇?");
^
.\JdbcOdbcDriverTest.java:1: 非法字符: \65533
锘?* JdbcOdbcDriverTest.java */
^
.\JdbcOdbcDriverTest.java:44: 未结束的字符串字面值
System.out.println("瀛︾敓娣诲姞鎴愬姛锛?);
^
.\JdbcOdbcDriverTest.java:44: 需要 ';'
System.out.println("瀛︾敓娣诲姞鎴愬姛锛?);
^
.\JdbcOdbcDriverTest.java:46: "catch" 不带有 "try"
catch(Exception e)//鎹曡幏閿欒
^
.\JdbcOdbcDriverTest.java:46: 需要 ')'
catch(Exception e)//鎹曡幏閿欒
^
.\JdbcOdbcDriverTest.java:46: 不是语句
catch(Exception e)//鎹曡幏閿欒
^
.\JdbcOdbcDriverTest.java:46: 需要 ';'
catch(Exception e)//鎹曡幏閿欒
^
.\JdbcOdbcDriverTest.java:40: "try" 不带有 "catch" 或 "finally"
try
^
.\JdbcOdbcDriverTest.java:52: 非法的表达式开始
public void close_connection()//瀹氫箟鍏抽棴鏁版嵁搴撶殑鏂规硶
^
.\JdbcOdbcDriverTest.java:52: 非法的表达式开始
public void close_connection()//瀹氫箟鍏抽棴鏁版嵁搴撶殑鏂规硶
^
.\JdbcOdbcDriverTest.java:52: 需要 ';'
public void close_connection()//瀹氫箟鍏抽棴鏁版嵁搴撶殑鏂规硶
^
.\JdbcOdbcDriverTest.java:65: 进行语法解析时已到达文件结尾
}
^
InvokeAccess.java:12: 找不到符号
符号: 方法 close_connection()
位置: 类 JdbcOdbcDriverTest
example.close_connection();
^
.\JdbcOdbcDriverTest.java:46: 找不到符号
符号: 变量 e
位置: 类 JdbcOdbcDriverTest
catch(Exception e)//鎹曡幏閿欒
^
.\JdbcOdbcDriverTest.java:49: 找不到符号
符号: 变量 e
位置: 类 JdbcOdbcDriverTest
System.out.println(e.getMessage());//鎵撳嵃鍑洪敊鍘熷洜
^
15 错误
16 警告

E:\access\javaccess>
myhope88 2010-10-13
  • 打赏
  • 举报
回复
那就是没有连接到access啊,看你的连接字符串,dbq=XXX.mdb,这样能找到数据库文件吗,不行吧,你得用绝对路径的,如果是放在网站目录下的,可以利用request.RealPath来构造一下数据库文件的绝对路径
kebin0001 2010-10-13
  • 打赏
  • 举报
回复
貼上錯誤訊息,那個才是找出問題的線索。
lovejavalovechina 2010-10-13
  • 打赏
  • 举报
回复
建议暂时别用access,先把Mysql用溜吧,之后再学access。

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧