没这么用过。
通常都是通过PreparedStatement来操作数据库。

解决方案 »

  1.   

    上传文件并保存到数据库
    <%@ page contentType="text/html;charset=gb2312"%>
    <%@ page import ="javax.servlet.http.*" %>
    <%@ page import ="javax.naming.InitialContext" %>
    <%@ page import ="javax.rmi.PortableRemoteObject" %>
    <%@ page import ="java.util.Properties "%>
    <%@ page import ="java.math.BigDecimal"%>
    <%@ page import ="javax.naming.Context" %>
    <%@ page import ="com.ccmis.util.upload.*" %>
    <%@ page import ="java.io.*" %>
    <%@ page import ="java.util.*" %>
    <%@ page import ="java.text.*" %>
    <%@ page import ="java.sql.*" %>
    <%@ page import ="oracle.sql.*" %>
    <%@ page import ="oracle.jdbc.*" %>
    <%
        //实例化上载bean
        com.ccmis.util.upload.SmartUpload mySmartUpload=new com.ccmis.util.upload.SmartUpload();
        //初始化
        mySmartUpload.initialize(pageContext);
        //设置上载的最大值
        mySmartUpload.setMaxFileSize(500 * 1024*1024);
        //上载文件
        mySmartUpload.upload();   //循环取得所有上载的文件
       //for (int i=0;i<mySmartUpload.getFiles().getCount();i++){
       //取得上载的文件
       com.ccmis.util.upload.File myFile = mySmartUpload.getFiles().getFile(0);
       if (!myFile.isMissing())
        {
       //取得上载的文件的文件名
        String documentID=mySmartUpload.getRequest().getParameter("documentID");
        System.out.println(documentID);
        String degree=mySmartUpload.getRequest().getParameter("degree");
        System.out.println(degree);
        String year1=mySmartUpload.getRequest().getParameter("year1");
        String month1=mySmartUpload.getRequest().getParameter("month1");
        String day1=mySmartUpload.getRequest().getParameter("day1");
        String comeDocumentTime=day1+"-"+month1+"月-"+year1;
        String documentNo=mySmartUpload.getRequest().getParameter("documentNo");
        String documentType=mySmartUpload.getRequest().getParameter("documentType");
    System.out.println(documentType);
        String comeType=mySmartUpload.getRequest().getParameter("comeType");
    System.out.println(comeType);
        String department=mySmartUpload.getRequest().getParameter("department");
        String documentTitle=mySmartUpload.getRequest().getParameter("documentTitle");
        String scholium=mySmartUpload.getRequest().getParameter("scholium");
        String hz=mySmartUpload.getRequest().getParameter("hz");
        String myFileName=myFile.getFileName();
    System.out.println(myFileName);
        //取得不带后缀的文件名
        String  suffix=myFileName.substring(0,myFileName.lastIndexOf('.'));
        //取得后缀名
        String  ext= mySmartUpload.getFiles().getFile(0).getFileExt();
        //取得文件的大小
        int fileSize=myFile.getSize();
        //保存路径
        String aa= getServletConfig().getServletContext().getRealPath("/");
        String trace=aa+myFileName;
        System.out.println(trace);
        //取得别的参数
       // String explain=(String)mySmartUpload.getRequest().getParameter("text");
        String filename=(String)mySmartUpload.getRequest().getParameter("filename");
        out.print(filename);
        //将文件保存在服务器端
        myFile.saveAs(trace,mySmartUpload.SAVE_PHYSICAL);
        //下面的是将上载的文件保存到数据库中
        //将文件读到流中
        java.io.File file = new java.io.File(trace);
        java.io.FileInputStream fis = new java.io.FileInputStream(file);
        byte []but=new byte[fis.available()];
        fis.read(but);
        out.println(file.length());
    //数据库插入操作
    String fileName="";
    try
    {
    // 设置所用驱动
    Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
     // 初始化连接
     Connection conn = DriverManager.getConnection(
    "jdbc:oracle:thin:@localhost:1521:ems","","");
     Statement stmt = conn.createStatement();
    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    byte buf[]=new byte[1024];
    int length=-1;
    while((length=fis.read(buf))!=-1)
    {
     baos.write(buf,0,length);
    }conn.setAutoCommit(false);fileName=file.getName();
    int i=999;
    stmt.executeUpdate("insert into images(imageid,name,data,length) values("+i+",'"+fileName+"',empty_blob(),"+file.length()+")");
    //下面必须SELECT得到BLOB的对象再向里写:
    ResultSet rs = stmt.executeQuery("select data from images where name='"+fileName+"' for update" );
    if(rs.next())
    {
    Blob blob = rs.getBlob(1);
    OutputStream outStream = ((oracle.sql.BLOB)blob).getBinaryOutputStream();
    byte[] b = new byte[((oracle.sql.BLOB)blob).getBufferSize()];
    InputStream fin = new FileInputStream(file);
    int len = 0;
    while( (len = fin.read(b)) != -1)
    outStream.write(b,0,len);
    fin.close();
    outStream.close();
    conn.commit();
    }
    System.out.println("插入:"+fileName);
              } catch(Exception e){}
     out.println(("上载成功!!!").toString());
       }
       else
       { System.out.println(("上载失败!!!").toString()); }
      // }//与前面的if对应%>