如何在Struts 数据库应用程序中实现记录的添加(续)

Java中的Struts是什么?如何使用Struts 因此,Action类是应用程序的核心组件之一,它将用户请求与应用程序逻辑和视图进行交互,并提供灵活性和可扩展性。接下来,您需要在应用程序中配置Struts的XML文件,以指定应用程序的Model,View和Controller。因此,使用Web服务器运行应用程序可以使应用程序更加灵活方便,并提供更多的交互方式,使用户可以更加方便地使用应用程序。综上所述,Struts是一种功能强大,灵活,可靠的Web应用程序框架,可以帮助开发人员更轻松地构建和管理Web应用程序,并保护其免受恶意攻击和错误数据的影响。 阅读详情

《如何在Struts 数据库应用程序中实现记录的添加》http://dev.youkuaiyun.com/develop/article/29/29224.shtm

 

[程序源代码]

对于程序源代码,本例唯一与《如何实现Struts 数据库应用程序》中的程序源代码不同之处,是多了dbListInsert.jsp文件,是添加记录页面文件。

dbListInsert.jsp文件:

<%@ page contentType="text/html;charset=GB2312" language="java" %>

<%@ taglib uri="/ WEB - INF /struts-bean.tld" prefix="bean" %>

<%@ taglib uri="/ WEB - INF /struts-html.tld" prefix="html" %>

<%@ taglib uri="/ WEB - INF /struts-logic.tld" prefix="logic" %>

<%@ taglib uri="/ WEB - INF /struts-template.tld" prefix="template" %>

 

<html:html >

<head>

<title>

</title>

< META http-equiv=Content-Type content="text/html; charset=gb2312">

 

</head>

<body bgColor=white>

<html:base />  <html:form  method="post" action="/dbListAction.do?action=insert&search=search&expression=NULL">

<table cellPadding=2 width="80%" border=2><tr><td>序号</td><td><html:text  property='序号' /></td></tr>

<tr><td>姓名</td><td><html:text  property='姓名' /></td></tr>

<tr><td>备注</td><td><html:text  property='备注' /></td></tr>

</table>

<html:submit  value="添加新记录"   />  <html:reset  value="重写"   />  </html:form >

</body>

</html:html >

 

 

dbListDAO.java文件:

  这里定义一个DAO类,用于实现数据加的查找、删除、更新、添加及生成分页字符串等功能。getPagestr(int ipage)函数用于生成分页字符串,int ipage参数用于转递当前页码。findSQL(String sql,int ipage)函数用于查找数据库数据,String sql参数用于转递SQL查询语句字符串,int ipage参数用于转递当前页码。

。。。。。。。。。。(省略)

public class dbListDAO {

 

     与记录添加无关的代码省略。

     public void create(dbList m_dbList) throws SQLException {

    PreparedStatement ps = null;

    //<createSQL>

    String sql = "INSERT INTO dbo.Test VALUES (?,?,?)";

    //</createSQL>

    try {

      if (con.isClosed()) {

        throw new IllegalStateException("error.unexpected");

      }

       //用SQL Server请加入下行:

      con.setAutoCommit(true);

      //SQL Server

      ps = con.prepareStatement(sql);

      //<create>

      ps.setInt(1,m_dbList.get序号());

      ps.setString(2,m_dbList.get姓名());

      ps.setString(3,m_dbList.get备注());

      //</create>

 

      if (ps.executeUpdate() != 1) {

        throw new SQLException ("error.create.dbList");

      }

    } catch (SQLException e) {

    

        e.printStackTrace();

        throw new RuntimeException("error.unexpected");

     

    } finally {

      try {

        if (ps != null)

          ps.close();

      } catch (SQLException e) {

        e.printStackTrace();

        throw new RuntimeException("error.unexpected");

      }

    }

  }

 

    

省略  

}

 

dbListAction.java文件:

。。。。。。。。。。(省略)

public final class dbListAction extends Action

{

    // 变量定义:

    private Log log = LogFactory.getLog("org.apache.struts.webapp.Example");

 

    private ConnectionPool pool;

 

    public dbListAction() {

        pool = ConnectionPool.getInstance();

    }

 

 

    //函数定义:

    public ActionForward execute(ActionMapping mapping,

                             ActionForm form,

                             HttpServletRequest request,

                             HttpServletResponse response)

       throws Exception

