FileInputStream stream=new FileInputStream(filename);
String sql="update t_templet set file=? where name='"+name+"'";
ps = conn.prepareStatement(sql);
ps.setBinaryStream(1,stream,stream.available());

解决方案 »

  1.   

    请问 ps是定义为Statement类型吗,方法setBinaryStream是什么?为什么系统无法识别
      

  2.   

    真是太感谢你了,我想再请教一个问题:
    我把sqlserver中的字段类型定义为binary时无法存入,但定义为image时可以存入;但在从数据库中取出时,用getByte()方法时系统却报错如下:
    java.sql.SQLException: [Microsoft][ODBC SQL Server Driver]P6pn{媈'瞾
    at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6031)
    at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:6188)
    at sun.jdbc.odbc.JdbcOdbc.SQLGetDataInteger(JdbcOdbc.java:3171)
    at sun.jdbc.odbc.JdbcOdbcResultSet.getDataInteger(JdbcOdbcResultSet.java:5317)
    at sun.jdbc.odbc.JdbcOdbcResultSet.getInt(JdbcOdbcResultSet.java:548)
    at sun.jdbc.odbc.JdbcOdbcResultSet.getByte(JdbcOdbcResultSet.java:457)
    at sun.jdbc.odbc.JdbcOdbcResultSet.getByte(JdbcOdbcResultSet.java:469)
    at _examp._filein__jsp._jspService(/examp/filein.jsp:127)
    at com.caucho.jsp.JavaPage.service(JavaPage.java:87)
    at com.caucho.jsp.JavaPage.subservice(JavaPage.java:81)
    at com.caucho.jsp.Page.service(Page.java:407)
    at com.caucho.server.http.FilterChainPage.doFilter(FilterChainPage.java:166)
    at com.caucho.server.http.Invocation.service(Invocation.java:273)
    at com.caucho.server.http.CacheInvocation.service(CacheInvocation.java:128)
    at com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:216)
    at com.caucho.server.http.HttpRequest.handleConnection(HttpRequest.java:158)
    at com.caucho.server.TcpConnection.run(TcpConnection.java:140)
    at java.lang.Thread.run(Thread.java:484)