以文本方式查看主题

-  计算机科学论坛  (http://bbs.xml.org.cn/index.asp)
--  『 Semantic Web(语义Web)/描述逻辑/本体 』  (http://bbs.xml.org.cn/list.asp?boardid=2)
----  Eclipse链接Mysql,请问这段程序错哪了?  (http://bbs.xml.org.cn/dispbbs.asp?boardid=2&rootid=&id=55921)


--  作者:oynwj
--  发布时间:11/23/2007 9:22:00 PM

--  Eclipse链接Mysql,请问这段程序错哪了?
请各位大侠帮我看看,我已将mysql的jdbc驱动程序包含到工程中了,为什么在Eclipse里运行下面这段程序,却老是报错呢?
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

public class Mysql {
 public static void main(String args[]) {
     try {
       Class.forName("com.mysql.jdbc.Driver");        
       System.out.println("Success loading Mysql Driver!");
     }
     catch (Exception e) {
       System.out.print("Error loading Mysql Driver!");
       e.printStackTrace();
     }
     try {
       Connection connect = DriverManager.getConnection("jdbc:mysql://localhost/r9_db","oynwj","803229");
       System.out.println("Success connect Mysql server!");
       Statement stmt = connect.createStatement();
       ResultSet rs = stmt.executeQuery("select * from help_topic");
       while (rs.next()) {
         System.out.println(rs.getString("name"));
       }
     }
     catch (Exception e) {
       System.out.print("get data error!");
       e.printStackTrace();
     }
   }

}
报错如下:
Error loading Mysql Driver!java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
 at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
 at java.security.AccessController.doPrivileged(Native Method)
 at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
 at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
 at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268)
 at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
 at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
 at java.lang.Class.forName0(Native Method)
 at java.lang.Class.forName(Class.java:164)get data error!
 at Mysql.main(Mysql.java:9)
java.lang.ClassNotFoundException: org.gjt.mm.mysql.Driver
 at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
 at java.security.AccessController.doPrivileged(Native Method)
 at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
 at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
 at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268)
 at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
 at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
 at java.lang.Class.forName0(Native Method)
 at java.lang.Class.forName(Class.java:164)
 at Mysql.main(Mysql.java:17)
谢谢指教!


--  作者:jpz6311whu
--  发布时间:11/23/2007 9:29:00 PM

--  
我已将mysql的jdbc驱动程序包含到工程中了

--
这一步有问题


--  作者:oynwj
--  发布时间:11/24/2007 7:55:00 PM

--  
不是太懂?能解释清楚什么问题么?我把mysql-connector-java-3.1.10文件夹里的mysql-connector-java-3.1.10-bin.jar文件import进去了,有什么问题呢?

--  作者:jpz6311whu
--  发布时间:11/24/2007 8:32:00 PM

--  
mysql-connector-java-3.1.10-bin.jar
这里面有这两个类么?
com.mysql.jdbc.Driver
org.gjt.mm.mysql.Driver

--  作者:oynwj
--  发布时间:11/24/2007 10:32:00 PM

--  
有这两个类的,怎么办呢?
--  作者:jpz6311whu
--  发布时间:11/24/2007 11:33:00 PM

--  
mysql-connector-java-3.1.10-bin.jar文件import进去了

--
并没有import进去,重新import一下


--  作者:oynwj
--  发布时间:11/25/2007 2:24:00 PM

--  
大侠,今天重新import了,怎么还是不行呢?是不是程序有问题?运行时mysql要打开吗?
--  作者:jpz6311whu
--  发布时间:11/25/2007 11:03:00 PM

--  
你把这个Eclipse工程打包发上来,帮你看看
--  作者:oynwj
--  发布时间:11/26/2007 8:38:00 PM

--  
谢谢楼上大侠,我在Java building path里重新加了mysql-connector-java-3.1.10-bin.jar,可以连接Mysql了,但是还是有错(错误如下),不好意思,能帮忙看看吗?谢谢!
Success loading Mysql Driver!
Success connect Mysql server!
get data error!java.sql.SQLException: Column 'name' not found.
 at com.mysql.jdbc.ResultSet.findColumn(ResultSet.java:910)
 at com.mysql.jdbc.ResultSet.getString(ResultSet.java:4942)
 at Mysql.main(Mysql.java:27)

--  作者:jpz6311whu
--  发布时间:11/26/2007 9:45:00 PM

--  
help_topic里面没有列'name'
你把help_topic表结构贴出来看看
--  作者:oynwj
--  发布时间:11/27/2007 9:06:00 AM

--  
大侠,help_topic表结构是指我做的本体吗?列对应本体的哪一部分呢?不好意思,一点不懂,能不能解释一下?
--  作者:jpz6311whu
--  发布时间:11/27/2007 11:46:00 AM

--  
表结构就是这个表有哪几个列?每一列的列名和数据类型是什么样的?
--  作者:oynwj
--  发布时间:11/27/2007 8:47:00 PM

--  

此主题相关图片如下:
按此在新窗口浏览图片

大侠,我的table名叫catalogue,我输入"show index from catalogue;"命令,是否显示了行和列?


--  作者:jpz6311whu
--  发布时间:11/27/2007 10:05:00 PM

--  
不是这个:),我是问你help_topic这个表的结构,它有哪些列,每一列什么数据类型
--  作者:flyingFang
--  发布时间:11/28/2007 3:41:00 PM

--  
你程序里的这个select * from help_topic,是要通过JDBC 查找 Mysql 数据库中的一个表的全部数据,表名称是“help_topic”。查找到的全部数据,保存在变量rs中了。

之后 whiled (rs. next) 语句,是用来打印rs中得到的查询结果的,并且你程序中指定打印help_topic表的name字段的数据值。可是,程序并没有正确找到rs中有name字段,也就是说很可能你的help_topic表并没有name字段。

你在mysql的命令行中,输入“select * from help_topic”  ,显示的第一行是字段名,你看看那里有什么,把name 替换为其中任何一个,估计都能正确让程序跑起来。


--  作者:oynwj
--  发布时间:11/28/2007 9:25:00 PM

--  
谢谢楼上两位高手,我最初程序写错了,我用protege做本体时,保存的数据库名是r9_db,表名是catalogue,我在mysql的命令行中,输入“select * from catalogue”  ,显示无数的数字,中间夹着我做的中文本体,如下图,在Eclipse里运行起来了,但是也是和mysql里显示一样,是不是我哪里做错了,为什么不是中文,而是这么多数字呢?
此主题相关图片如下:
按此在新窗口浏览图片
我在mysql的命令行中,输入"describe catalogue",显示如下图,请高手们帮帮看看,小妹基础太差了。
此主题相关图片如下:
按此在新窗口浏览图片
W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
187.500ms