如何在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());

               }

       }

 

    }

  }

Unity URP半透明物体渲染避坑指南:双面渲染与深度写入的实战技巧 本文深入探讨了Unity URP中半透明物体自交叠渲染问题的核心根源与解决方案。针对模型自身交叠导致的排序错误,文章提供了双面渲染与深度写入两种实战技巧,详细分析了其实现原理、性能开销及适用场景,帮助开发者根据项目需求选择最优方案,有效提升玻璃、水体等材质的视觉表现。 阅读详情

相关推荐

PIV实验流场流速云图(MALAB contour函数用法)

clear;clc; for k=1:5 str1=['filename1']; str2=['filename2']; str3=['filename3']; str=eval(['str',num2str(k)]); load(str); [m n]=size(y); y=flipud(y); v=-v; x=x-x(1,...

Nick_Cui的博客 3223

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

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

马哥私房菜 1747

告别底噪与失真:手把手教你调校WM8988音频Codec的输入输出增益链

本文详细介绍了如何调校WM8988音频Codec的输入输出增益链,解决底噪与失真问题。从模拟输入增益、数字转换增益到输出放大增益,提供了具体的寄存器配置和调试策略,帮助开发者优化音频信号处理链,提升音质表现。

weixin_30485379的博客 363

Struts数据库增删改查

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

T的博客 2717

抖音短连接v.douyin.com/xxx 如何生成?

最近公司有个需求,在抖音里如何宣传自己的网站,并且不要有拦截域名的提示,截图如下。 通过ida反编译抖音的app后,将下载后的ipa文件用解压缩软件(如7zip等)解压,从解压后的目录Payload/Aweme.app/找到Aweme可执行文件,拖入ida进行反编译,ida可以检测objective-c语法。 然后进入主题,既然是聊天发消息,就尝试在ida里搜索"message",看看能否找到对...

kakuapi的博客 3万+

数电实验,如何安装Quartus II软件?

数电实验第一步,安装软件Quartus II! 安装这个软件可以说是很折磨我了,依然是failed很多次之后终于可以了! 能成功安装,多亏了网络上的各路大神!!!不胜感激 现在分享经验如下: ps:我分享的是Quartus II 14.0版本的软件及破解器安装使用方法 注意!想要在电脑上顺利安装,前提条件是电脑有10G以上内存!!! 友情提示:建议整个下载过程中,提前关掉所有杀毒、电脑

一个程序媛的成长记录❤ 3659

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

MAX96712在车载摄像头系统中的带宽分配与传输能力计算解析

在计算摄像头带宽与传输接口的关系时,需要考虑视频流的像素分辨率、帧率、颜色深度等因素。以 MAX96712 这种 GMSL2 产品为例,它支持每个链路在正向方向以 3Gbps 或 6Gbps 的固定速率工作。

weixin_43199439的博客 3330

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

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

lengxingxing_的博客 1496

LSF实践专题(15):LSF队列优先级以及抢占功能初探

在LSF暂停作业时,会向作业发送一个SIGTSTP信号,并且将作业状态变成SSUSP(system suspend),表示被系统暂停,这时,最好是作业的应用能够捕获和处理SIGTSTP信号,否则,即使在LSF中,作业会被认为暂停了,并且释放了slots资源,但是在实际OS中,作业进程仍然在继续,并且不会释放CPU等计算资源。是指LSF自动将低优先级作业暂停(suspend),将空余出来的资源交给高优先级队列中的作业使用,等到高优先级队列的作业结束后,再将被暂停的作业恢复(resume)并继续运行。

richycn的博客 1919

On the convergence of FedAvg on non-iid data

On the convergence of FedAvg on non-iid data

Lyn_S的博客 7082

如何在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

基于YOLO系列的安全帽检测系统:从理论到实现的完整指南

安全帽检测作为计算机视觉在工业安全领域的重要应用,近年来得到了广泛关注。本文详细介绍了基于YOLOv5、YOLOv6、YOLOv7和YOLOv8的安全帽检测系统的完整实现方案,包括算法原理、数据集构建、模型训练、性能优化以及完整的UI界面设计。通过对比分析不同YOLO版本的性能差异,本文为工业安全检测系统的开发提供了全面的技术参考和实践指导。

YOLO 364

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

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

kui的专栏 1922

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

如何在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

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

如何实现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

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

如何实现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)查询显示:[背景知识][步骤]

是非一念间 911

如何在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、付费专栏及课程。

余额充值