    {

       // Extract attributes and parameters we will need

       Locale locale = getLocale(request);

       MessageResources messages = getResources(request);

       HttpSession session = request.getSession();

       dbListForm m_dbListForm = (dbListForm) form;

      

           Connection con = null;

 

     try

        {

                 con = pool.getConnection();

                 dbListDAO m_dbListDAO = new dbListDAO(con);  //定义DAO对象,用于实现数据库的各种操作

 

                 String action=request.getParameter("action");  //动作类型                 

                 String search=request.getParameter("search");  //数据库查找方式

                 String expression=request.getParameter("expression");    //参数,这里用于保存记录(行)的ID数据

                

                 if(action==null)action="find";

              if(search==null)search="UNsearch";

              if(expression==null)expression="";

              expression=toChinese(expression);  //处理中文问题,实现编码转换

              

              if("delete".equals(action))    //删除记录操作

            {

                m_dbListDAO.removeID(expression);

            }

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

            if("update".equals(action)||"insert".equals(action))    //更新、添加记录操作

            {

                 dbList m_dbList= new dbList();

                  //<update>

                  m_dbList.set序号(m_dbListForm.get序号());

                  m_dbList.set姓名(m_dbListForm.get姓名());

                  m_dbList.set备注(m_dbListForm.get备注());

                  //</update>

                   if("update".equals(action))    //调用DAO对象更新记录

                         m_dbListDAO.update(m_dbList,expression);

                   if("insert".equals(action))    //调用DAO对象添加记录

                         m_dbListDAO.create(m_dbList);

            }

                 ///////////////查找数据库

                 //<sqlstr>

                 String sql="SELECT * FROM dbo.Test";

                 //</sqlstr>

 

              ////SQL字符处理

                 if("search".equals(search))

                 {

                     //<search>

                        sql+=" where ";

                     sql+="序号";

                     sql+="=";

                     if("NULL".equals(expression)||"".equals(expression))

                    {

                            sql+=m_dbListForm .get序号();

                        }

                        else

                        {

                            sql+=expression;

                        }

                        

                        sql+="";

                     //</search>

                 }

 

             //<分页>

            m_dbListDAO.setLength(10);//设置每页显示记录数

            int ipage;//当前页

            try

            {

                String page=request.getParameter("page");//分页参数,读取请求的当前页

                ipage=java.lang.Integer.parseInt(page,10);

            }

            catch (Exception e)

             {

                 ipage=m_dbListForm.getPage();

             }

             if(ipage<1)ipage=1;

             Collection col = m_dbListDAO.findSQL(sql,ipage);//通过DAO对象查询数据

            request.setAttribute("dbList",col);  //保存数据

           

            String pagestr=m_dbListDAO.getPagestr(ipage);//分页字符串,分页内容

              String s_find,str;

            if(!"search".equals(search))    //查找和全部显示两个不同的操作,其分页字符串不同,在此进行处理。如果是全部显示则去掉"search=search&"

            {

                s_find="search=search&";

                while(pagestr.indexOf(s_find)!=-1)

                {

                    str=pagestr.substring(0,pagestr.indexOf(s_find));

                    str+=pagestr.substring(pagestr.indexOf(s_find)+s_find.length(),pagestr.length());

                    pagestr=str;

                }

            }

            m_dbListForm.setPagestr(pagestr);  

              m_dbListForm.setAction(action);     

            request.setAttribute("dbListForm",m_dbListForm);

              //</分页>

 

 

                 return mapping.findForward("success");

     }

       catch (SQLException e)

        {

                 e.printStackTrace();

                 throw new RuntimeException("Unable to get connection.");

           }

        finally

        {

               try

             {

               if (con != null)

              con.close();

               }

             catch (SQLException e)

             {

               throw new RuntimeException(e.getMessage());

               }

       }

 

    }

  }

避坑指南:雅特力AT32F403A在Keil5中的V2库配置常见问题解析 本文详细解析了国产MCU雅特力AT32F403A在Keil5中配置V2库的常见问题,包括工程创建、库文件配置、编译错误和外设设置等关键环节。针对项目文件夹结构混乱、芯片型号选择错误、头文件路径设置不当等典型问题提供实用解决方案,帮助开发者高效避坑,提升开发效率。 阅读详情

相关推荐

抖音小游戏上架避坑指南:从软著申请到ICP备案全流程解析

本文详细解析了抖音小游戏上架前必须完成的软著申请和ICP备案全流程,提供了清晰的时间线规划与实操避坑指南。文章重点阐述了个人与企业备案的区别、材料准备要点以及平台审核常见问题,旨在帮助独立开发者和小团队高效、合规地完成游戏上架,避免在行政流程中延误项目。

weixin_29276847的博客 1564

struts1的另一个简单例子(添加学生信息到数据库)

struts 马哥的淘宝店:https://shop592330910.taobao.com/

马哥私房菜 1747

海康摄像头RTSP流延迟优化实战:从VLC到OpenCV的5种方案对比与性能调优

