困扰了我好几天,用jdbc连接数据库的问题,不知道卡在哪里了,请大伙帮我看看。谢谢,帮我顶一顶,也给分。

时间:2021-01-31 23:19:10
我不是偷懒,我已经查了csdn上很多帖子,能打开的我都看了,还是不行。
我的代码,我是连接informix数据库,本代码唯一的功能就是测试连接。

import java.sql.*;
import java.util.*;

public class conn {

    public static void main(String[] args)
    {
   
        String url ="jdbc:informix-sqli://10.110.180.1:8002/testdb:informixserver=nmserver3;user=test;password=test";
        String testName = "Simple Connection";

Connection conn = null;

System.out.println(">>>" + testName + " test.");
System.out.println("URL = \"" + url + "\"");

try 
    {
    Class.forName("com.informix.jdbc.IfxDriver");
    } 
catch (Exception e)
    {
    System.out.println("ERROR: failed to load Informix JDBC driver.");
    }

try 
    {
    conn = DriverManager.getConnection(url);
    } 
catch (SQLException e) 
    {
    System.out.println("ERROR: failed to connect!");
    }

try 
    {
            conn.close();
    } 
catch (SQLException e) 
    {
    System.out.println("ERROR: failed to close the connection!");
    }

System.out.println(">>>End of " + testName + " test.");
    }
}


每次运行是连接失败。我的url配置都是参照odbc的连接配置的,比如端口号(8002),server名称(nmserver3),用的都和配置odbc的时候一样。url的格式是照驱动的帮助写的。我不知道informix数控库还要装什么东西才能被jdbc连接上吗?我的代码有毛病吗?请大家帮我看看,我已经被折磨了两天了,帮帮忙,帮我顶一下,我也很感激。谢谢。

27 个解决方案

#1


抱什么错

#2


是不是缺少.jar

#3


Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
Connection c = DriverManager.getConnection("jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=test","sa","888888888");
Statement s = c.createStatement();
ResultSet r = s.executeQuery("SELECT testcol from testtable");
while(r.next()) 
{
out.println(r.getString("testcol"));
}


这是连sqlserver 数据库的,你参考一下,好象你的url 不对吧?

#4


你都找了,看看这个吧。
四、jsp连接Informix数据库

testinformix.jsp如下:
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.sql.*"%>
<html>
<body>
<%Class.forName("com.informix.jdbc.IfxDriver").newInstance();
String url =
"jdbc:informix-sqli://123.45.67.89:1533/testDB:INFORMIXSERVER=myserver;
user=testuser;password=testpassword";
//testDB为你的数据库名
Connection conn= DriverManager.getConnection(url);
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
String sql="select * from test";
ResultSet rs=stmt.executeQuery(sql);
while(rs.next()) {%>
您的第一个字段内容为:<%=rs.getString(1)%>
您的第二个字段内容为:<%=rs.getString(2)%>
<%}%>
<%out.print("数据库操作成功,恭喜你");%>
<%rs.close();
stmt.close();
conn.close();
%>
</body>
</html>

#5


报的错发给大家看看

#6


我是在win2000,我得classpath=.;E:\JBuilder7\jdk1.3.1\lib;E:\JBuilder7\jdk1.3.1\lib\ifxjdbc.jar;E:\JBuilder7\jdk1.3.1\lib\ifxjdbc-

#7


我的错误被try 
    {
    conn = DriverManager.getConnection(url);
    } 
catch (SQLException e) 
    {
    System.out.println("ERROR: failed to connect!");
    }
截获了。就是无法连接。

#8


wjmmml(笑着悲伤) 贴的代码我已经看过了,我实在对比不出我的代码有什么不对。
谢谢大家的帮忙。

#9


私人意见:你的驱动注册的不对

即:Class.forName"com.informix.jdbc.IfxDriver");中的

"com.informix.jdbc.IfxDriver"写错了

#10


检查一下你的URL

#11


