oracle数据库的blob类型字段中,表room_info:r_id <pk>,h_id <外键>,r_photo <blob类型>,r_price,r_describe,r_area,
如果要实现以二进制的形式存放在数据中该怎么实现啊?或者先把图片存储在文件夹下面,然后存路径那个怎么实现呢?

解决方案 »

  1.   

    发现了新问题,form其中添加了enctype="multipart/form-data"属性 再用request.getParameter是不行地,那该怎么办呢?
      

  2.   

                                    
            PreparedStatement pst=conn.prepareStatement("insert into room_info(r_id,r_photo) values(SEQ_HOTEL.Nextval,?) ");        File file=new File("D:\\hupeng.gif");
            FileInputStream   input =  new   FileInputStream(file); 
            pst.setBinaryStream(1,input,input.available());
            pst.executeUpdate();
            out.print("<br>success upload to database");
    现在情况是这样的:可以把success upload to database打印出来的,是不是证明已经插入到数据库了啊?二进制流存放在数据库中是不是空白的啊?我的数据库里是空白的
    还有就是的另外几个字段该怎么插入进去啊?room_info:r_id <pk>,h_id <外键>,r_photo <blob类型>,r_price,r_describe,r_area
    form其中添加了enctype="multipart/form-data"属性 再用request.getParameter是不行地?????
      

  3.   

    我记得向数据库插入图片得用大数据类型啊,BLOB(Binary Large Object二进制大数据对象)一般用于存储图像数据,可将对象转换为字节数组再输出显示。
    code:
           try{ Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); 
                 con=DriverManager.getConnection(uri, user, pwd); 
                 String filelocation =request.getParameter("file"); //表单
                 File files = new File(filelocation);
                 FileInputStream fis=new FileInputStream(files);
                 psql =con.prepareStatement(               //带参数SQL语句
                     "INSERT INTO album (name, data) VALUES (?, ?)"); 
                 String filelname=new String(request. //解决汉字编码
                              getParameter("name").getBytes("ISO-8859-1"));
                 psql.setString(1, filelname);                 //设置SQL语句参数
                 psql.setBinaryStream(2, fis, (int)files.length()); 
                 psql.executeUpdate();                           //执行Sql语句
                 out.println("操作成功!"); 
                 fis.close(); psql.close (); con.close(); } 
          catch ( SQLException e) { out.println(e.toString()); }希望对您有帮助!