zoukankan      html  css  js  c++  java
  • jTDS jdbc驱动

    Overview

    jTDS is an open source 100% pure Java (type 4) JDBC 3.0 driver for Microsoft SQL Server (6.5, 7, 2000, 2005 and 2008) and Sybase (10, 11, 12, 15). jTDS is based on FreeTDS and is currently the fastest production-ready JDBC driver for SQL Server and Sybase. jTDS is 100% JDBC 3.0 compatible, supporting forward-only and scrollable/updateable ResultSets, concurrent (completely independent) Statements and implementing all the DatabaseMetaData and ResultSetMetaData methods. Check out the feature matrix for more details.

    Quite a few of the commercial JDBC drivers out there are based on jTDS (or FreeTDS), even if they no longer acknowledge this. jTDS has been tested with virtually all JDBC-based database management tools and is the driver of choice for most of these (recommended for DbVisualizer and SQuirreL SQL, distributed with Aqua Data Studio and DataDino). jTDS is also becoming a common choice for enterprise-level applications: it passes both the J2EE 1.3 certification and Hibernate test suites, and is recommended for JBoss, Hibernate, Atlassian JIRA and Confluence and Compiere.

    Why use jTDS?

    jTDS is free software. jTDS is released under the terms of the GNU LGPL, giving you not only the posibility to debug and tweak it to your own liking but also to use it in and distribute it with your free or commercial applications.

    The other "free" choices, the JDBC-ODBC bridge and Microsoft's own JDBC driver are not actually free. If you encounter an issue with any of them you won't be able to fix it yourself and response times from both Microsoft and Sun are anything but short. Also, both of them lack functionality (the Microsoft driver implements JDBC 2.0, while the bridge is just a JDBC 1.0 implementation) and have serious stability problems: the bridge crashes the JVM if the ODBC driver has any problem and Microsoft just has no intention of really supporting Java/JDBC.

    jTDS is also the most performant JDBC driver for both SQL Server and Sybase. We have an older benchmark result but we strongly encourage you to download any benchmark published by commercial JDBC driver vendors and see for yourself. Here are a couple of benchmarks you could use: JNetDirect's JDBC Performance Benchmark and i-net Software's BenchTest 2.1 for MS SQL Server.

    Anyway, just give it a spin. Get the latest one from here and see whether you like it or not.

    jTDS feature matrix

    Below is the list of features of jTDS 1.2.

    Compliance

    SQL Server 2005, 2000, 7.0, 6.5 Compliant Yes
    Sybase 10, 11, 12, 15 Compliant Yes (not all features available for Sybase)
    JDK 1.4, 1.3 and 1.2 Compliant Yes
    Sun Certified 100% Pure JavaTM Yes

    Feature Summary

    Open Source and Freely Distributable Yes
    Prepared and Callable Statements Yes
    Updateable Result Sets Yes
    Scrolling Result Sets Yes
    Batch Updates Yes (fully optimized, single request/response)
    Statement Pooling Yes
    Full Timeout Support Yes
    Full Range of Cursor Types Yes
    Full BLOB and CLOB Support Yes
    BLOB and CLOB Locator Support No
    Unlimited Statements per Connection Yes
    Generated keys retrieval Yes
    Named parameters Yes
    Savepoints Yes
    Parameter metadata Yes
    RowSet implementation No (recommended RowSet implementation: Sun reference implementation 1.0.1)
    Metadata caching Yes (configurable on connection creation)

    J2EE Support

    JNDI Data Sources Yes
    Connection Pooling Yes
    Connection Pool Implementation No (recommended pool implementations: DBCP and c3p0)
    XA Distributed Transactions Yes (experimental)

    SQL Server-Specific

    Optimized Native Protocol Performance Yes (benchmark results: [1])
    Windows Authentication Yes
    SQL Server named instances Yes
    Ignoring of update counts from triggers Yes
    Send String data as ASCII/Unicode Yes
    NTEXT, NCHAR and NVARCHAR Support Yes
    Named Pipes Yes (using the filesystem locally and jCIFS over the network)
    SSL Encryption Yes
    Fast Forward-Only Cursors Yes
    package com.wcg.sqlserver;
    
    import java.sql.*;
    
    public class ConnectURL {
    
        public static void main(String[] args) {
    
    	// Create a variable for the connection string.
    	// String connectionUrl = "jdbc:sqlserver://localhost:1433;" +
    	// "databaseName=Test;user=sa;password=pwd";
    
    //	String connString = "jdbc:jtds:sqlserver://localhost/Test";
    	String connString = "jdbc:jtds:sqlserver://localhost:1433;databaseName=Test;user=sa;password=pwd;";
    	
    	// Declare the JDBC objects.
    	Connection con = null;
    	Statement stmt = null;
    	ResultSet rs = null;
    
    	try {
    	    // Establish the connection.
    	    // Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
    	    Class.forName("net.sourceforge.jtds.jdbc.Driver");
    
    	    con = DriverManager.getConnection(connString);
    
    	    // Create and execute an SQL statement that returns some data.
    	    // String SQL = "SELECT TOP 10 * FROM Person.Contact";
    
    	    String SQL = "SELECT * FROM T";
    
    //	    String sqlInsert = "INSERT INTO t VALUES(N'吴xx111');";
    //	    sqlInsert+=sqlInsert;
    //	    
    	    stmt = con.createStatement();
    //
    //	    boolean bResult = stmt.execute(sqlInsert);
    //	    System.out.println(bResult);
    //	    System.out.println(stmt.getUpdateCount());
    
    	    
    	    rs = stmt.executeQuery(SQL);
    
    	    // Iterate through the data in the result set and display it.
    	    while (rs.next()) {
    		System.out.println(rs.getString(1) + " " + rs.getString(2));
    	    }
    
    	}
    
    	// Handle any errors that may have occurred.
    	catch (Exception e) {
    	    e.printStackTrace();
    	} finally {
    	    if (rs != null)
    		try {
    		    rs.close();
    		} catch (Exception e) {
    		}
    	    if (stmt != null)
    		try {
    		    stmt.close();
    		} catch (Exception e) {
    		}
    	    if (con != null)
    		try {
    		    con.close();
    		} catch (Exception e) {
    		}
    	}
        }
    }
    

      

  • 相关阅读:
    Effective java 读书笔记
    python测试api接口
    Git 提交后开始自动构建
    修改docker的默认存储位置
    golang实现ios推送
    NSRangeFromString 测试
    Container View Controller
    ios自定义View自动布局时计算大小
    Java执行groovy脚本
    gradle使用eclipse debug 代码
  • 原文地址:https://www.cnblogs.com/wucg/p/2522526.html
Copyright © 2011-2022 走看看