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-->
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android开发可以通过jtds直接连接SQL Server进行读写操作。以下是连接SQL Server数据库的步骤: 1.在项目的build.gradle文件中添加以下依赖项: ```gradle implementation 'net.sourceforge.jtds:jtds:1.3.1' ``` 2.在代码中使用以下语句加载jtds驱动程序: ```java Class.forName("net.sourceforge.jtds.jdbc.Driver"); ``` 3.使用以下代码连接SQL Server数据库: ```java String url = "jdbc:jtds:sqlserver://服务器IP:端口号/数据库名称;instance=实例名"; Connection conn = DriverManager.getConnection(url, "用户名", "密码"); ``` 4.连接成功后,可以使用以下代码执行SQL查询并获取结果: ```java Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery("SELECT * FROM 表名"); while (rs.next()) { // 处理查询结果 } ``` 需要注意的是,网络访问以及特别耗时的操作不能放在主线程进行,需要创建一个子线程或者一个异步任务来执行。可以使用AsyncTask来实现异步任务,以下是一个使用AsyncTask连接SQL Server数据库并执行查询的例子: ```java public class MySQLConnectAsyncTask extends AsyncTask<Void, Void, String> { @Override protected String doInBackground(Void... voids) { try { Class.forName("net.sourceforge.jtds.jdbc.Driver"); String url = "jdbc:jtds:sqlserver://服务器IP:端口号/数据库名称;instance=实例名"; Connection conn = DriverManager.getConnection(url, "用户名", "密码"); Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery("SELECT * FROM 表名"); StringBuilder sb = new StringBuilder(); while (rs.next()) { sb.append(rs.getString("列名")).append("\n"); } rs.close(); stmt.close(); conn.close(); return sb.toString(); } catch (Exception e) { e.printStackTrace(); return "连接数据库失败:" + e.getMessage(); } } @Override protected void onPostExecute(String s) { tvContent.setText(s); } } ``` 可以在Activity中调用该异步任务来连接SQL Server数据库并执行查询: ```java new MySQLConnectAsyncTask().execute(); ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值