struts操作数据库 -一个简单的例子

Struts2框架下数据库操作实战指南 Struts2框架是Java EE领域中用于开发Web应用程序的流行框架。它是Apache软件基金会下的一个开源项目,是Struts1.x的继承者,拥有更加灵活和强大的功能。在复杂的应用中,为了更好地控制异常的处理流程,我们常常会自定义异常类。自定义异常类可以通过继承Exception或RuntimeException来实现,并在其中添加业务特定的属性和方法。// 在Action中使用自定义异常// ...if (! 阅读详情

数据库编程的一些基本步骤:

注册驱动

创建数据库连接

执行SQL语句获得结果

要用到的一些基本类

Connection类

Statement类和PeparedStatement类

ResultSet类

要注意的问题

数据库操作的时候会出现异常,要注意捕获并处理

用以下的代码做解释
//定义数据库的驱动程序(以下给出的是连接odbc数据库的)

String strDriver="sun.jdbc.odbc.JdbcOdbcDriver";
//定义数据的URL(名称)

String strConnection="jdbc:odbc:myFirstData";
//数据访问的用户名
String strConnectUsername="";
//数据库访问的密码
String strConnectPassword="";
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
String sql_temp = "select * from tableName"
try {

      Class.forName(strDriver);//注册驱动
}
catch(ClassNotFoundException ex1) {
    ex1.printStackTrace();//捕获驱动注册过程中的异常
}
try {
      //获得数据库连接
       conn = DriverManager.getConnection(strConnection,                                                                             strConnectUsername,                                                                                strConnectPassword);
stmt = conn.CreateStatement();//创建Statement的对象stmt
rs = stmt.executeQuery(sql_temp);//利用stmt执行SQL操作返回结果集交给rs
}
catch(SQLException ex2) {
       ex2.printStackTrace();
}

来一个例子说明一下如何?
功能描述
写一个用户登陆的程序,用户输入密码,点击“登陆”按钮,在用户数据表中查找,如果有对应的记录,就告诉:你好,欢迎你!如果没有该用户,就提示:用户名或者密码错误,请重新登陆。
哇,终于到了编写有点人摸狗样程序的时候了,以前写的哪能叫程序啊,简直是拿三结构的名字来欺骗人嘛。。。

建立数据库:为了简单就用access建一个吧,数据库的名字就user吧,在odbc中设置一下吧。什么,不知道怎么设置?哦,我现在真的没心情跟你解释。请你解决了这个问题再往下看吧。

建立一个数据表:userTable

用户号码             UserNo            文本

用户密码             PassWord          文本

所在的部门号码       DepartNo          文本

填入几个值吧

111    111      001

222    222      002

333    333      003

登陆的jsp(恐怕以后我不会再告诉你怎么写这样的jsp了)

login.jsp

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

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

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

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

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

<html:html>
<title>Login</title>
<center>
 <pre>
 <html:form action="execute.do" method="post">
 <h3> 请输入 </h3>
 用户名:   <html:text property="userID" size="12"/>
 密  码:   <html:text property="passWord" size="12"/>
<html:submit value="提交"/>  <html:reset value="重置"/>
</html:form>
</pre>
</center>
</html:html>

显示正确结果的页面
success.jsp

<%@ page contentType="text/html; charset=gb2312" %>
<center>
  欢迎你!!
</center>
提示警告的页面

error.jsp

<%@ page contentType="text/html; charset=gb2312" %>
<center>
      不要意思,您的用户名或密码错误!
</center>

好了,下面到程序员真正该做的工作了,那就是写java代码啊。

一,不要问在什么地方写java代码

二,不要问用什么办法把java代码编译成类文件

三,不要问把java文件和类文件放在什么地方

……这样的问题我不会再回答。

你千万不要忘了要导入两个JAR包啊

用来保存数据的form

UserForm.java

import org.apache.struts.action.*;

public class UserForm extends ActionForm

{

    private String userID = null;

    private String passWord = null;

    public String getUserID()   {

       return userID == null?"": userID.trim();

    }

    public void setUserID(String userID)  {

       this. userID = userID;

    }

    public String getPassWord()  {

       return passWord == null?"": passWord.trim();

    }

    public void setPassWord(String str2)   {

       this. passWord = passWord;

    }

}

看见了form了吧,没什么神气的,就是一些属性和关于属性的get和set方法

用来处理数据的action

UserAction.java

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.ActionErrors;

import org.apache.struts.action.ActionForm;

import org.apache.struts.action.ActionForward;

import org.apache.struts.action.ActionMapping;

import org.apache.struts.actions.DispatchAction;

public class UserAction  extends DispatchAction

{

       public ActionForward execute(  ActionMapping mapping,

                                    ActionForm form,

                                    HttpServletRequest request,

                                    HttpServletResponse response)

