Class.forName("com.mysql.jdbc.Driver");不执行,什么原因呢?

dc老师 2010-12-10 02:36:41
在主机上运行良好,mysql也设好了,可以外部IP访问。
当把程序放到虚拟机里时,就不行了,加了很多语句后,发现只在“链接错误0”弹出了对话框,后面的Class.forName("com.mysql.jdbc.Driver");执行没有?为什么呢?


if(ID && PASSWORD && jComboBox.getSelectedItem()=="学生"){
try {
JOptionPane.showMessageDialog(lab3, "链接错误0","提示",JOptionPane.INFORMATION_MESSAGE);
Class.forName("com.mysql.jdbc.Driver");
JOptionPane.showMessageDialog(lab3, "链接错误1","提示",JOptionPane.INFORMATION_MESSAGE);
conn = DriverManager.getConnection(LoginFrame.IP,"admin", "admin");//Connection
JOptionPane.showMessageDialog(lab3, "链接错误2","提示",JOptionPane.INFORMATION_MESSAGE);
stmt = conn.createStatement();//Statement
JOptionPane.showMessageDialog(lab3, "链接错误3","提示",JOptionPane.INFORMATION_MESSAGE);
SQL = "select * from Student where stuID='" + c_username.getText() + "' and stuPwd='"+ String.valueOf(c_password.getPassword())+"'";
rs = stmt.executeQuery(SQL);
JOptionPane.showMessageDialog(lab3, "链接错误4","提示",JOptionPane.INFORMATION_MESSAGE);
boolean m = false; //判断是否帐号密码错误.false为失败.


...全文
1110 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
dc老师 2010-12-17
  • 打赏
  • 举报
回复
问题解决了,是打包的时候没有吧mysql的jar包打到包里,用eclipse的fat插件重新打了次包就好了。
jiangboqj 2010-12-13
  • 打赏
  • 举报
回复
不敢苟同楼上的说法,jar包没导入可能是原因之一,跟有没有捕获异常有关系么,后面捕获了异常照样会出现楼主所说的问题。
chaorenwopashei 2010-12-13
  • 打赏
  • 举报
回复
都是高手啊,问题可能发生在1,jar包没有载入,2,没有捕获异常。
jiangboqj 2010-12-13
  • 打赏
  • 举报
回复
先解释一下Class.forName("com.mysql.jdbc.Driver");为什么没有执行,因为程序运行到此行的时候发生了异常,而此语句又在try{}里,所有程序会直接跳到catch{}语句去执行相应的异常处理语句了,然后如果有finally{}就执行finally{}里面的代码,然后程序停止。所以Class.forName("com.mysql.jdbc.Driver");以后的代码均不会执行了。
yueliangchuaner 2010-12-13
  • 打赏
  • 举报
回复
估计是jar包没有导入,在MyEclipse的项目上的Java build path 导入一下,试试
shaosijun2004 2010-12-11
  • 打赏
  • 举报
回复
Class.forName("com.mysql.jdbc.Driver");
哥们,这个作用相当于new com.mysql.jdbc.Driver();
目的是为了让 环境中有此对象
如果你没对应的类 要抛出 ClassNotFoundException 的
bolink5 2010-12-11
  • 打赏
  • 举报
回复
虚拟机是什么环境啊 linux还是?
虚拟机 中的环境配好了吗?
dd_zhouqian 2010-12-10
  • 打赏
  • 举报
回复
调试就知道了
dc老师 2010-12-10
  • 打赏
  • 举报
回复
把包放在安装路径的Jre包里了,classpath也配置了,没有任何错误提示,自己加写对话框去。

这个东西在主机上运行是好的,只是在虚拟机上有问题。
fantasy0126 2010-12-10
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 hengxin54 的回复:]

没有错误提示?
你的mysql的jar包传过去了么?
[/Quote]
你驱动包没放在classpath路径里面吧
hengxin54 2010-12-10
  • 打赏
  • 举报
回复
没有错误提示?
你的mysql的jar包传过去了么?
knightzhuwei 2010-12-10
  • 打赏
  • 举报
回复
有错误嘛 抛出了嘛 你catch里咋写的啊

62,635

社区成员

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

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