jdbc执行select无结果

时间:2021-10-31 01:13:13
代码如下:
Class.forName( "com.mysql.jdbc.Driver" ).newInstance();
Connection conn = DriverManager.getConnection( ConstantsDB."jdbc:mysql://xxxx?characterEncoding=utf8" , "xxx" , "xxx" );
Statement stmt = conn.createStatement();
ResultSet res = stmt.executeQuery( "select id from xxxx limit 1" );
while( res.next() ) 
{
   //....
}

程序里执行,显示无记录,我把sql直接在DB里执行是有结果的,哪里写错了呢?

6 个解决方案

#1


lz试试在MySQL上直接执行
select id from xxxx limit 1
看看会不会出结果, 没有的话就是sql语句错误
额,顺便问一下
DriverManager.getConnection( ConstantsDB."jdbc:mysql://xxxx?characterEncoding=utf8" , "xxx" , "xxx" );
是什么写法?没见过,,,还有 "类.字符串" 的写法?

#2


连的数据库跟你在数据库客户端查询的是不是同一个数据库;
后台有没有报错;
你获取数据,是直接用的res.getxxx(),没有在while循环里面再写res.next()吧。因为limt1,只会查出一条数据。
一个个排除吧。我猜想你是不是在while里面又写了一次res.next();

#3


引用 1 楼 u011004037 的回复:
额,顺便问一下
DriverManager.getConnection( ConstantsDB."jdbc:mysql://xxxx?characterEncoding=utf8" , "xxx" , "xxx" );
是什么写法?没见过,,,还有 "类.字符串" 的写法?

如果这个url可以这么传的话,那就是while里面有问题,贴出来看看

#4


楼主可以换一个sql语句试试,看看是sql语句的问题还是程序的问题。

#5


是数据库主从同步的问题,已经解决了!
谢谢大家的回复~~

#6


#1楼同学
那是我粘代码时粘错了的。。。不好意思。。。

#1


lz试试在MySQL上直接执行
select id from xxxx limit 1
看看会不会出结果, 没有的话就是sql语句错误
额,顺便问一下
DriverManager.getConnection( ConstantsDB."jdbc:mysql://xxxx?characterEncoding=utf8" , "xxx" , "xxx" );
是什么写法?没见过,,,还有 "类.字符串" 的写法?

#2


连的数据库跟你在数据库客户端查询的是不是同一个数据库;
后台有没有报错;
你获取数据,是直接用的res.getxxx(),没有在while循环里面再写res.next()吧。因为limt1,只会查出一条数据。
一个个排除吧。我猜想你是不是在while里面又写了一次res.next();

#3


引用 1 楼 u011004037 的回复:
额,顺便问一下
DriverManager.getConnection( ConstantsDB."jdbc:mysql://xxxx?characterEncoding=utf8" , "xxx" , "xxx" );
是什么写法?没见过,,,还有 "类.字符串" 的写法?

如果这个url可以这么传的话,那就是while里面有问题,贴出来看看

#4


楼主可以换一个sql语句试试,看看是sql语句的问题还是程序的问题。

#5


是数据库主从同步的问题,已经解决了!
谢谢大家的回复~~

#6


#1楼同学
那是我粘代码时粘错了的。。。不好意思。。。