           throws Exception

       {

           //获取页面表单信息

           UserForm uForm = (UserForm)form;

           //从from中获得已经被提交的两个数据

           String temp_id = uForm. getUserID();

            String temp_pass = uForm. getPassWord();

          

           if(!"".equals(temp_id)&&!"".equals(temp_pass))

           {

                     //定义数据库的驱动程序(以下给出的是连接odbc数据库的)

                  String strDriver="sun.jdbc.odbc.JdbcOdbcDriver";

                        //定义数据库的URL(名称)

                  String strConnection="jdbc:odbc:user";

                        //数据访问的用户名

                  String strConnectUsername="";

                        //数据库访问的密码

                  String strConnectPassword="";     

                  Connection conn = null;

                  Statement stmt = null;

                  ResultSet rs = null;

String sql_temp = "select * from userTable where

UserNo='"+temp_id+"' and

PassWord='"+temp_pass+"'";

                 

                  try

                  {

                            Class.forName(strDriver);//注册驱动 

                  }

                  catch(ClassNotFoundException ex1)

                  {//捕获驱动注册过程中的异常

ex1.printStackTrace();                

}

                  try

                  {

                     conn =                           //获得数据库连接

                       DriverManager.getConnection(    strConnection,

 strConnectUsername,

                                                 strConnectPassword);

                               //创建Statement的对象stmt

                     stmt = conn.createStatement();

//利用stmt执行SQL操作返回结果集交给rs       

rs = stmt.executeQuery(sql_temp);                              }

                  catch(SQLException ex2)

                  {

                           ex2.printStackTrace();

                  }

                 

                  int temp_count = 0;

//通过这个循环看从数据库中查询出来了多少条记录

                  while(rs.next())               

{

                     temp_count++;

                  }

                  //如果查询有记录,表明输入的用户名和密码正确

if(temp_count>0)              

 {

                     return mapping.findForward("ok");

                  }

                  else//如果查询没有记录,表明输入的用户名或者密码错误

                  {

                      return mapping.findForward("err");

                  }

           }

           else

           {

              return mapping.findForward("err");

           }

       }

}

 

Struts2与JDBC整合操作MySQL数据库实战教程 Struts2是Apache软件基金会旗下Jakarta项目组的一个开源项目,它是一个用于构建Web应用的框架。相较于Struts1.x版本,Struts2在架构和性能上都有了显著的改进。Struts2框架的主要特点包括支持多种视图技术(如JSP、Freemarker等)、易于扩展、灵活的插件支持等。MVC设计模式将应用程序分为三个核心组件:模型(Model)、视图(View)和控制器(Controller)。模型代表应用的数据和业务逻辑,视图是用户界面的展示,而控制器则是模型和视图之间通信的中介。 阅读详情

相关推荐

实现Struts框架的CRUD完整操作实例

本文还有配套的精品资源,点击获取 简介:Struts是一个MVC框架,用于简化J2EE Web应用程序开发。本实例深入探讨了如何在Struts框架下实现CRUD操作,涵盖了从表单处理到数据库操作的完整流程。我们将分析关键组件,如ActionForm、Action类、ActionMapping、DispatcherServlet、ActionForward和JSP,以及如何配...

weixin_35238815的博客 1089

struts操作数据库-工厂篇

程序要求:程序开始,第一个页面要显示,以这样的信息,一个下拉框用来选择“用户的部门名称”,这个下拉框中的内容要从“部门信息表中取得”(当页面一生成的时候就要获得)。然后按下“提交”按钮,能显示所有该部门的员工。分析:因为页面一生成的时候就要从“部门表”中获得数据,所以我要采用一种方式让页面生成的时候就能操作action获得数据。数据的显示不再是单一数据,所以在页面上设计到循环。显示出来的一项数

samlover的专栏 1105

struts2数据库常用操作

struts,数据库查询,添加,修改,删除

Mybatis笔记01----->mybatis快速上手---增、删、查、改操作

Mybatis的简单快速上手----增、删、查、改操作

hyt_struggle的博客 343

Struts2+mysql(含数据库等)

可以参考下,包含DIGITAL数据库,里面还有登录注册页面已及验证器验证

开题报告该怎么写

考研即将来临,而一般很多大学都会选择在考研结束之后开始安排选题和开题报考(考研之前一般都不谈,老师也很人性化的,不愿意耽误你的复习) 但无论怎么推迟,我们最终都需要去面对并完成这些任务。 现在我就要教大家该如何写一个完整的开题报告! 准备模板。不同的学校有不同的格式,一般情况你的导师会给你们一个学校的标准格式,这个不用太费心。有了模板我们就可以按照模板的“线索”一步一步填充完成即可! 一般大致格式可谓: 研究背景/论文的目的、背景和意义 我们需要写明选择该题目的...

