JTDS连接SQL2008 JAVA

package com.huadun.db;
                        
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
/**
 * 
 * @author Gaokai.HuadunSoft
 * 2013.03.05
 *
 */
public class Connectionfactory {
    //连接数据库需要的常量
    private static final String URL="jdbc:jtds:sqlserver://localhost:1433/j1201;instance=SQLDB";
    private static final String Driver="net.sourceforge.jtds.jdbc.Driver";
    private static final String User="sa";
    private static final String Pwd="123456";
                            
    static Connection conn;
    //静态块加载驱动
    static
    {
        try {
            DriverManager.registerDriver(new net.sourceforge.jtds.jdbc.Driver());
            Class.forName(Driver);
            if(conn==null)
            {
                conn=DriverManager.getConnection(URL, User, Pwd);
                System.out.println("驅動加載成功");
            }
        } catch (ClassNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
    //返回连接
    public static Connection getconn(){
        return conn;    
    }
                        
    public static void Close()
    {
        if(conn!=null)
        {
            try {
                conn.close();
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    }
}

 这里问题主要是连接的URL,这个URL写错会导致很多问题;如果电脑上有多个数据库实例,那么应该加上实例名称,其中j1201是数据库名称。

URL的写法:

1------》jdbc:jtds:sqlserver://localhost:1433;instance=SQLDB;DatabaseName=j1201

2------》jdbc:jtds:sqlserver://localhost:1433/j1201;instance=SQLDB

 

除此之外会导致连接失败的问题主要集中在数据库的客户端协议中的TCP/IP协议是否打开,以及数据库网络配置中是否打开。如图1

对应的端口设置默认1433,这个要自行设置。

最后JTDS的连接需要Sql server browser服务的支持这点很重要。

这3点协调好了就ok了,连接成功!

下面的是测试代码:

package com.huadun.test;
import java.sql.Connection;
import com.huadun.db.Connectionfactory;
public class Test {
    /**
     * @param args
     * @author Gaokai.HuadunSoft
     * 2013.03.05
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Connectionfactory cf=new Connectionfactory();
        Connection conn=cf.getconn();
        cf.Close();
    }
}

 运行结果就不贴了。

问题总结:

1:

网络错误,连接拒绝,connect refused

错误信息Network error IOException: Connection refused: connect

2:

连接数据库失败,无法打开数据库

错误信息 无法打开登录所请求的数据库"数据库名字" 登录失败

3:

实例获取不到导致的问题,找不到数据库实例! SQL2008 的访问方法做了变化  计算机名/实例名

说明:本人使用的JTDS的jar包是1.2,官方下载地址,你可以选择适应的版本http://sourceforge.net/projects/jtds/files/

最后本人建议数据库还是选SQL2005或者Oracle !

今天的失败,是为了明天的成功,我相信,我可以是个出色的90后!

<!--EndFragment--> <!--EndFragment-->

 

<!--EndFragment-->

猜你喜欢

转载自armedbydomineering.iteye.com/blog/1824999
今日推荐