刚才在开发中遇到一个问题,希望大家注意:
我们的程序中用到了java.sql.Connection中的public PreparedStatement prepareStatement(String s, int i, int j)方法,但是运行后系统报错不支持。查了一下WebLogic 7的文档,发现:Jdriver不完全支持JDBC 2.0规范,包括――
Class or Interface
Unsupported Methods
java.sql.Blob
public long position(Blob blob, long l)
public long position(byte abyte0[], long l)
java.sql.CallableStatement
public Array getArray(int i)
public Date getDate(int i, Calendar calendar)
public Object getObject(int i, Map map)
public Ref getRef(int i)
public Time getTime(int i, Calendar calendar)
public Timestamp getTimestamp(int i, Calendar calendar)
public void registerOutParameter(int i, int j, String s)
java.sql.Clob
public long position(String s, long l)
public long position(java.sql.Clob clob, long l)
java.sql.Connection
public java.sql.Statement createStatement(int i, int j)
public Map getTypeMap()
public CallableStatement prepareCall(String s, int i, int j)
public PreparedStatement prepareStatement(String s, int i, int j)
public void setTypeMap(Map map)
java.sql.DatabaseMetaData
public Connection getConnection()
public ResultSet getUDTs(String s, String s1, String s2, int ai[])
public boolean supportsBatchUpdates()
java.sql.PreparedStatement
public void addBatch()
public ResultSetMetaData getMetaData()
public void setArray(int i, Array array)
public void setNull(int i, int j, String s)
public void setRef(int i, Ref ref)
java.sql.ResultSet
public boolean absolute(int i)
public void afterLast()
public void beforeFirst()
public void cancelRowUpdates()
public void deleteRow()
public boolean first()
public Array getArray(int i)
public Array getArray(String s)
public int getConcurrency()
public int getFetchDirection()
public int getFetchSize()
public Object getObject(int i, Map map)
public Object getObject(String s, Map map)
public Ref getRef(int i)
public Ref getRef(String s)
public int getRow()
public Statement getStatement()
public int getType()
public void insertRow()
java.sql.ResultSet
(continued)
public boolean isAfterLast()
public boolean isBeforeFirst()
public boolean isFirst()
public boolean isLast()
public boolean last()
public void moveToCurrentRow()
public void moveToInsertRow()
public boolean previous()
public void refreshRow()
public boolean relative(int i)
public boolean rowDeleted()
public boolean rowInserted()
public boolean rowUpdated()
public void setFetchDirection(int i)
public void setFetchSize(int i)
public void updateAsciiStream(int i, InputStream inputstream, int j)
public void updateAsciiStream(String s, InputStream inputstream, int i)
public void updateBigDecimal(int i, BigDecimal bigdecimal)
public void updateBigDecimal(String s, BigDecimal bigdecimal)
public void updateBinaryStream(int i, InputStream inputstream, int j)
public void updateBinaryStream(String s, InputStream inputstream, int i)
public void updateBoolean(int i, boolean flag)
public void updateBoolean(String s, boolean flag)
public void updateByte(int i, byte byte0)
public void updateByte(String s, byte byte0)
public void updateBytes(int i, byte abyte0[])
public void updateBytes(String s, byte abyte0[])
java.sql.ResultSet
(continued)
public void updateCharacterStream(int i, Reader reader, int j)
public void updateCharacterStream(String s, Reader reader, int i)
public void updateDate(int i, Date date)
public void updateDate(String s, Date date)
public void updateDouble(int i, double d)
public void updateDouble(String s, double d)
public void updateFloat(int i, float f)
public void updateFloat(String s, float f)
public void updateInt(int i, int j)
public void updateInt(String s, int i)
public void updateLong(int i, long l)
public void updateLong(String s, long l)
public void updateNull(int i)
public void updateNull(String s)
public void updateObject(int i, Object obj)
public void updateObject(int i, Object obj, int j)
public void updateObject(String s, Object obj)
public void updateObject(String s, Object obj, int i)
public void updateRow()
public void updateShort(int i, short word0)
public void updateShort(String s, short word0)
public void updateString(int i, String s)
public void updateString(String s, String s1)
public void updateTime(int i, Time time)
public void updateTime(String s, Time time)
public void updateTimestamp(int i, Timestamp timestamp)
public void updateTimestamp(String s, Timestamp timestamp)
java.sql.ResultSetMetaData
public String getColumnClassName(int i)
看来这是执行效率和编程效率的矛盾,想要更高的执行效率就要牺牲编程的灵活性……唉,本来以为通过JDriver+Oracle客户端(OCI方式)会取得比Oracle Thin Driver更好的效果,但是现在看来似乎又要放弃了(因为我们自己的一套基类无法使用),郁闷啊!!大家有什么好的替代方法吗?