import java.sql.Connection;
import java.sql.Driver;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.Statement;
import java.util.Vector;public class TestBug { private static String value = "...";//数据 public static void main(String[] args) throws Exception {
//test();
testPrepare();
} public static void test() throws Exception {//执行成功
Connection conn = getDBConn();
Statement stmt = conn.createStatement();
stmt.executeUpdate("update test set content='"
+ value + "' where id = 14003008");
} public static void testPrepare() throws Exception {//执行报错:数据大小超出此类型的最大值
Connection conn = getDBConn();
PreparedStatement pstmt = conn
.prepareStatement("update test set content= ? where id = 14003008");
Vector v = new Vector();
v.add(value);
System.out.println(value.length());
System.out.println(value.getBytes().length);
pstmt.setString(1, value);
pstmt.execute();
} private static Connection getDBConn() throws Exception {
Driver dbDriver = (Driver) Class.forName(
"oracle.jdbc.driver.OracleDriver").newInstance();
DriverManager.registerDriver(dbDriver);
return DriverManager.getConnection("jdbc:oracle:thin:", "","");//连接数据库
}
}为什么会这样啊?难道说PrepareStatement有bug?