首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

strus2 mysql实现增删查改功能

Struts2 是一个基于 MVC 设计模式的 Java Web 应用框架,它可以帮助开发者构建灵活且易于维护的 Web 应用程序。MySQL 是一个流行的关系型数据库管理系统,广泛用于数据存储和检索。结合 Struts2 和 MySQL 可以实现强大的增删查改(CRUD)功能。

基础概念

  • Struts2:一个开源的 Java Web 应用框架,它基于 MVC 设计模式,将应用程序分为模型、视图和控制器三个部分,以实现更好的代码结构和可维护性。
  • MySQL:一个关系型数据库管理系统,用于存储和管理数据。它支持 SQL 语言,可以方便地进行数据查询和操作。

实现增删查改功能的步骤

  1. 配置数据库连接:在 Struts2 项目中配置 MySQL 数据库连接信息,通常包括数据库 URL、用户名和密码。
  2. 创建实体类:根据数据库表结构创建对应的 Java 实体类,用于封装数据。
  3. 编写 DAO 层:实现数据访问对象(DAO)层,负责与数据库进行交互,执行增删查改操作。
  4. 编写 Service 层:实现业务逻辑层,调用 DAO 层的方法完成业务操作。
  5. 编写 Action 类:实现 Struts2 的 Action 类,处理用户请求,并调用 Service 层的方法。
  6. 配置 Struts2:在 Struts2 的配置文件中配置 Action 类和视图信息。

优势

  • 高效性:Struts2 和 MySQL 的结合可以实现高效的 Web 应用程序开发,提高开发效率。
  • 灵活性:Struts2 的 MVC 设计模式使得代码结构清晰,易于维护和扩展。
  • 稳定性:MySQL 是一个成熟稳定的数据库管理系统,能够保证数据的安全性和可靠性。

应用场景

  • 企业级应用:适用于需要处理大量数据和高并发访问的企业级应用。
  • 电子商务平台:适用于需要实现商品管理、订单处理等功能的电子商务平台。
  • 社交网络:适用于需要实现用户管理、好友关系管理等功能的社交网络应用。

常见问题及解决方法

  1. 数据库连接问题:如果遇到数据库连接问题,可以检查数据库 URL、用户名和密码是否正确,以及数据库服务器是否正常运行。
  2. SQL 语句错误:在执行 SQL 语句时,如果出现错误,可以通过查看日志或调试信息来定位问题,并修正 SQL 语句。
  3. 事务管理问题:在处理涉及多个数据库操作的业务逻辑时,需要注意事务管理,确保数据的一致性和完整性。可以使用 Spring 的事务管理功能来解决这个问题。

示例代码

以下是一个简单的示例代码,展示了如何使用 Struts2 和 MySQL 实现增删查改功能:

数据库表结构

假设我们有一个名为 user 的表,包含 idnameage 三个字段。

实体类

代码语言:txt
复制
public class User {
    private int id;
    private String name;
    private int age;

    // 省略 getter 和 setter 方法
}

DAO 层

代码语言:txt
复制
public class UserDao {
    private Connection conn;

    public UserDao(Connection conn) {
        this.conn = conn;
    }

    public void addUser(User user) throws SQLException {
        String sql = "INSERT INTO user (name, age) VALUES (?, ?)";
        try (PreparedStatement ps = conn.prepareStatement(sql)) {
            ps.setString(1, user.getName());
            ps.setInt(2, user.getAge());
            ps.executeUpdate();
        }
    }

    // 省略其他增删查改方法
}

Service 层

代码语言:txt
复制
public class UserService {
    private UserDao userDao;

    public UserService(UserDao userDao) {
        this.userDao = userDao;
    }

    public void addUser(User user) throws SQLException {
        userDao.addUser(user);
    }

    // 省略其他业务逻辑方法
}

Action 类

代码语言:txt
复制
public class UserAction extends ActionSupport {
    private User user;

    private UserService userService;

    public String addUser() throws SQLException {
        userService.addUser(user);
        return SUCCESS;
    }

    // 省略 getter 和 setter 方法
}

Struts2 配置文件

代码语言:txt
复制
<struts>
    <package name="user" extends="struts-default">
        <action name="addUser" class="com.example.UserAction" method="addUser">
            <result name="success">/success.jsp</result>
        </action>
    </package>
</struts>