那应该怎么写,请指教?我的驱动已经找到了,而且我的代码是从informix驱动程序的例子里修改的。

#12


我的url我已经检查了无数次了,改写过好几次了,效果都是一样的。url ="jdbc:informix-sqli://10.110.180.1:8002/testdb:informixserver=nmserver3;user=test;password=test";
我也是怀疑这里可能有写的不对的,谁能帮我挑出来啊。

#13


SQL SERVER 的我连过,informix 没有,不知道驱动程序怎么加 和url
帮你up一下吧。

#14


是不是odbc能连接上,jdbc就一定能连接上呢?它们用的配置信息(端口,数据库名称,server名称)是一样的吗?

#15


建议你,把classpath重写一下,然后重启。试试用ODBC能不能连,是不是数据库的问题?

#16


testdb:informixserver=nmserver3,这个是什么啊?

#17


odbc肯定能连上,那是个生产数据库,要是连不上,客户早就来骂我们了。我已经重起过好几次了,呜呜。。。为什么学点东西这么难。

#18


数据库名字,密码,用户都正确了??

#19


肯定正确,我本来连接的生产数据库,为了保密,改成的test,我已经检查了好多次了。

#20


informixserver=nmserver3,nmserver3是数据库server的名称啊,配置odbc就是这个名称

#21


我要回家了,希望朋友们能帮我看看或者帮我up。谢了。

#22


用驱动程序连数据库 用不到ODBC的,用就错了。应该直接用数据库的名字。

#23


informix没有用过,帮你up~!
希望早点解决~!

#24


哪位朋友帮我看看啊,这个问题很难吗?我整理一下我的问题:
1。可以用odbc连接的数据库是不是肯定可以用jdbc连接上?
2。informix数据库服务器需要做社么配置才支持jdbc吗?
3。再就是帮我看看我的url有什么不对地方吗?为什么连不上?
谢谢。分不够我还可以再加一个帖子,请有经验的朋友帮个忙。

#25


用odbc 连接的数据库跟jdbc连没关系,用odbc连需要定义数据源,用jdbc需要驱动程序。
需要有个jdbc连informix数据库的驱动程序才能用jdbc连。
没连过informix,所以不知道你的url对不对,我连过sqlserver和db2的。

#26


在你的 catch 中间把 StackTrace 打出来看看再说:
         try 
    {
    conn = DriverManager.getConnection(url);
    } 
catch (SQLException e) 
    {
    System.out.println("ERROR: failed to connect!");
             e.printStackTrace();
    }

这是最基本的调试方法了

#27


终于搞定了,花了我好几天时间。最后竟然是因为我的jdk版本太新了,在glassprogrammer() 的提示下,我打出错误信息,发现驱动程序提示需要在1.2版下运行,而我用了1.3和1.4,换了1.2以后就好了。真是郁闷啊,这个破东西真是不太完善啊。。。
谢谢大家的关注。

#1


抱什么错

#2


是不是缺少.jar

#3


Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
Connection c = DriverManager.getConnection("jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=test","sa","888888888");
Statement s = c.createStatement();
ResultSet r = s.executeQuery("SELECT testcol from testtable");
while(r.next()) 
{
out.println(r.getString("testcol"));
}


这是连sqlserver 数据库的,你参考一下,好象你的url 不对吧?

#4


你都找了,看看这个吧。
四、jsp连接Informix数据库

testinformix.jsp如下:
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.sql.*"%>
<html>
<body>
<%Class.forName("com.informix.jdbc.IfxDriver").newInstance();
String url =
"jdbc:informix-sqli://123.45.67.89:1533/testDB:INFORMIXSERVER=myserver;
user=testuser;password=testpassword";
//testDB为你的数据库名
Connection conn= DriverManager.getConnection(url);
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
String sql="select * from test";
ResultSet rs=stmt.executeQuery(sql);
while(rs.next()) {%>
您的第一个字段内容为:<%=rs.getString(1)%>
您的第二个字段内容为:<%=rs.getString(2)%>
<%}%>
<%out.print("数据库操作成功,恭喜你");%>
<%rs.close();
stmt.close();
conn.close();
%>
</body>
</html>

