您现在的位置是:首页 >

创建对象时必须先声明对象 使用Struts+Hibernate上传大对象(BLOB)

火烧 2022-07-30 12:03:34 1048
使用Strut +Hi er ate上传大对象 BLOB   流程:首先在add j 中选择要上传的文件或图片 点击确定 Strut 中的Actio Form验证 验证无误就到Actio 类中继续操作

使用Struts+Hibernate上传大对象(BLOB)  

  流程:首先在add jsp中选择要上传的文件或图片 点击确定 Struts中的ActionForm验证 验证无误就到Action类中继续操作 Action类调用PhotoDao类的addPhoto方法保存图片

   :建表

    

  Sql代码    create table(      id int primary key auto_increment       name varchar( )       photo blob    )    create <A title=table target=_blank>table</A>(      id int primary key auto_increment       name varchar( )       photo blob    )

  create table(      id int primary key auto_increment       name varchar( )       photo blob    )

    add jsp页面代码

  Html代码      <%@ page language= java pageEncoding= ISO %>    <%@ taglib uri= bean prefix= bean %>    <%@ taglib uri= prefix= %>

  <>        <head>            <title>JSP for AddForm form</title>        </head>        <body>            <:form action= /add enctype= multipart/form data >                name : <:text property= name /><:errors property= name /><br/>                photo : <:file property= photo /><:errors property= photo /><br/>                <:submit/><:cancel/>            </:form>        </body>    </>    view plaincopy to clipboardprint?    <%@ page language= java pageEncoding= ISO %>    <%@ taglib uri= bean prefix= bean %>    <%@ taglib uri= prefix= %>

  <>        <head>            <title>JSP for AddForm form</title>        </head>        <body>            <:form action= /add enctype= multipart/form data >                name : <:text property= name /><:errors property= name /><br/>                photo : <:file property= photo /><:errors property= photo /><br/>                <:submit/><:cancel/>            </:form>        </body>    </>

  <%@ page language= java pageEncoding= ISO %>    <%@ taglib uri= bean prefix= bean %>    <%@ taglib uri= prefix= %>

  <>     <head>      <title>JSP for AddForm form</title>     </head>     <body>      <:form action= /add enctype= multipart/form data >       name : <:text property= name /><:errors property= name /><br/>       photo : <:file property= photo /><:errors property= photo /><br/>       <:submit/><:cancel/>      </:form>     </body>    </> :photo(javabean)代码如下

  Java代码    package hp entity;

  import java sql Blob;

  public class Photo implements java io Serializable {

  private Integer id;        private String name;        private Blob photo;

  public Photo() {        }

  public Photo(String name) {            this name = name;        }

  public Photo(String name Blob photo) {            this name = name;            this photo = photo;        }

  public Integer getId() {            return this id;        }

  public void setId(Integer id) {            this id = id;        }

  public String getName() {            return this name;        }

  public void setName(String name) {            this name = name;        }

  public Blob getPhoto() {            return photo;        }

  public void setPhoto(Blob photo) {            this photo = photo;        }

  }    view plaincopy to clipboardprint?    package hp entity;

  import java sql Blob;

  public class Photo implements java io Serializable {

  private Integer id;        private String name;        private Blob photo;

  public Photo() {        }

  public Photo(String name) {            this name = name;        }

  public Photo(String name Blob photo) {            this name = name;            this photo = photo;        }

  public Integer getId() {            return this id;        }

  public void setId(Integer id) {            this id = id;        }

 

          public String getName() {            return this name;        }

  public void setName(String name) {            this name = name;        }

  public Blob getPhoto() {            return photo;        }

  public void setPhoto(Blob photo) {            this photo = photo;        }

  }

  package hp entity;

  import java sql Blob;

  public class Photo implements java io Serializable {

  private Integer id;     private String name;     private Blob photo;

  public Photo() {     }

  public Photo(String name) {      this name = name;     }

  public Photo(String name Blob photo) {      this name = name;      this photo = photo;     }

  public Integer getId() {      return this id;     }

  public void setId(Integer id) {      this id = id;     }

  public String getName() {      return this name;     }

  public void setName(String name) {      this name = name;     }

  public Blob getPhoto() {      return photo;     }

  public void setPhoto(Blob photo) {      this photo = photo;     }

  }

  Xml代码    <?xml version= encoding= utf ?>

  <!DOCTYPE hibernate mapping PUBLIC //Hibernate/Hibernate Mapping DTD //EN

   mapping dtd >

  <!

  Mapping file autogenerated by MyEclipse Persistence Tools

   >

  <Hibernate mapping>

  <class name= hp entity Photo table= photo catalog= test >

  <id name= id type= java lang Integer >

  <column name= id />

  <generator class= native />

  </id>

  <property name= name type= java lang String >

  <column name= name length= not null= true />

  </property>

  <! 注意下面的类型 >

  <property name= photo type= java sql Blob >

  <column name= photo />

  </property>

  </class>

  </Hibernate mapping>    view plaincopy to clipboardprint?    <?xml version= encoding= utf ?>

  <!DOCTYPE <A title=Hibernate 基金&amp;amp;q=基金&amp;amp;sbb=搜索&amp;amp;sa=搜索&amp;amp;client=pub &amp;amp;forid= &amp;amp;prog=aff&amp;amp;ie=GB &amp;amp;oe=GB &amp;amp;hl=zh CN target=_blank>Hibernate</A> mapping PUBLIC //Hibernate/Hibernate Mapping DTD //EN

   mapping dtd >

  <!

  Mapping file autogenerated by MyEclipse Persistence Tools

   >

  <hibernate mapping>

  <class name= hp entity Photo <A title=table target=_blank>table</A>= photo catalog= test >

  <id name= id type= java lang Integer >

  <column name= id />

  <generator class= native />

  </id>

  <property name= name type= java lang String >

  <column name= name length= not null= true />

  </property>

  <! 注意下面的类型 >

  <property name= photo type= java sql Blob >

  <column name= photo />

  </property>

  </class>

  </hibernate mapping>

  <?xml version= encoding= utf ?>

  <!DOCTYPE Hibernate mapping PUBLIC //Hibernate/Hibernate Mapping DTD //EN

   mapping dtd >

  <!

  Mapping file autogenerated by MyEclipse Persistence Tools

   >

  <hibernate mapping>

  <class name= hp entity Photo table= photo catalog= test >

  <id name= id type= java lang Integer >

  <column name= id />

  <generator class= native />

  </id>

  <property name= name type= java lang String >

  <column name= name length= not null= true />

  </property>

  <! 注意下面的类型 >

  <property name= photo type= java sql Blob >

  <column name= photo />

  </property>

  </class>

  </hibernate mapping>    :PhotoDao代码如下

  Java代码    import hibernate Query;

  import hibernate Session;

  import hibernate Transaction;

  import hp entity Photo;

  import hp util *;

  public class PhotoDao {

  private Session session=null;

  public PhotoDao(){

  this session = HibernateSessionFactory getSession();

  }

  public void addPhoto(Photo photo){

  Transaction tx=session beginTransaction();

  session saveOrUpdate(photo);

  mit();

  }

  public Photo getByName(String name){

  Query query=session createQuery( from Photo p where p name = ? );

  query setString( name);

  return (Photo) query uniqueResult();

  }

  public void close(){

  if(session isOpen()){

  session close();

  session=null;

  }

  }

  }    import hibernate Query;

  import hibernate Session;

  import hibernate Transaction;

  import hp entity Photo;

  import hp util *;

  public class PhotoDao {

  private Session session=null;

  public PhotoDao(){

              this session = HibernateSessionFactory getSession();

  }

  public void addPhoto(Photo photo){

  Transaction tx=session beginTransaction();

  session saveOrUpdate(photo);

  mit();

  }

  public Photo getByName(String name){

  Query query=session createQuery( from Photo p where p name = ? );

  query setString( name);

  return (Photo) query uniqueResult();

  }

  public void close(){

  if(session isOpen()){

  session close();

  session=null;

  }

  }

  }

  import hibernate Query;

  import hibernate Session;

  import hibernate Transaction;

  import hp entity Photo;

  import hp util *;

  public class PhotoDao {

  private Session session=null;

  public PhotoDao(){

  this session = HibernateSessionFactory getSession();

  }

  public void addPhoto(Photo photo){

  Transaction tx=session beginTransaction();

  session saveOrUpdate(photo);

  mit();

  }

  public Photo getByName(String name){

  Query query=session createQuery( from Photo p where p name = ? );

  query setString( name);

  return (Photo) query uniqueResult();

  }

  public void close(){

  if(session isOpen()){

  session close();

  session=null;

  }

  }

  }

   :struts的ActionForm代码

  Java代码    import javax servlet HttpServletRequest;

  import apache struts action ActionErrors;

  import apache struts action ActionForm;

  import apache struts action ActionMapping;

  import apache struts upload FormFile;

  public class AddForm extends ActionForm {

  //在Struts中上传文件需要使用FormFile类型

  private FormFile photo;        private String name;

  public ActionErrors validate(ActionMapping mapping

  HttpServletRequest request) {

  return null;

  }        public void reset(ActionMapping mapping HttpServletRequest request) {

  }

  public FormFile getPhoto() {

  return photo;

  }        public void setPhoto(FormFile photo) {

  this photo = photo;

  }        public String getName() {

  return name;

  }        public void setName(String name) {

  this name = name;

  }

  }    import javax servlet HttpServletRequest;

  import apache struts action ActionErrors;

  import apache struts action ActionForm;

  import apache struts action ActionMapping;

  import apache struts upload FormFile;

  public class AddForm extends ActionForm {

  //在Struts中上传文件需要使用FormFile类型

  private FormFile photo;        private String name;

  public ActionErrors validate(ActionMapping mapping

  HttpServletRequest request) {

  return null;

  }        public void reset(ActionMapping mapping HttpServletRequest request) {

  }

  public FormFile getPhoto() {

  return photo;

  }        public void setPhoto(FormFile photo) {

  this photo = photo;

  }        public String getName() {

  return name;

  }        public void setName(String name) {

  this name = name;

  }

  }

  import javax servlet HttpServletRequest;

  import apache struts action ActionErrors;

  import apache struts action ActionForm;

  import apache struts action ActionMapping;

  import apache struts upload FormFile;

  public class AddForm extends ActionForm {

  //在Struts中上传文件需要使用FormFile类型

  private FormFile photo;        private String name;

  public ActionErrors validate(ActionMapping mapping

  HttpServletRequest request) {

  return null;

  }        public void reset(ActionMapping mapping HttpServletRequest request) {

  }

  public FormFile getPhoto() {

  return photo;

  }        public void setPhoto(FormFile photo) {

  this photo = photo;

  }        public String getName() {

  return name;

  }        public void setName(String name) {

  this name = name;

  }

  }

   :struts的Action代码

  Java代码    import java io File;

  import java io FileInputStream;

  import java io FileNotFoundException;

  import java io FileOutputStream;

  import java io IOException;

  import java io InputStream;

  import java io OutputStream;

    

  import java sql Blob;

  import javax servlet HttpServletRequest;

  import javax servlet HttpServletResponse;

  import apache struts action Action;

  import apache struts action ActionForm;

  import apache struts action ActionForward;

  import apache struts action ActionMapping;

  import apache struts upload FormFile;

  import hibernate Hibernate;

  import dao *;

  import hp entity Photo;

  import hp struts form AddForm;

