⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 testbase.java

📁 第三方的SQL Server and Sybase的jdbc dirver,速度更快
💻 JAVA
字号:
/* * TestBase.java * * Created on 8. September 2001, 13:34 */package net.sourceforge.jtds.test;import java.io.*;import java.sql.*;import java.util.*;import junit.framework.TestCase;/** * @author  builder * @version $Id: TestBase.java,v 1.20 2004/12/10 13:17:30 alin_sinpalean Exp $ */public abstract class TestBase extends TestCase {    private static final String CONNECTION_PROPERTIES = "conf/connection.properties";    public static final Properties props = loadProperties(CONNECTION_PROPERTIES);    Connection con;    public TestBase(String name) {        super(name);    }    public void setUp() throws Exception {        super.setUp();        connect();    }    public void tearDown() throws Exception {        disconnect();        super.tearDown();    }    public Connection getConnection() throws Exception {        Class.forName(props.getProperty("driver"));        String url = props.getProperty("url");        Connection con = DriverManager.getConnection(url, props);//        showWarnings(con.getWarnings());        initLanguage(con);        return con;    }    public void showWarnings(SQLWarning w) {        while (w != null) {            System.out.println(w.getMessage());            w = w.getNextWarning();        }    }    private void disconnect() throws Exception {        if (con != null) {            con.close();            con = null;        }    }    protected void connect() throws Exception {        disconnect();        con = getConnection();    }    public void dump(ResultSet rs) throws SQLException {        ResultSetMetaData rsm = rs.getMetaData();        int cols = rsm.getColumnCount();        for (int i = 1; i <= cols; i++) {            if (i > 1) {                System.out.print(", ");            }            System.out.print(rsm.getColumnName(i));        }        System.out.println();        while (rs.next()) {            dumpRow(rs);        }    }    public void dumpRow(ResultSet rs) throws SQLException {        ResultSetMetaData rsm = rs.getMetaData();        int cols = rsm.getColumnCount();        for (int i = 1; i <= cols; i++) {            if (i > 1) {                System.out.print(", ");            }            System.out.print(rs.getObject(i));        }        System.out.println();    }    private void initLanguage(Connection con) throws SQLException {        Statement stmt = con.createStatement();        stmt.executeUpdate("set LANGUAGE 'us_english'");        stmt.close();    }    private static Properties loadProperties(String fileName) {        File propFile = new File(fileName);        if (!propFile.exists()) {            fail("Connection properties not found (" + propFile + ").");        }        try {            Properties props = new Properties();            props.load(new FileInputStream(propFile));            return props;        }        catch (IOException e) {            throw new RuntimeException(e.getMessage());        }    }    protected void makeTestTables(Statement stmt) throws SQLException {        String sql = "CREATE TABLE #test ("                     + " f_int INT,"                     + " f_varchar VARCHAR(255))";        stmt.execute(sql);    }    public void makeObjects(Statement stmt, int count) throws SQLException {        stmt.execute("TRUNCATE TABLE #test");        for (int i = 0; i < count; i++) {            String sql = "INSERT INTO #test(f_int, f_varchar)"                         + " VALUES (" + i + ", 'Row " + i + "')";            stmt.execute(sql);        }    }    public void compareInputStreams(InputStream is1, InputStream is2) throws IOException {        try {            if (is1 == null && is2 == null) {                return;            } else if (is1 == null) {                fail("is1 == null && is2 != null");                return;            } else if (is2 == null) {                fail("is1 != null && is2 == null");                return;            }            long count = 0;            int res1 = 0, res2 = 0;            byte buf1[] = new byte[1024], buf2[] = new byte[1024];            while (res1 != 0 || (res1 = is1.read(buf1)) != -1) {                if (res2 == 0) {                    res2 = is2.read(buf2);                }                if (res2 == -1) {                    fail("stream 2 EOF at: " + count);                }                int min = Math.min(res1, res2);                for (int i = 0; i < min; i++) {                    // Do the check first rather than using assertTrue()                    // assertTrue() would create a String at each iteration                    if (buf1[i] != buf2[i]) {                        fail("stream 1 value [" + buf1[i]                                + "] differs from stream 2 value ["                                + buf2[i] + "] at: " + (count + i));                    }                }                count += min;                if (res1 != min) {                    System.arraycopy(buf1, min, buf1, 0, res1 - min);                    res1 -= min;                } else {                    res1 = 0;                }                if (res2 != min) {                    System.arraycopy(buf2, min, buf2, 0, res2 - min);                    res2 -= min;                } else {                    res2 = 0;                }            }            if (is2.read() != -1) {                fail("stream 1 EOF at: " + count);            }        } finally {            if (is1 != null) {                is1.close();            }            if (is2 != null) {                is2.close();            }        }    }    public void compareReaders(Reader r1, Reader r2) throws IOException {        try {            if (r1 == null && r2 == null) {                return;            } else if (r1 == null) {                fail("r1 == null && r2 != null");                return;            } else if (r2 == null) {                fail("r1 != null && r2 == null");                return;            }            long count = 0;            int res1 = 0, res2 = 0;            char buf1[] = new char[1024], buf2[] = new char[1024];            while (res1 != 0 || (res1 = r1.read(buf1)) != -1) {                if (res2 == 0) {                    res2 = r2.read(buf2);                }                if (res2 == -1) {                    fail("reader 2 EOF at: " + count);                }                int min = Math.min(res1, res2);                for (int i = 0; i < min; i++) {                    // Do the check first rather than using assertTrue()                    // assertTrue() would create a String at each iteration                    if (buf1[i] != buf2[i]) {                        fail("stream 1 value [" + buf1[i]                                + "] differs from stream 2 value ["                                + buf2[i] + "] at: " + (count + i));                    }                }                count += min;                if (res1 != min) {                    System.arraycopy(buf1, min, buf1, 0, res1 - min);                    res1 -= min;                } else {                    res1 = 0;                }                if (res2 != min) {                    System.arraycopy(buf2, min, buf2, 0, res2 - min);                    res2 -= min;                } else {                    res2 = 0;                }            }            if (r2.read() != -1) {                fail("reader 1 EOF at: " + count);            }        } finally {            if (r1 != null) {                r1.close();            }            if (r2 != null) {                r2.close();            }        }    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -