最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

图片存入mySql数据库

来源:动视网 责编:小OO 时间:2025-10-02 10:57:30
文档

图片存入mySql数据库

我在程序代码里贴了向Mysql数据库写入image代码的程序,可是好多人都是Java的初学者,对于这段代码,他们无法将它转换成jsp,所以我在这在写一下用jsp怎样向数据库写入图像文件。大家先在数据库建这样一张表,我下面的这些代码对任何数据库都通用,只要支持blob类型的只要大家将连接数据库的参数改一下就可以了。SQL>createtableimage(idint,contentvarchar(200),imageblob);如果在sqlserver2000的数据库中,可以将blob字段换为i
推荐度:
导读我在程序代码里贴了向Mysql数据库写入image代码的程序,可是好多人都是Java的初学者,对于这段代码,他们无法将它转换成jsp,所以我在这在写一下用jsp怎样向数据库写入图像文件。大家先在数据库建这样一张表,我下面的这些代码对任何数据库都通用,只要支持blob类型的只要大家将连接数据库的参数改一下就可以了。SQL>createtableimage(idint,contentvarchar(200),imageblob);如果在sqlserver2000的数据库中,可以将blob字段换为i
    

  我在程序代码里贴了向Mysql数据库写入image代码的程序,可是好多人都是Java的初学者,对于这段代码,他们无法将它转换成jsp,所以我在这在写一下用jsp怎样向数据库写入图像文件。大家先在数据库建这样一张表,我下面的这些代码对任何数据库都通用,只要支持blob类型的     

  只要大家将连接数据库的参数改一下就可以了。     

SQL>create table image(id int,content varchar(200),image blob);

  如果在sqlserver2000的数据库中,可以将blob字段换为image类型,这在SqlServer2000中是新增的。     

  testimage.html文件内容如下:     

Image File



    

  我们在Form的action里定义了一个动作testimage.jsp,它的内容如下:     

<%@ page contentType="text/html;charset=gb2312"%>

<%@ page import="java.sql.*" %>

<%@ page import="java.util.*"%>

<%@ page import="java.text.*"%>

<%@ page import="java.io.*"%>

<%Class.forName("org.gjt.mm.mysql.Driver").newInstance();

  String   url="jdbc:mysql://localhost/mysql?user=root&password=&useUnicode=true&characterEncoding=8859_1";     

  //其中mysql为你数据库的名字,user为你连接数据库的用户,password为你连接数据库用户的密码,可自己改     

  Connection   conn=   DriverManager.getConnection(url);     

  String   content=request.getParameter("content");     

  String   filename=request.getParameter("image");     

  FileInputStream   str=new   FileInputStream(filename);     

  String   sql="insert   into   test(id,content,image)   values(1,?,?)";     

  PreparedStatement   pstmt=dbconn.conn.prepareStatement(sql);     

  pstmt.setString(1,content);     

  pstmt.setBinaryStream(2,str,str.available());     

  pstmt.execute();     

  out.println("Success,You   Have   Insert   an   Image   Successfully");     

%>

    

  下面我写一个测试image输出的例子看我们上面程序写的对不对,testimageout.jsp的内容如下:     

<%@ page contentType="text/html;charset=gb2312"%>

<%@ page import="java.sql.*" %>

<%@ page import="java.util.*"%>

<%@ page import="java.text.*"%>

<%@ page import="java.io.*"%>

<%Class.forName("org.gjt.mm.mysql.Driver").newInstance();

  String   url="jdbc:mysql://localhost/mysql?user=root&password=&useUnicode=true&characterEncoding=8859_1";     

  //其中mysql为你数据库的名字,user为你连接数据库的用户,password为你连接数据库用户的密码,可自己改     

  Connection   conn=   DriverManager.getConnection(url);     

  String   sql   =   "select   image   from   test   where   id=1";     

  Statement   stmt=null;     

  ResultSet   rs=null;     

  try{     

  stmt=conn.createStatement();     

  rs=stmt.executeQuery(sql);     

  }catch(SQLException   e){}     

  try   {     

  while(rs.next())   {     

  res.setContentType("image/jpeg");     

  ServletOutputStream   sout   =   response.getOutputStream();     

  InputStream   in   =   rs.getBinaryStream(1);     

  byte   b[]   =   new   byte[0x7a120];     

  for(int   i   =   in.read(b);   i   !=   -1;)     

  {     

  sout.write(b);     

  in.read(b);     

  }     

  sout.flush();     

  sout.close();     

  }     

  }     

  catch(Exception   e){System.out.println(e);}     

%>

  你运行这个程序,你就会看到刚才你写入美丽的图片就会显示在你面前。怎么样,用jsp来试试。     

  这种方法把图片写到数据库中会使数据库在短时间内容量飞涨,会影响性能的,另外一种做法将图片存上传到服务器上,     

  在数据库里只存放图片的路径,这是一个很好的方法。我建议大家采取后面一种方法。

