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

📄 tds5test.java

📁 第三方的SQL Server and Sybase的jdbc dirver,速度更快
💻 JAVA
字号:
package net.sourceforge.jtds.test;import java.sql.Date;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.ResultSetMetaData;import java.sql.Statement;import java.sql.Time;import java.io.ByteArrayInputStream;import java.io.CharArrayReader;import junit.framework.Test;import junit.framework.TestSuite;import net.sourceforge.jtds.jdbc.DefaultProperties;import net.sourceforge.jtds.jdbc.Messages;import net.sourceforge.jtds.jdbc.Driver;/** * Test case to illustrate use of TDS 5 support. * * @version 1.0 * @author Mike Hutchinson */public class Tds5Test extends DatabaseTestCase {    public static Test suite() {        if (!DefaultProperties.TDS_VERSION_50.equals(                props.getProperty(Messages.get(Driver.TDS)))) {            return new TestSuite();        }        return new TestSuite(Tds5Test.class);    }    public Tds5Test(String name) {        super(name);    }    /**     * Test the new column meta data made available in Sybase 12     * @throws Exception     */    public void testColMetaData() throws Exception {        Statement stmt = con.createStatement();        stmt.execute("CREATE TABLE #TESTMD (id numeric(10,0) identity primary key not null, data unichar null)");        ResultSetMetaData rsmd = stmt.executeQuery("SELECT id, data as aliasname FROM #TESTMD").getMetaData();        assertEquals(2, rsmd.getColumnCount());        assertEquals("tempdb", rsmd.getCatalogName(1));        assertEquals("guest", rsmd.getSchemaName(1));        assertEquals("#TESTMD", rsmd.getTableName(1));        assertEquals("id", rsmd.getColumnName(1));        assertEquals("aliasname", rsmd.getColumnName(2));        assertEquals(ResultSetMetaData.columnNoNulls, rsmd.isNullable(1));        assertEquals(ResultSetMetaData.columnNullable, rsmd.isNullable(2));        assertEquals("numeric identity", rsmd.getColumnTypeName(1));        assertEquals("unichar", rsmd.getColumnTypeName(2));        assertTrue(rsmd.isAutoIncrement(1));        assertFalse(rsmd.isAutoIncrement(2));        stmt.close();    }    /**     * Test the new date and time data types in Sybase 12+     * @throws Exception     */    public void testDateTime() throws Exception {        String testDate = "1997-08-31";        String testTime = "23:59:59";        Statement stmt = con.createStatement();        stmt.execute("CREATE TABLE #TESTDT (id int, d1 date, d2 date, t1 time, t2 time)");        stmt.close();        PreparedStatement pstmt = con.prepareStatement(                "INSERT INTO #TESTDT VALUES(1, {d " + testDate + "}, ?, {t " + testTime + "}, ?)" );        pstmt.setDate(1, Date.valueOf(testDate));        pstmt.setTime(2, Time.valueOf(testTime));        assertEquals(1, pstmt.executeUpdate());        pstmt.close();        stmt = con.createStatement();        ResultSet rs = stmt.executeQuery("SELECT * FROM #TESTDT");        assertTrue(rs.next());        assertEquals(testDate, rs.getDate(2).toString());        assertEquals(testDate, rs.getDate(3).toString());        assertEquals(testTime, rs.getTime(4).toString());        assertEquals(testTime, rs.getTime(5).toString());        stmt.close();    }    /**     * Test varchar and varbinary fields longer than 255 bytes.     * Test univarchar columns as well.     * @throws Exception     */    public void testLongData() throws Exception {        StringBuffer buf = new StringBuffer(300);        for (int i = 0; i < 300; i++) {            if (i == 0) {                buf.append('<');            } else            if (i == 299) {                buf.append('>');            } else {                buf.append('X');            }        }        String longString = buf.toString();        byte longBytes[] = longString.getBytes();        String unichar = "This is a unicode string \u0441\u043b\u043e\u0432\u043e";        Statement stmt = con.createStatement();        stmt.execute("CREATE TABLE #TESTLD (id int, vc varchar(300), vb varbinary(300), vu univarchar(300))");        stmt.close();        PreparedStatement pstmt = con.prepareStatement(                "INSERT INTO #TESTLD VALUES(1, ?, ?, ?)" );        pstmt.setString(1, longString);        pstmt.setBytes(2, longBytes);        pstmt.setString(3, unichar);        assertEquals(1, pstmt.executeUpdate());        pstmt.close();        stmt = con.createStatement();        ResultSet rs = stmt.executeQuery("SELECT * FROM #TESTLD");        assertTrue(rs.next());        assertEquals(longString, rs.getString(2));        assertEquals(longString, new String(rs.getBytes(3)));        assertEquals(unichar, rs.getString(4));        stmt.close();    }    /**     * Test for bug [1161609]  Text or image data truncated on Sybase 12.5     * @throws Exception     */    public void testImageText() throws Exception {        Statement stmt = con.createStatement();        stmt.execute("CREATE TABLE #TESTIT (id int, txt text, img image)");        StringBuffer data = new StringBuffer(20000);        for (int i = 0; i < 20000; i++) {            data.append((char)('A' + (i % 10)));        }        PreparedStatement pstmt = con.prepareStatement(           "INSERT INTO #TESTIT VALUES(?,?,?)");        pstmt.setInt(1, 1);        pstmt.setString(2, data.toString());        pstmt.setBytes(3, data.toString().getBytes());        assertEquals(1, pstmt.executeUpdate());        ResultSet rs = stmt.executeQuery("SELECT * FROM #TESTIT");        assertNotNull(rs);        assertTrue(rs.next());        assertEquals(data.length(), rs.getString(2).length());        assertEquals(data.length(), rs.getBytes(3).length);        pstmt.close();        stmt.close();    }    /**     * Test writing image data from InputStream     * @throws Exception     */    public void testStreamImage() throws Exception {        Statement stmt = con.createStatement();        stmt.execute("CREATE TABLE #TESTIS (id int, img image)");        byte data[] = new byte[20000];        for (int i = 0; i < data.length; i++) {            data[i] = (byte)('A' + (i % 10));        }        PreparedStatement pstmt = con.prepareStatement(            "INSERT INTO #TESTIS VALUES(?,?)");        pstmt.setInt(1, 1);        pstmt.setBinaryStream(2, new ByteArrayInputStream(data), data.length);        assertEquals(1, pstmt.executeUpdate());        ResultSet rs = stmt.executeQuery("SELECT * FROM #TESTIS");        assertNotNull(rs);        assertTrue(rs.next());        assertEquals(new String(data), new String(rs.getBytes(2)));        pstmt.close();        stmt.close();    }    /**     * Test writing text data from Reader     * @throws Exception     */    public void testStreamText() throws Exception {        Statement stmt = con.createStatement();        stmt.execute("CREATE TABLE #TESTTR (id int, txt text)");        char data[] = new char[20000];        for (int i = 0; i < data.length; i++) {            data[i] = (char)('A' + (i % 10));        }        PreparedStatement pstmt = con.prepareStatement(            "INSERT INTO #TESTTR VALUES(?,?)");        pstmt.setInt(1, 1);        pstmt.setCharacterStream(2, new CharArrayReader(data), data.length);        assertEquals(1, pstmt.executeUpdate());        ResultSet rs = stmt.executeQuery("SELECT * FROM #TESTTR");        assertNotNull(rs);        assertTrue(rs.next());        assertEquals(new String(data), rs.getString(2));        pstmt.close();        stmt.close();    }    /**     * Illustrates how a statement is prepared each time it is executed and the     * same error is returned on each prepare. This could be optimized by     * somehow avoiding to prepare a statement that already failed.     */    public void testPrepare() throws Exception {        PreparedStatement pstmt = con.prepareStatement(                "SELECT ? AS value1, ? AS value2");        pstmt.setString(1, "1");        pstmt.setString(2, "2");        pstmt.execute();        pstmt.execute();        pstmt.close();    }    public static void main(String[] args) {        junit.textui.TestRunner.run(Tds5Test.class);    }}

⌨️ 快捷键说明

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