本文针对海康摄像头RTSP流的高延迟问题,深入剖析了延迟根源,并系统对比了从VLC、OpenCV到海康官方SDK、FFmpeg及硬件加速等五种主流方案的性能表现。重点分享了缓冲区设置、协议优化、多线程架构与硬件解码等实战调优技巧,旨在帮助开发者将视频流延迟从秒级优化至毫秒级,满足工业检测、安防监控等高实时性场景需求。

hh234的博客 806

Struts数据库增删改查

首先  记得导入包   但是我们是使用地球方式创建的话  那么 我们这里就不需要加奶瓶了写好首页配置好Struts.xml&lt;param name="actionName"&gt;list.action&lt;/param&gt;   当把数据注册好了之后 就跳到主页去写好controller  这是一个调度室 也就是大脑中枢  必经站这里没有model   那么我们就去写model了  刚才...

T的博客 2717

Gartner DSG数据安全治理 架构及解读

目录背景:架构图: 解释:英文解释:(自上而下)平衡业务与风险、威胁、合规之间的关系(5个维度之间的平衡)优先处理数据集制定安全策略实施安全工具策略配置同步从上到下,从需求调研开始实施数据安全治理。千万不要跨过数据摸底、治理优先级分析、制定治理整体策略,而直接从技术工具开始对数据安全进行治理。 先明确选择需要治理的对象,优先选择重要数据进行数据安全治理工作。可以通过数据梳理、分类分级等手段,完成数据资产盘点和筛选,在纷杂的数据中理清头绪。

锦慈的技术博客 7218

ESP32S3编译micropython固件

编译ESP32芯片的micropython固件

m0_73253860的博客 2554

hibernate+struts2.0向数据库中添加数据和修改数据。