jsp上传图片到Oracle数据库     

  第一步:建立数据库     

  create   table   test_img(id   number(4),name   varchar(20),pic   long   raw);     

    

  第二步:(NewImg.html)     

    

添加图片

  添加图片

  图像ID:


  选择图像:



    

  第三步:插入数据库(InsertImg.jsp)     

    

<%@ page language="java"%>

<%@ page contentType="text/html;charset=gb2312" %>

<%@ page import="java.util.*" %>

<%@ page import="java.sql.*"%>

<%@ page import="java.text.*"%>

<%@ page import="java.io.*"%>

    

<%

  Class.forName("oracle.jdbc.driver.OracleDriver");     

  String   url="jdbc:oracle:thin:@lubin:1521:b2bdb";     

  Connection   con=DriverManager.getConnection(url,"demo

    

  //插入数据库     

  String   sql="insert   into   test_img   values   (?,?,?)";     

  //获取传值ID     

  String   id=request.getParameter("id");     

  //获取image的路径     

  String   kk=request.getParameter("image");     

  //转换成file格式     

  File   filename=new   File(kk);     

    

  //将文件的长度读出,并转换成Long型     

  long   l1=filename.length();     

  int   l2=(int)l1;     

    

  //以流的格式赋值     

  FileInputStream   fis=new   FileInputStream(filename);     

    

  PreparedStatement   ps   =con.prepareStatement(sql);     

  ps.setString(1,id);     

  ps.setString(2,filename.getName());     

  ps.setBinaryStream(3,fis,l2);     

  //ps.setBinaryStream(3,fis,fis.available());     

  ps.executeUpdate();     

  //ps.execute();     

  ps.close();     

  fis.close();     

  out.println("ok!!!");     

%>

    

  第四步:显示图片(ShowImg.jsp)     

    

<%@ page language="java" import="java.sql.*"%>

<%@ page import="java.io.*"%>

<%@ page contentType="text/html;charset=gb2312"%>

    

<%

  Class.forName("oracle.jdbc.driver.OracleDriver");     

  String   url="jdbc:oracle:thin:@lubin:1521:b2bdb";     

  String   image_id   =   (String)   request.getParameter("ID");     

    

  Connection   con=DriverManager.getConnection(url,"demo

  PreparedStatement   sql=con.prepareStatement("select   *   from   test_img   WHERE   id   =   "   +   image_id);     

  ResultSet   rs   =   sql.executeQuery();     

    

  rs.next();     

  //输入img字段内容到in     

  InputStream   in   =   rs.getBinaryStream("img");     

    

  //以下可是任何处理,比如向页面输出:     

    

  response.reset();     

  //此处的image/jpeg似乎与显示的图片格式无关     

  //因为我显示jsp和gif都没有错误     

  response.setContentType("image/jpeg");     

  byte[]   b   =   new   byte[1024];     

  int   len;     

while((len=in.read(b)) >0)

  response.getOutputStream().write(b,0,len);     

    

  in.close();     

  rs.close();     

%>

saveImage.java源代码   

  /////////////   

  package   imagefile;   

  import   java.sql.*;   

  import   java.util.*;   

  import   java.io.*;   

    

  public   class   SaveImage   {   

      public   static   void   main(String[]   args)   {   

          Properties   props   =   new   Properties();   

          props.put("user",           "scott");   

          props.put("password",   "tiger");   

          props.put("server",       "SDDS");   

    

          try{   

              Driver   myDriver   =   (Driver)   

                              Class.forName("weblogic.jdbc.oci.Driver").newInstance();   

              Connection   con   =   myDriver.connect("jdbc:weblogic:oracle"   ,   props);   

    

    con.setAutoCommit(false);   

    File   files   =   new   File(filename);   

    FileInputStream   fis=new   FileInputStream(files);   

    PreparedStatement   ps   =   con.prepareStatement(   

                    "INSERT   INTO   filetable   (filename,filedata)"   +   

                          "VALUES   (?,   ?)");   

      ps.setString(1,   files.getName());   

      ps.setBinaryStream(2,   fis,(int)files.length());   

      ps.executeUpdate();   

      fis.close();   

      ps.close();   

      con.close();   

      System.out.println("file   is   saved   into   filetable");   

          }catch(Exception   e){e.printStackTrace();}   

      }   

  } 

 

 

 

文档

图片存入mySql数据库

我在程序代码里贴了向Mysql数据库写入image代码的程序,可是好多人都是Java的初学者,对于这段代码,他们无法将它转换成jsp,所以我在这在写一下用jsp怎样向数据库写入图像文件。大家先在数据库建这样一张表,我下面的这些代码对任何数据库都通用,只要支持blob类型的只要大家将连接数据库的参数改一下就可以了。SQL>createtableimage(idint,contentvarchar(200),imageblob);如果在sqlserver2000的数据库中,可以将blob字段换为i
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top