wuyueweifeng的博客 1095

建立stu数据库,并在数据库中建立student表,其结构为stuNum,stuName,age,并输出打印信息到控制台。

【代码】建立stu数据库,并在数据库中建立student表,其结构为stuNum,stuName,age,并输出打印信息到控制台。

m0_63949203的博客 1210

HMC5883L磁力计驱动开发:I²C通信、校准与FreeRTOS集成

磁力计是惯性导航与电子罗盘系统的核心传感器,其输出原始磁场数据需经精确采集、单位换算与误差补偿才能用于姿态解算。基于各向异性磁阻(AMR)原理的三轴磁力计,如HMC5883L,依赖稳定I²C通信获取12位有符号磁场采样值,并通过增益配置、硬软铁校准及温度补偿提升物理量精度。在嵌入式实时系统中,驱动层须保障数据的时间一致性与抗干扰鲁棒性,避免总线挂死、字节错位或量程误配等典型问题。本文围绕HMC5883L这一广泛使用的停产但仍在产线服役的磁传感器,详解寄存器配置、定点单位转换、八方位校准算法及FreeRTOS

weixin_42594427的博客 145

数据库第十二次作业-存储过程的应用

1.创建一个stu 表 create table znh_stu( -> id int(10) not null, -> name varchar(50) not null, -> class varchar(50) not null, -> primary key(id) -> ); 2.添加stu表数据 insert into znh_stu values -> (1,"Luck","...

weixin_61961496的博客 624

P450酶催化循环的Amber-Gromacs混合模拟实战:从血红素加氧到产物释放

本文详细介绍了针对P450酶完整催化循环的Amber-Gromacs混合模拟实战策略。通过Amber为关键氧合血红素中间体(CPDI)构建精确力场,再利用Gromacs的高效GPU加速进行长时间尺度动力学模拟,完整覆盖从底物结合到产物释放的催化过程,为研究酶催化机制提供了强大的计算工具。

weixin_29201859的博客 315

从光斑图到锤形优化:一次搞定Zemax双胶合透镜的像散与场曲问题

本文详细解析了Zemax双胶合透镜设计中像散与场曲问题的诊断与优化方法。从光斑图分析到锤形优化技巧,提供了完整的光学设计实战指南,帮助设计师快速定位问题并有效改善系统性能,特别适合光学设计工程师和Zemax使用者参考。

weixin_27134495的博客 231

Struts1入门系列一(Struts原理详解)

一、Struts简介  1、软件的三层结构      表现层:主要是JSP和HTML页面,用于接收用户的请求,以及返回操作数据,是应用程序访问的入口。      业务逻辑层:主要是对数据库的操作,对数据业务逻辑进行处理。如果说数据层是积木,那么逻辑层的工作就是对这些积木的搭建。      数据访问层:有时候也称为是持久层,其功能主要是负责数据库的访问,可以访问数据库系统、二进制文件、文本文

yyyyyyyyyyyy 652

STM32H750实战:用TIM+DMA驱动ADC/DAC实现音频回环(附CubeMX配置避坑指南)

本文详细介绍了在STM32H750上构建高保真、低延迟音频链路的实战方法。通过配置TIM定时器作为硬件节拍器,精准触发ADC采集与DAC播放,并利用DMA实现数据的自动搬运,全程无需CPU干预。文章重点剖析了CubeMX配置中的关键步骤与常见“坑点”,如ADC的Conversion Data Management模式选择、DMA的FIFO与Burst模式配置,以及STM32H7系列必须开启ADC全局中断等,并提供了完整的代码实现与调试验证指南。

1057

干净的struts2+spring+proxool架子(可下载)

版本: struts2.2.1 spring2.5.6 proxool0.9.1 jstl1.2 说明:demo实现了最简单的取值,数据库操作。 没有使用hibernate和ibatis。自己写了个基类,包装了获取链接和释放链接。 从action返回后,使用了jstl获取action中的值。 没有做画面项验证。 使用了mysql库,proxool.xml文件中删除了ip和...

mazhen_null的博客 133

新能源充电桩充电枪口标准

建立的标准确保了新能源汽车充电的安全性、兼容性和效率,促进了新能源汽车产业的发展。

网络安全的研究者、新能源行业的追求者 4687

【异常】解决JDK21升级中的SecurityException: JCE无法验证BC提供者问题

本文详细解析了JDK21升级中常见的SecurityException: JCE无法验证BC提供者问题的根源与解决方案。核心在于JDK21强化了JCE安全验证,导致签名不合规的老版本Bouncy Castle库被拒绝。文章提供了通过Maven依赖树精准定位、排除旧版本并引入兼容的bcprov-jdk18on新库的完整步骤,以及清理缓存等实战技巧,帮助开发者彻底解决此兼容性问题。

weixin_29197051的博客 490

struts + hibernate 简单的例子

<br />写这篇文章的时候,其实已经学了spring了,但这两个星期由于感情、身体、辞职等等一大堆的烦恼问题,到现在还没做ssh的整合练习,= =!所以还是先把之前写的 struts + hibernate 的例子发上来。<br />例子实现了简单的用户注册,流程是  1. 前台填写用户名、密码和email。2.后台判断信息的合法性,并判断是否是第一个注册的用户,如果是,则注册成管理员,否则注册成普通会员。<br /> <br />    首先建个数据库和生成数据表,找开myeclipse,新建一个 we

sevennhe的专栏 664

2024 年高教社杯全国大学生数学建模竞赛 E 题 交通流量管控 详细思路+matlab代码+python代码+论文范例

随着城市化进程的加快、机动车的快速普及,以及人们活动范围的不断扩大,城市道。景区周边道路上既有本地居民出行,也有过境车辆,化配置,在保证车辆通行的前提下,使得两条主路上的车流平均速度最大。对五一黄金周期间的数据进行分析,判定寻找停车位的巡游车辆,并估算假。相位通过的每辆车的信息,包括拍摄地点、行驶方向、拍摄时间和车牌号。济发展和百姓幸福感的一个“痛点”,是相关部门的棘手难题之一。纬中路交叉口,根据车流量的差异,可将一天分成若干个时段,估。是小镇中两条主路的情况:纬中路,从环西路到环东路,约。

YOLO 3310

一个简单的Struts例子

在“一个简单的Struts例子”(http://blog.youkuaiyun.com/dickwinters/archive/2004/09/27/118676.aspx)的基础上修改首先,struts-config.xml中加入如下配置,注意几个主要项目的配置的顺序(http://blog.youkuaiyun.com/dickwinters/archive/2004/09/27/118685.aspx)。

GOBY 栏目 980

ssm框架搭建

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

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

实战JBuilder8 + Struts,一个简单的例子

                                                  实战JBuilder8 + Struts,一个简单的例子 一. 内容介绍本文说明了使用JBuilder 8 建立一个简单的Suts应用步骤,主要以步骤为主,理论说明较少。希望能够对大家有所帮助,也希望大家多多批评!运行环境:Windows 2000 Server(SP3) j2sdk1.4.1_01

东方咖啡屋 610

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

struts2操作数据库

struts2操作数据库是初学者的一个难点也是一个重点,现在我为大家讲解一下struts2操作数据库,使用struts2对数据库进行增、删、改、查和分页查询,请看下面的代码: User类 public class UserAction extends ActionSupport{     List userList;     UserDao userDao=new UserDao(

u014626784的专栏 4057

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

struts+hibernate例子(原创)

hibernate+struts结合简单例子作者:雨伞(geezer)2004/11/12上次介绍了hibernate的基本知识,现在我们将它用在实际项目开发中,我们用struts与它结合来做一个简单的应用。例子所需要的lib文件我都没有放进去,因为太大了(压缩以后近10M)论坛不让上传,呵呵,你们自己把struts与hibernate的jar文件放进去吧。配置环境:HIBERNATE 2.1(上

专注于J2EE,UNIX下C/C++网络程序开发 2799

Java Web学习笔记(2)——一个简单的Struts2例子

在简单了解了一下Struts2框架的运行原理之后,我们做了一个简单的例子——图书价格查询系统 在工程的根目录下创建如下web.xml: <web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:

麻里酱的程序猿之路 777

Struts2框架简单入门

Struts2入门

qq_42640067的博客 7744

Struts2基础(一个简单的小例子)

MVC(Model View Control): 模型:对数据库的操作 视图:用户与程序交互的界面 控制器:接收用户的输入并且调用模型可用户视图来完成用户需求 MVC优点: 1 低耦合 2 高重用性和可适用性 3 较低的生命周期成本 4 快速的部署 5 可维护性好 6 有利于软件工程化管理 Struts2工作流程: 1 客户端提交一个(HttpServletRequest)

qq_20453707的专栏 361

Struts中利用连接池访问MySQL数据库

Dick Winters 于  2004年9月27日 晚在“一个简单的Struts例子”(http://blog.youkuaiyun.com/dickwinters/archive/2004/09/27/118676.aspx)的基础上修改首先,struts-config.xml中加入如下配置,注意几个主要项目的配置的顺序(http://blog.youkuaiyun.com/dickwinters/archive/2

Dick Winters的Java专栏 2150
上一篇: Apache-WebLogic plub-in插件的安装
下一篇: java文件操作大全
samlover
博客等级 码龄25年 0粉丝 70原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值