#5


报的错发给大家看看

#6


我是在win2000,我得classpath=.;E:\JBuilder7\jdk1.3.1\lib;E:\JBuilder7\jdk1.3.1\lib\ifxjdbc.jar;E:\JBuilder7\jdk1.3.1\lib\ifxjdbc-

#7


我的错误被try 
    {
    conn = DriverManager.getConnection(url);
    } 
catch (SQLException e) 
    {
    System.out.println("ERROR: failed to connect!");
    }
截获了。就是无法连接。

#8


wjmmml(笑着悲伤) 贴的代码我已经看过了,我实在对比不出我的代码有什么不对。
谢谢大家的帮忙。

#9


私人意见:你的驱动注册的不对

即:Class.forName"com.informix.jdbc.IfxDriver");中的

"com.informix.jdbc.IfxDriver"写错了

#10


检查一下你的URL

#11


那应该怎么写,请指教?我的驱动已经找到了,而且我的代码是从informix驱动程序的例子里修改的。

#12


我的url我已经检查了无数次了,改写过好几次了,效果都是一样的。url ="jdbc:informix-sqli://10.110.180.1:8002/testdb:informixserver=nmserver3;user=test;password=test";
我也是怀疑这里可能有写的不对的,谁能帮我挑出来啊。

#13


SQL SERVER 的我连过,informix 没有,不知道驱动程序怎么加 和url
帮你up一下吧。

#14


是不是odbc能连接上,jdbc就一定能连接上呢?它们用的配置信息(端口,数据库名称,server名称)是一样的吗?

#15


建议你,把classpath重写一下,然后重启。试试用ODBC能不能连,是不是数据库的问题?

#16


testdb:informixserver=nmserver3,这个是什么啊?

#17


odbc肯定能连上,那是个生产数据库,要是连不上,客户早就来骂我们了。我已经重起过好几次了,呜呜。。。为什么学点东西这么难。

#18


数据库名字,密码,用户都正确了??

#19


肯定正确,我本来连接的生产数据库,为了保密,改成的test,我已经检查了好多次了。

#20


informixserver=nmserver3,nmserver3是数据库server的名称啊,配置odbc就是这个名称

#21


我要回家了,希望朋友们能帮我看看或者帮我up。谢了。

#22


用驱动程序连数据库 用不到ODBC的,用就错了。应该直接用数据库的名字。

#23


informix没有用过,帮你up~!
希望早点解决~!

#24


哪位朋友帮我看看啊,这个问题很难吗?我整理一下我的问题:
1。可以用odbc连接的数据库是不是肯定可以用jdbc连接上?
2。informix数据库服务器需要做社么配置才支持jdbc吗?
3。再就是帮我看看我的url有什么不对地方吗?为什么连不上?
谢谢。分不够我还可以再加一个帖子,请有经验的朋友帮个忙。

#25


用odbc 连接的数据库跟jdbc连没关系,用odbc连需要定义数据源,用jdbc需要驱动程序。
需要有个jdbc连informix数据库的驱动程序才能用jdbc连。
没连过informix,所以不知道你的url对不对,我连过sqlserver和db2的。

#26


在你的 catch 中间把 StackTrace 打出来看看再说:
         try 
    {
    conn = DriverManager.getConnection(url);
    } 
catch (SQLException e) 
    {
    System.out.println("ERROR: failed to connect!");
             e.printStackTrace();
    }

这是最基本的调试方法了

#27


终于搞定了,花了我好几天时间。最后竟然是因为我的jdk版本太新了,在glassprogrammer() 的提示下,我打出错误信息,发现驱动程序提示需要在1.2版下运行,而我用了1.3和1.4,换了1.2以后就好了。真是郁闷啊,这个破东西真是不太完善啊。。。
谢谢大家的关注。