[size=xx-large]1、在上面的利用hibernate和配置文件来建立数据库的基础上表如下:[/size]CREATE TABLE `_leavemessage` ( `id` int(11) NOT NULL AUTO_INCREMENT, `type` varchar(20) DEFAULT NULL, `province` varchar(50) DEFAULT ...

llbullet2012524的博客 467

Pylon SDK C语言多相机采集的注意事项、关键设置及代码示例

前言 与单相机直接用句柄PYLON_DEVICE_HANDLE hdev进行操作所不同的是,在多相机连接采用索引值访问每个相机,对应句柄为PYLON_DEVICE_HANDLE hdev[deviceIndex] 。若连接N个相机设备,则索引值范围为[0,...,N-1]。显而易见,采用循环结构编程可以对多个相机采用同样的操作,包括参数设置、图像采集等。但多个相机的使用需要根据相机功能、相机与主机间的连接方式、网络适配器进行额外的设置。本文参考Pylon C开发者手册和Basler产品文档,对GigE类型

黑化咸鱼的博客 3089

struts向数据库插入中文数据乱码问题

问题:从jsp页面向数据库添加记录中文乱码,英文正常-----编码的问题弄得晕头转向··· 解决方向: 一、myeclipse里面各文件的编码格式不一样? windows--preferences--general--workspace--gbk; windows--preferences--general--content Types--Text--默认编码gbk; 找每一个编写的js

lengxingxing_的博客 1496

告别环境依赖!用PyInstaller把PaddleOCR项目打包成独立EXE(附完整spec文件配置)

本文详细介绍了如何使用PyInstaller将PaddleOCR项目打包成独立EXE文件,彻底解决Python环境依赖问题。通过完整的spec文件配置和实战技巧,开发者可以轻松创建开箱即用的OCR工具,特别适合需要交付给非技术用户的场景。文章涵盖环境配置、模型打包、性能优化等关键环节,并提供了解决常见问题的方案。

weixin_33712987的博客 574

Open3D 基于法线的双边滤波

基于法线的双边滤波是一种用于点云平滑的技术,它结合了点与其邻域点之间的几何距离和法线方向的相似性,从而在去除噪声的同时保留几何特征。这种滤波方法广泛应用于点云处理领域,尤其是在需要保留表面细节和边缘的场景中。

纵马踏花向自由 2500

如何在Struts 数据库应用程序中实现记录的添加

如何在Struts 数据库应用程序中实现记录的添加 [相关链接]《JavaWebStudio系列开发工具Visaul Struts版本简介》http://dev.youkuaiyun.com/develop/article/28/28871.shtm《如何实现最简单的Struts程序》http://dev.youkuaiyun.com/develop/article/28/28946.shtm《Str

kui的专栏 2218

RK3588 MPP,RGA,DRM,QT之RGA

RK3588多路视频采用RGA来进行混合成一帧

dreamliweiming的博客 4266

如何在Struts 数据库应用程序中实现记录的删除、更新及链接(续)

如何在Struts 数据库应用程序中实现记录的删除、更新及链接(续)《如何在Struts 数据库应用程序中实现记录的删除、更新及链接》http://dev.youkuaiyun.com/develop/article/29/29219.shtm  dbListDAO.java文件:  这里定义一个DAO类,用于实现数据加的查找、删除、更新、添加及生成分页字符串等功能。getPage

kui的专栏 1922

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

如何在Struts 数据库应用程序中实现记录的删除、更新及链接

如何在Struts 数据库应用程序中实现记录的删除、更新及链接 [相关链接]《JavaWebStudio系列开发工具Visaul Struts版本简介》http://dev.youkuaiyun.com/develop/article/28/28871.shtm《如何实现最简单的Struts程序》http://dev.youkuaiyun.com/develop/article/28/28946.shtm

kui的专栏 2861

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

如何实现Struts 数据库应用程序

 如何实现Struts 数据库应用程序 [相关链接]《JavaWebStudio系列开发工具Visaul Struts版本简介》http://dev.youkuaiyun.com/develop/article/28/28871.shtm《如何实现最简单的Struts程序》http://dev.youkuaiyun.com/develop/article/28/28946.shtm《Struts下拉框的实现》

kui的专栏 1713

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

如何实现Struts 数据库应用程序(2)

[相关链接]《JavaWebStudio系列开发工具Visaul Struts版本简介》http://dev.youkuaiyun.com/develop/article/28/28871.shtm《如何实现最简单的Struts程序》http://dev.youkuaiyun.com/develop/article/28/28946.shtm《Struts下拉框的实现》http://dev.youkuaiyun.com/deve

kui的专栏 1421

如何实现Struts 数据库应用程序(1)

如何实现Struts 数据库应用程序 [相关链接]《JavaWebStudio系列开发工具Visaul Struts版本简介》http://dev.youkuaiyun.com/develop/article/28/28871.shtm《如何实现最简单的Struts程序》http://dev.youkuaiyun.com/develop/article/28/28946.shtm《Struts下拉框的

kui的专栏 2170

如何建立一个带登陆页面的Struts数据库应用程序

如何建立一个带登陆页面的Struts数据库应用程序 [相关链接] 《JavaWebStudio系列开发工具Visaul Struts版本简介》http://dev.youkuaiyun.com/develop/article/28/28871.shtm 《如何实现最简单的Struts程序》http://dev.youkuaiyun.com/develop/article/28/28946.shtm 《Struts下拉

kui的专栏 4308

如何在Struts 数据库应用程序中实现分页显示(1)

如何在Struts 数据库应用程序中实现分页显示 [相关链接]《JavaWebStudio系列开发工具Visaul Struts版本简介》http://dev.youkuaiyun.com/develop/article/28/28871.shtm《如何实现最简单的Struts程序》http://dev.youkuaiyun.com/develop/article/28/28946.shtm《Stru

kui的专栏 2358

如何实现Hibernate_Struts 数据库应用程序

如何实现Hibernate_Struts 数据库应用程序[目标]本例的目标是实现一个简单的Struts 数据库应用程序。其功能是从SQL Server 2000中读取数据,并以表格的形式在输出页中显示出来。定义一个名为“Test”表的字段:录入一些测试数据:   [效果](1)全部显示:输入页面:输出页面: (2)查询显示:[背景知识][步骤]

是非一念间 910

如何在Struts 数据库应用程序中实现分页显示(2)

如何在Struts 数据库应用程序中实现分页显示 [相关链接]《JavaWebStudio系列开发工具Visaul Struts版本简介》http://dev.youkuaiyun.com/develop/article/28/28871.shtm《如何实现最简单的Struts程序》http://dev.youkuaiyun.com/develop/article/28/28946.shtm《Struts下拉框的

kui的专栏 2004

如何建立一个带登陆页面及角色的Struts数据库应用程序

如何建立一个带登陆页面及角色的Struts数据库应用程序     [目标] 本例的目标是实现一个用户登陆应用程序。用SQL Server 2000数据库保存用户信息。实现用户登陆页面、用户登陆验证、登陆检查标签等功能。 定义一个名为“users”表的字段: 录入一些测试数据:    例如上面的数据,一个用户可能有一个角色,也可以有多个角色。对于多个角色,可以用多条记录来表示,一条记录表示一个角

kui的专栏 3653
上一篇: 如何在Struts 数据库应用程序中实现记录的添加
下一篇: 如何实现Struts 数据库应用程序(1)
kui
kui
博客等级 码龄25年 199粉丝 25原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值