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数据库,里面还有登录注册页面已及验证器验证

在实战中学AI-车流量统计项目-YOLOV11车辆检测-YOLOV11模型的部署

考虑实际落地中部署推理资源消耗,速度与模型精度之间的均衡,同时,车辆属于比较通用场景的目标检测,我们将YOLOV11作为最终的模型选择,目前官方开源的模型基于coco数据集训练,里面已经包含了车辆相关类别,经测试,在监控视角下效果基本可用,所以,在落地过程中,我们先用这个模型来打通部署链路,后面再逐步优化模型性能。在Nvidia的硬件下做部署,部署框架优先选择官方框架TensorRT,下面重点讲述如何用TensorRT部署YOLOV11模型。

Aleo_优快云的博客 2166

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

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

m0_63949203的博客 1210

【AI Infra】【RLHF框架】VeRL中WorkerGroup与Ray资源调度的协同机制剖析

本文深入剖析了VeRL框架中WorkerGroup与Ray资源调度的协同机制。通过解析Ray Placement Group的资源抽象和VeRL的RayResourcePool封装,详细阐述了WorkerGroup如何与底层资源精确绑定,并实现RLHF训练中异构、多阶段任务的灵活资源分配与动态调整,为大规模分布式强化学习训练提供了高效解决方案。

weixin_29204205的博客 389

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

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

Open3D 教程学习指南 (持续整理)

Open3D 是一个开源库,旨在为 3D 数据处理提供高效且易用的工具。它由 Intel 开发和维护,支持多种 3D 数据处理任务,如点云处理、3D 重建、几何处理和可视化等。

Chase Blog 5931

STM32移植u8g2库(HAL库)(硬件SPI)(sh1106_128x64)

STM32移植u8g2库(HAL库)(硬件SPI)(sh1106_128x64) MCU型号为STM32F103RCT6,OLED屏为中景园电子1.3寸屏,驱动芯片为sh1106,分辨率为128x64,MDK版本为V5.34。

Master_0_的博客 6271

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

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

yyyyyyyyyyyy 652

手把手教你理解特斯拉Model 3的域控制器架构:RBCM如何成为“多面手”?

本文深入解析特斯拉Model 3的域控制器架构,重点介绍右车身域控制器(RBCM)如何整合车身电子系统功能。RBCM作为多任务处理中枢,管理空调系统、尾部电气设备和超声波雷达等关键功能,展现了特斯拉在汽车电子架构上的创新设计。文章详细探讨了RBCM的硬件架构、功能版图及信号网络,揭示其如何通过高性能MCU和智能开关技术实现功能集中与效率提升。

weixin_30919429的博客 383

干净的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

如何理解Fourier Neural Operator (FNO)

2022年Nvidia发表在arXiv上的的FourcastNet作为几乎是最早的一篇气象大模型的工作(之前Google Research的MetNet主要还是对于降水的预报)。除了Transformer的backbone之外,使用到了2021年发表在ICLR上的Fourier Neural Operator。为了更好的理解模型的理论基础,可以详细学习一下以及他的前期工作GNOFNO作者对这两篇文章的解析blog。

momo的博客 1万+

如何在SpringBoot中实现AI 流式输出?

🏆本文收录于 《全栈 Bug 调优(实战版)》 专栏。专栏聚焦真实项目中的各类疑难 Bug,从成因剖析 → 排查路径 → 解决方案 → 预防优化全链路拆解,形成一套可复用、可沉淀的实战知识体系。无论你是初入职场的开发者,还是负责复杂项目的资深工程师,都可以在这里构建一套属于自己的「问题诊断与性能调优」方法论,助你稳步进阶、放大技术价值 。

**My Coding Family** 1479

struts + hibernate 简单的例子

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

sevennhe的专栏 664

VTsystem背景检查函数Value Valid

Value Valid是个非常实用的函数,如何让它灵活的为我们所用,便是本文的内容。

欢迎来到eee的博客 794

一个简单的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

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

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

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

东方咖啡屋 610

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

struts2操作数据库

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

u014626784的专栏 4057

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

余额充值