如何从Oracle中取出声音文件,并在jsp页面中播放,各位大侠帮帮忙!

解决方案 »

  1.   

    音频文件应该可以在数据库中以二进制形式,Blob类型存储,在jsp文件中IO流读取
      

  2.   

    public User findUser(User user) {
    User u = null;
    Connection conn = null;
    PreparedStatement pstmt = null;
    ResultSet rs = null;
    try {
    conn = DBAccess.newInstance().getConnection();
    conn.setAutoCommit(false);
    String sql = "select userId, userName, userPwd, userState, userRe,image from Users where userId="
    + user.getUserId() + " for update";
    log.info("sql=[" + sql + "]");
    pstmt = conn.prepareStatement(sql);
    rs = pstmt.executeQuery();
    if (rs.next()) {
    u = new User();
    u.setUserId(rs.getInt("userId"));
    u.setUserName(rs.getString("userName"));
    u.setUserPwd(rs.getString("userPwd"));
    u.setUserState(rs.getInt("userState"));
    u.setUserRe(rs.getString("userRe")); // 从数据库取出图片
    oracle.sql.BLOB blob = (oracle.sql.BLOB) rs.getBlob("image");
    if (blob.length() > 0) {
    log.info("blob.length() == " + blob.length());
    byte[] bytes = new byte[(int) blob.length()];
    BufferedInputStream inputStream = new BufferedInputStream(
    blob.getBinaryStream());
    inputStream.read(bytes, 0, bytes.length);
    inputStream.close();
    u.setImage(bytes);
    }
    }
    conn.commit();
    } catch (Exception e) {
    e.printStackTrace();
    try {
    conn.rollback();
    } catch (SQLException e1) {
    e1.printStackTrace();
    }
    }  return u;
    }
    以前做的,参考下..