参考链接

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • MySQL表的增删

    MySQL基本查询 表的增删:CRUD Create(创建)包含insert Retrieve(读取)包含select Update(更新) Delete(删除) 一.增加数据Create 主要是...比如,可以将常数10与特定查询的字段一起显示,这个10也可以换成表达式(1+1): 既然可以1+1,那么一定也可以查询math+chinese+english: 这样,查询结果中的字段就存在math...select * from exam_result limit 3 offset 0; 只有数据准备好了,才能显示,limit本质的功能就是“显示”,因此limit执行顺序更靠后(比排序靠后) 对未知表进行查询时...实际上 MySQL 不对数据操作,所以比 DELETE 更快,但是TRUNCATE在删除数据的时候,并不经过真正的事物,所以无法回滚。...deptno, avg(sal) 平均工资 from emp group by deptno having 平均工资<2000; 八.CURD总结 CURD无疑是在数据库中操作最多的,都是对表进行各种的增删

    28920

    MySQL】表的增删(进阶)

    注意: 实际开发中,大部分的表,一般都会带有一个主键,主键往往是一个整数表示的id 在mysql中,一个表里,只能有一个主键,不能有多个 虽然主键不能有多个,mysql允许把多个列放到一起共同作为一个主键...(联合主键) 主键另外一个非常常用的方法,就是使用mysql自带的“自增主键”作为主键的值。...mysql的数据量比较小,所有的数据都在一个mysql服务器上,自增主键是可以很好地工作的,如果mysql的数据量很大,一台主机放不下就需要进行分库分表,使用多个主机来进行存储。...能否继续用mysql自带的自增主键??? 涉及到一个“分布式系统中唯一id生成算法” 实现公式 = 时间戳 + 主机编号+ 随机因子 =>结合三部分就可以得到一个全局唯一的id。...针对这种关系: student(id,name); class(class,name,studentIds); 注意:这种在MySQL中不可行,因为MySQL中没有一个像数组这样的类型。

    3.1K20

    MySQLMySQL表的增删(初阶)

    MySQL表的增删(基础) 据库最主要的操作就是增(create)删(update)(retrieve)(delete)。(CURD) 注意:进行增删操作的时候,请务必选中数据库。...MySQL中数据量是非常大的,因此有可能采用的是归并排序。具体到工作中,还得看数据库中的实现。 注意: 如果SQL中没有显式的写order by,认为查询结果的顺序,是不可预期的。...比如: 这取决于mysql内部的实现mysql里执行查询操作的时候,现针对每一行记录,计算条件,并按照条件筛选。满足条件的记录,才会取出对应的列。...mysql支持的模糊匹配功能是非常有限的。但是在实际开发中,可能会遇到更加复杂的情况。于是发明了一个东西, 正则表达式,来描述这种字符串的规则的。...在数据库中,针对分页查询的支持,主要就是通过limit来实现的。 直接limit N,查询到的是前N条的东西。搭配offset就可以指定从第几条开始进行筛选了。

    3.5K20

    Web项目整合---实现增删

    关于web项目中如何实现增删的操作 这里我们以一个书城项目为例讲解 首先了解javaEE的三层架构 由图中我们可以看出,javaEE的三层架构严格的规定了项目中的每个模块,每个层需要完成的事情,这样会使项目的变得非常简洁...增删之—-增Create 思维导图 详解 从图中我们可以看出,当客户端用户输入完数据之后请求就会发送给服务器,当服务器端BooServlet接受到来自add.html页面的请求后就会做出相应的相应,...action=page&pageNo="+req.getParameter("pageNo")); 复制代码 这就是一个简单add方法的实现 增删之—-Read 思维导图 在index上点击跳转到...请求转发到book_manager.jsp req.getRequestDispatcher("book_manager.jsp").forward(req,resp); } 增删之—-Update...action=page&pageNo="+req.getParameter("pageNo")); } 增删之—-删Delete 思维导图 服务器获取客户端要删除的数据的id 将请求发送至服务器,

    19210

    顺序表的(增删实现

    具有n个相同特性的数据元素的有限序列,顺序表,链表 ,栈和队列都是 常见的线性表 2.顺序表的概念 顺序表是物理地址连续的储存单元依次存储数据元素的线性结构, 一般采用数组储存,在数组上完成增删...分为静态与动态两种: 静态:使用定长数组实现 动态:使用动态开辟的数组实现 这两者跟之前的通讯录的有点相似 可以看这里 :通讯录 3.顺序表的优缺点 1.优点 1.支持随机访问 2.缺点...1.中间插入或者头插时,会很慢,要挪动数据,时间复杂度为O(N) 2.虽然说动态顺序表已经做出优化,但扩容时,依旧会造成一定的空间浪费 二、顺序表的实现 1.函数的定义和结构体的创建--contact.h

    65240

    NodeJS下连接mysql操作(增删

    NodeJS下引用mysql进行增删 NodeJS下要使用mySql需要安装mysql依赖,输入命令行:npm install mysql --save NodeJS中连接mysql数据库的简单方法我所知道的有...user:         MySQL用户的用户名. password:       MySQL用户的密码. database:       链接到的数据库名称 (可选)....还可以使用字符串连接数据库例如: var connection = mysql.createConnection('mysql://user:pass@host/db?...我们把数据库的操作写到一块儿,用的时候直接调用就好了,数据库操作代码如下: const mysql=require('mysql'); let client=undefined; exports.connect...--save命令加载mysql依赖 2.引用:const mysql=require('mysql'); 3.创建连接池返回连接对象:let client

    1.9K40

    MYSQL——JBDC实现增删

    前言 友友们大家好,我是你们的小王同学 今天给大家带来的是MYSQL——JBDC实现增删 希望能给大家带来有用的知识 小王的主页:小王同学 小王的gitee:小王同学 小王的github...API概述 JDBC API主要位于JDK中的java.sql包中(之后扩展的内容位于javax.sql包中),主要包括(斜体代表接口,需驱动程序提供者来具体实现): DriverManager:负责加载各种不同驱动程序...~ 公共仓库的地址 在搜索栏搜索mysql~  点第一个mysql connector   里面有各种各样的版本 小王同学的mysql是8版本系列的所以也要下载同样版本系列的驱动包~ 点击下载jar...~ 接下来就是最精彩的CRUD辣~ 我们先在任务管理器创建一个学生表  接着在IDEA实现 往表里插入一行数据~ 新增(create) 代码附上: import com.mysql.cj.jdbc.MysqlDataSource...成功辣~~ 以上就是小王同学带给大家的通过jdbc连接IDEA来实现 CRUD 是不是很方便呢

    1.6K10
    领券