翻了好多帖子,还是没能解决这问题,大伙帮帮忙!
这是源程序:
import java.sql.*;
public class JdbcTest
{
public static void main(String[] args)
{
try{
Class.forName("org.gjt.mm.mysql.Driver").newInstance();
System.out.println("ok");
System.out.println("connecting..............");
Connection dbCon = DriverManager.getConnection ("jdbc:mysql://10.11.5.39/sloopy","root","123456789");
System.out.println("connect!");
Statement s = dbCon.createStatement();
ResultSet rs1=s.executeQuery("select * from sex");
boolean more=rs1.next();
while(more) {
System.out.println(rs1.getInt(1)+" "+rs1.getString(2));
more=rs1.next();
}
}catch(SQLException e) {
System.out.println(e.getMessage());
}catch(Exception e1) {
}
}
}
下面是报错信息:
ok
connecting..............
Exception in thread "main" java.lang.ExceptionInInitializerError
at com.mysql.jdbc.ResultSet.getString(ResultSet.java:1948)
at com.mysql.jdbc.Connection.initializePropsFromServer(Connection.java:9
83)
at com.mysql.jdbc.Connection.connectionInit(Connection.java:905)
at com.mysql.jdbc.Driver.connect(Driver.java:311)
at java.sql.DriverManager.getConnection(DriverManager.java:512)
at java.sql.DriverManager.getConnection(DriverManager.java:171)
at JdbcTest.main(JdbcTest.java:11)
Caused by: java.lang.StringIndexOutOfBoundsException: String index out of range:
191
at java.lang.String.charAt(String.java:455)
at com.mysql.jdbc.StringUtils.<clinit>(StringUtils.java:48)
... 7 more
Press any key to continue...
这是什么错误啊?各位老大帮帮忙!
问题点数:100、回复次数:23Top
1 楼drnstar()回复于 2002-12-27 07:50:02 得分 5
newInstance()去掉试一下Top
2 楼tomatowitch(一半是鱼)回复于 2002-12-27 09:00:47 得分 5
}catch(SQLException e) {
System.out.println(e.getMessage());
改为:
}catch(Exception e) {
System.out.println(e.getMessage());Top
3 楼zxhong(红透半边天)回复于 2002-12-27 09:05:29 得分 5
rs1.getString(2)
->
rs1.getInt(2)
Top
4 楼cpplus(技术就是要坚持)回复于 2002-12-27 09:25:59 得分 0
Connection dbCon = DriverManager.getConnection ("jdbc:mysql://10.11.5.39:3306/sloopy","root","123456789");Top
5 楼fanter(爱了就爱了)回复于 2002-12-27 10:26:11 得分 0
楼上的各位朋友:
你们的方法我都试过了,还是不行,错误信息还是老样子。
不解中.......................................
Top
6 楼packy_li()回复于 2002-12-27 10:37:56 得分 0
你的mysql驱动配置对了吗?
Top
7 楼fanter(爱了就爱了)回复于 2002-12-27 12:00:57 得分 0
应该是对的吧,你看报错信息
ok
connecting..............
这都可以打印出来了,我想驱动应该是没问题的。
附上我的驱动配置:
1.在CLASSPATH加上了
D:\j2sdk\jre\lib\ext\mysql-connector-java-3.0.1-beta-bin.jar;
2.因为我是用JCreator,所以我在它的JDK Profiles 里也加上上面的路径。Top
8 楼bungler(明)回复于 2002-12-27 12:07:20 得分 0
boolean more=rs1.next();
while(more)
{
System.out.println(rs1.getInt(1)+" "+rs1.getString(2));
more=rs1.next();
}
这段代码怎么会事情啊,你这样不是进入死循环了吗。
改成
while(rs1.next())
{
System.out.println(rs1.getInt(1)+" "+rs1.getString(2));
more=rs1.next();
}
Top
9 楼gjdbf(痛哭的人)回复于 2002-12-27 12:10:57 得分 5
你的不用程序直接在mysql中用"root","123456789"能进去吗?
Top
10 楼fanter(爱了就爱了)回复于 2002-12-27 12:50:00 得分 0
to bungler(明) :
按你的方法改了,还是报错,报错信息一样。
to gjdbf(痛哭的人):
可以的。
还有就是//10.11.5.39/sloopy和程序不在同一台机器上。
Top
11 楼bungler(明)回复于 2002-12-27 12:55:53 得分 5
System.out.println(rs1.getInt(1)+" "+rs1.getString(2));
这句
你的数据表有几个字段啊
我记不清楚了
好象是0代表的是第一个字段,1代表的是第2个字段,代表的是第3个字段
最好不用这样方式访问数据
用
getXXX(FIELDNAME)是比较好的Top
12 楼fanter(爱了就爱了)回复于 2002-12-27 13:14:02 得分 0
to bungler(明) :
表里就两个字段
id int(4)
name varchar(10)
我现在改用了getInt("id") 和 getString("name"),可是还是报错,报错信息还是一样。郁闷死了...................Top
13 楼fanter(爱了就爱了)回复于 2002-12-27 13:51:51 得分 0
我把程序改成这个样子:
import java.sql.*;
public class JdbcTest
{
public static void main(String[] args)
{
try{
Class.forName("org.gjt.mm.mysql.Driver");
}
catch(java.lang.ClassNotFoundException e)
{
System.out.print("Class not found exception occur. Message is:");
System.out.print(e.getMessage());
}
try{
Connection dbCon = DriverManager.getConnection("jdbc:mysql://10.11.5.39:3306/sloopy","root","123456789");
Statement s = dbCon.createStatement();
}
catch(SQLException e)
{
System.out.print("Unabled to Connect MYSQL");
}
}
}
可是报错信息里既没有打印出
Class not found exception occur. Message is:
这一行,也没打印出
Unabled to Connect MYSQL
而是只有上面说的错误信息。
怪事了!Top
14 楼gjdbf(痛哭的人)回复于 2002-12-27 15:29:49 得分 20
可能你的包有问题Top
15 楼zxl19790710(雪龙)回复于 2002-12-27 16:25:14 得分 5
System.out.println("connect!");
这句话没有执行,所以Connection dbCon = DriverManager.getConnection("jdbc:mysql://10.11.5.39:3306/sloopy","root","123456789");
有问题Top
16 楼titaninwinter(梦里花落)回复于 2002-12-27 16:49:23 得分 5
关闭连接
Top
17 楼cpplus(技术就是要坚持)回复于 2002-12-27 17:07:16 得分 5
是不是网络连接不上?
你可以ping 10.11.5.39 吗?
Top
18 楼fanter(爱了就爱了)回复于 2002-12-27 19:31:16 得分 0
to gjdbf(痛哭的人) :
我下的JDBC驱动是mysql-connector-java-3.0.1-beta-bin.jar,里面也有org.gjt.mm.mysql.Driver。我觉得不是包的问题,如果有问题就不会打印出这两行了
System.out.println("ok");
System.out.println("connecting..............");
to zxl19790710(雪龙) :
我估计也是这一行有问题,可是我看文档了,格式就是这么写的,可是就是出问题,郁闷ing
to cpplus(百合_长发飘飘) :
可以ping的通的。Top
19 楼edong()回复于 2002-12-28 01:12:28 得分 20
问题好像处在com.mysql.jdbc.StringUtils的初始化代码中,可能与你的mysql驱动有关,你换一个试试Top
20 楼fanter(爱了就爱了)回复于 2002-12-28 10:17:01 得分 0
to edong():
我找了好久就找到了这个驱动,你能不能推荐一个下载的网址或者把驱动邮到我的信箱fatgod1979@sohu.com。先谢了!Top
21 楼Reason_Bbx(金龙鱼)回复于 2002-12-28 10:44:10 得分 20
Connection dbCon = DriverManager.getConnection ("jdbc:mysql://10.11.5.39/sloopy","root","123456789");
问题在这一句。。。不清楚到底怎么配置mysql的。。。你详细的说明。。。。
感觉上你的程序更本就没有连接到数据库。。。。
1、查明mysql设置 2、查你的jdbc:mysql驱动是不是有问题Top
22 楼fanter(爱了就爱了)回复于 2002-12-28 11:42:13 得分 0
to Reason_Bbx(金龙鱼) :
1. mysql 还需要做什么设置?我用的这个mysql是我们平时用来做测试用的,我想应该没问题吧。
2. 怎么查jdbc:mysql驱动是不是有问题?请指教Top
23 楼fanter(爱了就爱了)回复于 2002-12-28 22:34:28 得分 0
不好意思,顶一下。Top




