我是新手,我的eclipse连接不上sql数据库。错误信息:
com.microsoft.sqlserver.jdbc.SQLServerException: 到主机  的 TCP/IP 连接失败。 java.net.ConnectException: Connection refused: connect
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.loginWithoutFailover(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(Unknown Source)
at java.sql.DriverManager.getConnection(DriverManager.java:582)
at java.sql.DriverManager.getConnection(DriverManager.java:185)
at net.xabc.Mr.Liu.Dao.Impl.BaseDao.getCon(BaseDao.java:23)
at net.xabc.Mr.Liu.Dao.Impl.PictureDaoImpl.findAllPicture(PictureDaoImpl.java:123)
at org.apache.jsp.index_jsp._jspService(index_jsp.java:251)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:331)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:873)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
at java.lang.Thread.run(Thread.java:619)
2010-7-20 19:45:12 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet jsp threw exception
java.lang.IndexOutOfBoundsException: Index: 1, Size: 0
at java.util.ArrayList.RangeCheck(ArrayList.java:547)
at java.util.ArrayList.get(ArrayList.java:322)
at org.apache.jsp.index_jsp._jspService(index_jsp.java:254)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:331)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:873)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
at java.lang.Thread.run(Thread.java:619)求助高手帮忙解决一下。。看不懂啥意思。。声明一下。我用的是JDBC连接数据库。代码没问题,在别的机器上能运行,在我自己的电脑上就出问题。。帮忙看看,谢谢!!!

解决方案 »

  1.   

    com.microsoft.sqlserver.jdbc.SQLServerException: 到主机 的 TCP/IP 连接失败
    在服务和应用程序 —》中的SQL Server——》 配置管理器中—》 SQLserver 2005 网络配置—》MSSQLSERVER的协议—》TCP/IP 设置为已启动  
      

  2.   

    数据库的问题 和mycelipse 5.5  java没有关系
      

  3.   

     TCP端口号错误了,启动SQlserver配置工具,SQL Server Configuration Manager,在sqlserver2005网络配置中的sqlserver的协议,找到TCP/IP右击启用,并且把属性中的IP地址TCP端口设置一下,和你的连接数据库文件写的端口号一样就行了
      

  4.   

    这个是连接问题!你加了SQL连接包没啊???
      

  5.   

    联机失败一般都是数据库名不存在,数据库没打开,服务MSSQLSERVER 没开 驱动没写好
      

  6.   


    import java.sql.Connection;
    import java.sql.DriverManager;public class GetConn {
    public static Connection getConn(){
    String driverName="com.mysql.jdbc.Driver";
    String name="root";
    String password="weiwei.mu";
    String dbName="webshop";
    Connection connection=null;
    String url="jdbc:mysql://192.168.1.18:3306/"+dbName+"?user="+name+"&password="+password;
    try{
    Class.forName(driverName).newInstance();
    System.out.println("开始进行连接\n");
    connection=DriverManager.getConnection(url);
    System.out.println("连接结束\n");

    }

    catch(Exception e){
    e.printStackTrace();
    }
    return connection;



    }}
      

  7.   

    这是我自己写jdbc的连接数据库的类
      

  8.   


    package base;import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    import java.util.List;public class BaseDao {
    private static final String DRIVER = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
    private static final String URL = "jdbc:sqlserver://localhost:1042;DatabaseName=crmManager";
    private static final String UID = "sa";
    private static final String PWD = "ok"; private ResultSet resultSet;
    private Statement statement;
    private PreparedStatement preparedStatment;
    private Connection connection; /**
     * 打开数据库
     * 
     * @throws ClassNotFoundException
     * @throws SQLException
     */
    public void open() throws ClassNotFoundException, SQLException {
    Class.forName(DRIVER);
    this.connection = DriverManager.getConnection(URL, UID, PWD);
    } /**
     * 关闭数据库
     */
    public void close() {
    if (null != this.resultSet) {
    try {
    this.resultSet.close();
    } catch (SQLException e) {
    e.printStackTrace();
    }
    } if (null != this.statement) {
    try {
    this.statement.close();
    } catch (SQLException e) {
    e.printStackTrace();
    }
    } if (null != this.preparedStatment) {
    try {
    this.preparedStatment.close();
    } catch (SQLException e) {
    e.printStackTrace();
    }
    } if (null != this.connection) {
    try {
    this.connection.close();
    } catch (SQLException e) {
    e.printStackTrace();
    }
    }
    } /**
     * 根据statement删、修、改
     * 
     * @param sql
     * @return
     * @throws SQLException
     */
    public int executeSql(String sql) throws SQLException {
    this.statement = this.connection.createStatement();
    return this.statement.executeUpdate(sql);
    } /**
     * 根据preparedStatment删、修、改
     * 
     * @param sql
     * @param list
     * @return
     * @throws SQLException
     */
    public int executeSql(String sql, List list) throws SQLException {
    this.preparedStatment = this.connection.prepareStatement(sql);
    if (null != list) {
    for (int i = 0; i < list.size(); i++) {
    this.preparedStatment.setString(i + 1, list.get(i).toString());
    }
    }
    return this.preparedStatment.executeUpdate();
    } /**
     * 根据statement查找
     * 
     * @param sql
     * @return
     * @throws SQLException
     */
    public ResultSet findsql(String sql) throws SQLException {
    this.statement = this.connection.createStatement();
    this.resultSet = this.statement.executeQuery(sql);
    return this.resultSet;
    } /**
     * 根据preparedStatment查找
     * 
     * @param sql
     * @param list
     * @return
     * @throws SQLException
     */
    public ResultSet findsql(String sql, List list) throws SQLException {
    this.preparedStatment = this.connection.prepareStatement(sql);
    if (null != list) {
    for (int i = 0; i < list.size(); i++) {
    this.preparedStatment.setString(i + 1, list.get(i).toString());
    }
    }
    this.resultSet = this.preparedStatment.executeQuery();
    return this.resultSet;
    }
    }
      

  9.   

    到主机 的 TCP/IP 连接失败
    private static final String URL = "jdbc:sqlserver://localhost:1042;DatabaseName=crmManager";
    你改1042看你数据库的端口号!~~
    crmManager数据库名
      

  10.   

    TCP端口号错误了,启动SQlserver配置工具,SQL Server Configuration Manager,在sqlserver2005网络配置中的sqlserver的协议,找到TCP/IP右击启用,并且把属性中的IP地址TCP端口设置一下,和你的连接数据库文件写的端口号一样然后再重新起动SQL Server服务器
      

  11.   

    关掉防火墙,如果是SqlServer的话 打上sp4的补丁。
      

  12.   

    com.microsoft.sqlserver.jdbc.SQLServerException: 到主机 的 TCP/IP 连接失败
    在服务和应用程序 —》中的SQL Server——》 配置管理器中—》 SQLserver 2005 网络配置—》MSSQLSERVER的协议—》TCP/IP 设置为已启动 
    查看
    tcp/IP中的设置是否和数据库中的对应.
    如果不一样的话就会出现"到主机 的 TCP/IP 连接失败"
    查看数据库中tcp/配置.