创建对象时必须先声明对象 使用Struts+Hibernate上传大对象(BLOB)

  public class AddAction extends Action {

  public ActionForward execute(ActionMapping mapping ActionForm form

  HttpServletRequest request HttpServletResponse response) {

  AddForm addForm = (AddForm) form;

  String name = addForm getName();

  // 在Struts中上传文件需要使用FormFile

  FormFile formFile = addForm getPhoto();

  System out println( name = + name);

  System out println( size = + formFile getFileSize());

  Photo photo= new Photo();

  //将FormFile类型的图片信息转换为字节数组类型

  try {

  byte[] buf= formFile getFileData();

  //使用Hibernate的工具将字节数组转换成Blob对象

  Blob ph= Hibernate createBlob(buf);

  photo setName(name);

  photo setPhoto(ph);

  PhotoDao photoDao = new PhotoDao();

  photoDao addPhoto(photo);

  //以上为插入图片 下面为读取刚才插入的图片 按name查找图片

  Photo temp = photoDao getByName(name);

  //将BLOB对象转化为输入流的形式

  InputStream in=temp getPhoto() getBinaryStream();

  //先在C盘生成temp文件 用于保存图片

  OutputStream os = new FileOutputStream(new File( c://temp jpg ));

  //把输入流中的数据读入buf数组中

  in read(buf);

  //从buf数组中读出数据

  os write(buf);

  in close();

  os close();

  request getSession() setAttribute( photo c://temp jpg );

  photoDao close();

  } catch (Exception e) {

  e printStackTrace();

  }

  return mapping findForward( success );

  }

  public static void main(String[] args) {

  System out println(System getProperty( user dir ));

  }

  }    import java io File;

  import java io FileInputStream;

  import java io FileNotFoundException;

  import java io FileOutputStream;

  import java io IOException;

  import java io InputStream;

  import java io OutputStream;

  import java sql Blob;

  import javax servlet HttpServletRequest;

  import javax servlet HttpServletResponse;

  import apache struts action Action;

  import apache struts action ActionForm;

  import apache struts action ActionForward;

  import apache struts action ActionMapping;

  import apache struts upload FormFile;

  import hibernate Hibernate;

  import dao *;

  import hp entity Photo;

  import hp struts form AddForm;

  public class AddAction extends Action {

  public ActionForward execute(ActionMapping mapping ActionForm form

  HttpServletRequest request HttpServletResponse response) {

  AddForm addForm = (AddForm) form;

  String name = addForm getName();

  // 在Struts中上传文件需要使用FormFile

  FormFile formFile = addForm getPhoto();

  <A title=system target=_blank>system</A> out println( name = + name);

  <A title=system target=_blank>system</A> out println( size = + formFile getFileSize());

  Photo photo= new Photo();

  //将FormFile类型的图片信息转换为字节数组类型

  try {

  byte[] buf= formFile getFileData();

  //使用Hibernate的工具将字节数组转换成Blob对象

  Blob ph= <A title=Hibernate 基金&amp;amp;q=基金&amp;amp;sbb=搜索&amp;amp;sa=搜索&amp;amp;client=pub &amp;amp;forid= &amp;amp;prog=aff&amp;amp;ie=GB &amp;amp;oe=GB &amp;amp;hl=zh CN target=_blank>Hibernate</A> createBlob(buf);

  photo setName(name);

  photo setPhoto(ph);

  PhotoDao photoDao = new PhotoDao();

  photoDao addPhoto(photo);

  //以上为插入图片 下面为读取刚才插入的图片 按name查找图片

  Photo temp = photoDao getByName(name);

  //将BLOB对象转化为输入流的形式

  InputStream in=temp getPhoto() getBinaryStream();

  //先在C盘生成temp文件 用于保存图片

  OutputStream os = new FileOutputStream(new File( c://temp jpg ));

  //把输入流中的数据读入buf数组中

  in read(buf);

  //从buf数组中读出数据

  os write(buf);

  in close();

  os close();

  request getSession() setAttribute( photo c://temp jpg );

  photoDao close();

  } catch (Exception e) {

  e printStackTrace();

  }

  return mapping findForward( success );

  }

  public static void main(String[] args) {

  <A title=system target=_blank>system</A> out println(System getProperty( user dir ));

  }

  }

  import java io File;

  import java io FileInputStream;

  import java io FileNotFoundException;

  import java io FileOutputStream;

  import java io IOException;

  import java io InputStream;

  import java io OutputStream;

  import java sql Blob;

  import javax servlet HttpServletRequest;

      import javax servlet HttpServletResponse;

  import apache struts action Action;

  import apache struts action ActionForm;

  import apache struts action ActionForward;

  import apache struts action ActionMapping;

  import apache struts upload FormFile;

  import hibernate Hibernate;

  import dao *;

  import hp entity Photo;

  import hp struts form AddForm;

  public class AddAction extends Action {

  public ActionForward execute(ActionMapping mapping ActionForm form

  HttpServletRequest request HttpServletResponse response) {

  AddForm addForm = (AddForm) form;

  String name = addForm getName();

  // 在Struts中上传文件需要使用FormFile

  FormFile formFile = addForm getPhoto();

  system out println( name = + name);

  system out println( size = + formFile getFileSize());

  Photo photo= new Photo();

  //将FormFile类型的图片信息转换为字节数组类型

  try {

  byte[] buf= formFile getFileData();

  //使用Hibernate的工具将字节数组转换成Blob对象

  Blob ph= Hibernate createBlob(buf);

  photo setName(name);

  photo setPhoto(ph);

  PhotoDao photoDao = new PhotoDao();

  photoDao addPhoto(photo);

  //以上为插入图片 下面为读取刚才插入的图片 按name查找图片

  Photo temp = photoDao getByName(name);

  //将BLOB对象转化为输入流的形式

  InputStream in=temp getPhoto() getBinaryStream();

  //先在C盘生成temp文件 用于保存图片

  OutputStream os = new FileOutputStream(new File( c://temp jpg ));

  //把输入流中的数据读入buf数组中

  in read(buf);

  //从buf数组中读出数据

  os write(buf);

  in close();

  os close();

  request getSession() setAttribute( photo c://temp jpg );

  photoDao close();

  } catch (Exception e) {

  e printStackTrace();

  }

  return mapping findForward( success );

  }

  public static void main(String[] args) {

  system out println(System getProperty( user dir ));

  }

  }

   :用于显示插入图片的页面show jsp

  Html代码    <%@ page language= java pageEncoding= ISO %>

  <%@ taglib uri= bean prefix= bean %>

  <%@ taglib uri= prefix= %>

  <%@ taglib uri= logic prefix= logic %>

  <%@ taglib uri= tiles prefix= tiles %>

  <!DOCTYPE HTML PUBLIC //W C//DTD HTML Transitional//EN >

  <: lang= true >

  <head>

  <:base />

  <title>show jsp</title>

  </head>

  <body>

  <:img src= ${photo} />

  </body>

  </:>    view plaincopy to clipboardprint?    <%@ page language= java pageEncoding= ISO %>

  <%@ taglib uri= bean prefix= bean %>

  <%@ taglib uri= prefix= %>

  <%@ taglib uri= logic prefix= logic %>

  <%@ taglib uri= tiles prefix= tiles %>

  <!DOCTYPE HTML PUBLIC //W C//DTD HTML Transitional//EN >

  <: lang= true >

  <head>

  <:base />

  <title>show jsp</title>

  </head>

  <body>

  <:img src= ${photo} />

  </body>

  </:>

lishixinzhi/Article/program/Java/ky/201311/27966  
永远跟党走
  • 如果你觉得本站很棒,可以通过扫码支付打赏哦!

    • 微信收款码
    • 支付宝收款码