`
zengjinliang
  • 浏览: 307780 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

用struts向数据库中储存图片

阅读更多
  这个例子是通过用Struts的FormFile来写入到MySQL中。。。
  
  用用户通过选一个图片,然后按submit就可以存入数据库中
  
  其中先要建立一个表:
  
  create table test ( name varchar(20), pic blob );在MySQL的test库中
  
  <%@ page language="java"%>
  <%@ taglib uri="http://jakarta.apache.org/struts/tags-bean" prefix="bean"%>
  <%@ taglib uri="http://jakarta.apache.org/struts/tags-html" prefix="html"%>
  
  <html>
  <head>
  <title>JSP for multiForm form</title>
  </head>
  <body>
  <html:form action="/multi" enctype="multipart/form-data">一定要用enctype=“multipart/form-data“不然就提交之后就会有抛出异常
  file : <html:file property="file"/><html:errors property="file"/></br>
  name : <html:text property="name"/><html:errors property="name"/></br>
  <html:submit/><html:cancel/>
  </html:form>
  </body>
  </html>
  
  2. 相对应的ActionForm:
  
  //Created by MyEclipse Struts
  // XSL source (default): platform:/plugin/com.genuitec.eclipse.cross.easystruts.eclipse_3.8.1/xslt/JavaClass.xsl
  
  package saoo.struts.form;
  
  import org.apache.struts.action.ActionForm;
  import org.apache.struts.upload.FormFile;
  
  /**
  * MyEclipse Struts
  * Creation date: 08-24-2004
  *
  * XDoclet definition:
  * @struts:form name="multiForm"
  */
  public class MultiForm extends ActionForm {
  
  // --------------------------------------------------------- Instance Variables
  
  /** file property */
  private FormFile file;
  
  /** name property */
  private String name;
  
  // --------------------------------------------------------- Methods
  
  /**
  * Returns the file.
  * @return FormFile
  */
  public FormFile getFile() {
  return file;
  }
  
  /**
  * Set the file.
  * @param file The file to set
  */
  public void setFile(FormFile file) {
  this.file = file;
  }
  
  /**
  * Returns the name.
  * @return String
  */
  public String getName() {
  return name;
  }
  
  /**
  * Set the name.
  * @param name The name to set
  */
  public void setName(String name) {
  this.name = name;
  }
  }
  
  3. 对应的Action:
  
  //Created by MyEclipse Struts
  // XSL source (default): platform:/plugin/com.genuitec.eclipse.cross.easystruts.eclipse_3.8.1/xslt/JavaClass.xsl
  
  package saoo.struts.action;
  
  import java.io.FileNotFoundException;
  import java.io.IOException;
  import java.sql.Connection;
  import java.sql.DriverManager;
  import java.sql.PreparedStatement;
  import java.sql.SQLException;
  
  import javax.servlet.http.HttpServletRequest;
  import javax.servlet.http.HttpServletResponse;
  
  import org.apache.struts.action.Action;
  import org.apache.struts.action.ActionForm;
  import org.apache.struts.action.ActionForward;
  import org.apache.struts.action.ActionMapping;
  import org.apache.struts.upload.FormFile;
  
  import saoo.struts.form.MultiForm;
  
  /**
  * MyEclipse Struts
  * Creation date: 08-24-2004
  *
  * XDoclet definition:
  * @struts:action path="/multi" name="multiForm" input="/form/multi.jsp" scope="request"
  */
  public class MultiAction extends Action {
  
  // --------------------------------------------------------- Instance Variables
  
  // --------------------------------------------------------- Methods
  
  /**
  * Method execute
  * @param mapping
  * @param form
  * @param request
  * @param response
  * @return ActionForward
  */
  public ActionForward execute(
  ActionMapping mapping,
  ActionForm form,
  HttpServletRequest request,
  HttpServletResponse response) {
  MultiForm multiForm = (MultiForm) form;
  FormFile file = multiForm.getFile();
  
  String name = multiForm.getName();
  try {
  Class.forName("org.gjt.mm.mysql.Driver");
  String url="jdbc:mysql:///test";
  Connection con=DriverManager.getConnection(url,"root","password");
  String sql="insert into pic values (?,?)";
  PreparedStatement ps =con.prepareStatement(sql);
  ps.setString(1, name);
  //加入图片到数据库
  ps.setBinaryStream(2,file.getInputStream(),file.getFileSize());
  ps.executeUpdate();
  ps.close();
  con.close();
  } catch (SQLException se) {
  se.printStackTrace();
  return mapping.findForward("error");
  } catch (ClassNotFoundException e) {
  // TODO Auto-generated catch block
  e.printStackTrace();
  return mapping.findForward("error");
  } catch (FileNotFoundException e) {
  // TODO Auto-generated catch block
  e.printStackTrace();
  return mapping.findForward("error");
  } catch (IOException e) {
  // TODO Auto-generated catch block
  e.printStackTrace();
  return mapping.findForward("error");
  }
  return mapping.findForward("success");
  }
  }
分享到:
评论

相关推荐

    使用Struts向MySQL数据库中存储图片

    使用Struts实现了向MySQL数据库中存储图片的功能。有一些问题没能解决:中文乱码问题,上传图片不能太大等等。虽然不太完善,作为参考还是可以的

    Struts和数据库连接实例

    在Struts框架中,与数据库的连接是实现业务逻辑的重要环节,下面我们将深入探讨Struts如何与数据库进行交互。 1. **Struts 2 数据库连接配置** - **DataSource**: 在企业级应用中,通常使用DataSource来管理数据库...

    Struts连接数据库做的注册登录

    总的来说,通过Struts实现注册登录功能,开发者需要理解Struts的架构和组件,掌握ActionForm、Action类的使用,以及数据库的连接和查询操作。这是一个典型的Web应用开发过程,涵盖了前端交互、后端处理和数据持久化...

    用Struts向MySQL中储存图片

    通过以上步骤,我们已经成功实现了使用Struts框架向MySQL数据库中存储图片的功能。需要注意的是,在实际项目中还需要考虑更多的细节问题,比如文件大小限制、文件类型验证等。此外,确保数据库连接安全、合理管理...

    struts2+jdbc实现图片的存储与显示(图片存储在数据库内)

    在本项目"struts2+jdbc实现图片的存储与显示(图片存储在数据库内)"中,我们将探讨如何结合这两个技术来处理图片数据,将图片存储到数据库内,并从数据库中检索以供显示。 首先,我们需要了解在数据库中存储图片的...

    Struts2上传图片存数据库

    在本案例中,我们探讨的是如何利用Struts2框架处理文件上传,并将上传的图片以BLOB(Binary Large Object)类型存储在数据库中,同时提供下载功能。Hibernate则是一个对象关系映射(ORM)框架,它简化了数据库操作,...

    struts应用连接数据库

    在Struts应用中,通常使用JDBC(Java Database Connectivity)来连接数据库。首先,需要在项目中添加对应的数据库驱动依赖,如MySQL、Oracle等。然后,通过DataSource获取数据库连接,执行SQL语句并处理结果。 3. ...

    struts2数据库常用操作

    在例子中,`depDto`可能是一个包含用户信息的对象,用于存储从数据库查询到的数据,并传递给JSP页面显示。 7. **错误处理和消息传递** 示例代码中,如果登录失败,Action类会设置一个错误消息`msg`,并通过getter...

    struts文图片上传 并存入数据库 在jsp页面显示

    在这个特定的项目中,我们看到的是一个关于如何使用Struts实现图片上传、存储到数据库以及在JSP页面显示的过程。以下是相关的知识点详解: 1. **Struts框架**:Struts是Apache软件基金会的一个开源项目,它提供了...

    有关struts中的数据库连接池问题解决

    在开发基于Web的应用程序时,尤其是在使用Struts框架这样的MVC(Model-View-Controller)架构中,数据库连接管理是至关重要的一个环节。由于数据库连接是一种关键、有限且昂贵的资源,因此合理地管理和优化数据库...

    Struts 2 数据库操作

    在给出的例子中,虽然没有直接使用真实的数据库,而是用了一个模拟的哈希表(Hash Map)来模拟DAO(数据访问对象)的操作,但这个例子仍然能够帮助我们理解Struts 2中进行数据库操作的基本原理。DAO模式是一种设计...

    struts下上传图片到数据库并显示到页面实例

    在这个实例中,我们将探讨如何在Struts框架下实现图片的上传功能,将图片保存到数据库,并在页面上显示出来。 首先,我们需要创建一个Action类来处理用户上传的图片。这个Action类通常会包含一个方法,如`execute()...

    基于Struts的数据库维护系统

    在这个"基于Struts的数据库维护系统"中,开发者利用Struts的核心优势,实现了对公司内部数据的有效管理和资源共享。 首先,Struts框架通过提供一个清晰的分层结构,使得业务逻辑、视图展示和控制流程之间解耦。这...

    连数据库的struts2例子

    在这个"连数据库的Struts2例子"中,我们将深入探讨如何使用Struts2与MySQL数据库进行交互,实现数据的添加和查询功能。 首先,我们需要确保环境准备就绪。这包括安装JDK、MySQL数据库、Struts2框架以及相关的开发...

    ssh框架用struts2 hibernate实现图片的上传源码

    以上就是SSH框架中使用Struts2和Hibernate实现图片上传的主要知识点,涵盖了Web请求处理、ORM框架、文件上传、数据库操作以及前端交互等多个方面。实际项目开发时,还需要结合具体的业务需求和安全规范进行详细设计...

    struts连接数据库的小例子

    在这个小例子中,我们将探讨如何使用Struts与SQL Server数据库进行交互,这对于初学者来说是一个很好的学习起点。 首先,理解Struts的核心概念非常重要。Struts遵循MVC(Model-View-Controller)设计模式,它的主要...

    struts-数据库连接

    Struts是一个流行的Java Web开发框架,它主要用于构建基于MVC(Model-View-Controller)模式的Web应用程序...同时,为了安全起见,不建议在代码中硬编码数据库凭证,而是应使用环境变量或配置文件来存储这些敏感信息。

    struts MySQL数据库开发的留言板

    Struts和MySQL数据库结合开发留言板系统是Web应用开发中的一个常见场景。Struts是一个基于MVC(Model-View-Controller)设计模式的Java Web框架,它可以帮助开发者构建结构清晰、可维护性强的Web应用程序。而MySQL则...

    struts跟数据库的笔记,心得.rar

    总结,本笔记详尽地记录了在Struts框架下如何进行数据库操作,涵盖了数据库连接、DAO设计、ORM框架的使用,以及针对Oracle和MySQL的特性应用。同时,还涉及到SQL语言的基础知识和Struts中异常与事务的处理策略。希望...

    Struts如何解决中文添加到数据库

    - 当从数据库中取出中文数据时,确保在JSP页面中使用正确的字符编码进行显示。 6. **国际化与本地化** - 如果涉及到多语言环境,Struts提供国际化支持。在资源文件(如message.properties或message_zh_...

Global site tag (gtag.js) - Google Analytics