当前位置: 首页 > news >正文

IDEA实现javaweb用户登录(增删改查)

IDEA实现javaweb用户登录(增删改查)


文章目录

  • IDEA实现javaweb用户登录(增删改查)
  • 前言
  • 一、IDEA 软件的简单使用
    • 1 创建一个普通 java 项目
    • 2 新增 web 配置将项目由普通的Java项目变为 javaweb项目
      • 2.1 新增 web 配置
      • 2.2 新增项目文件夹
      • 2.3 创建资源文件夹
    • 3 配置 tomcat 服务器
    • 4 测试 jsp 网页是否能运行
    • 5 在 IDEA 连接mysql数据库
    • 6 debug
  • 二、问题
    • 1 IDEA WEB项目无法继承HttpServlet问题
    • 2 创建新项目后旧项目不见了
    • 3 index.jsp 页面可以访问,但是ajax请求错误
    • 4 通过 MyBatis 查询数据库数据时,部分值显示为null
    • 5 修改了内容后需要重启tomcat
    • 6 idea 增删改数据库数据,返回1但是数据库值没有变化
  • ** 源码


前言

创建javaweb项目目录如下:
在这里插入图片描述
步骤:

  1. 创建一个普通 java 项目;
  2. 新增 web 配置将项目由普通的Java项目变为 javaweb项目;
  3. 配置 tomcat 服务器;
  4. 测试 jsp 网页是否能运行;
  5. 新增 config 资源文件夹;

一、IDEA 软件的简单使用

1 创建一个普通 java 项目

在这里插入图片描述

在这里插入图片描述

2 新增 web 配置将项目由普通的Java项目变为 javaweb项目

2.1 新增 web 配置

在右上角设置或file可以看见项目架构这个选项,选择→
在这里插入图片描述
选择moudles,点击+
在这里插入图片描述
选择 web,点击ok
在这里插入图片描述
web 配置新增成功!
在这里插入图片描述

2.2 新增项目文件夹

项目路径仿照 eclipse
在这里插入图片描述

  • .jsp / js / css 文件或文件夹在web下创建
  • 在 WEB-INF下创建 lib 文件夹存放 jar 包
    jar 包导入:右键“Add as Library”
    在这里插入图片描述

2.3 创建资源文件夹

  1. 先创建一个普通文件夹
  2. 右键“Mark Directory as”,选择“Sources Root”
    在这里插入图片描述
    普通文件夹和资源文件夹区别:
    在这里插入图片描述

3 配置 tomcat 服务器

配置 tomcat 到 IDEA
输入 tomcat 路径,ok。
这里已经配置上去了
在这里插入图片描述
注意:选择的是 Tomcat,而不是 TomEE
加粗样式
接下来将项目放进去
Run-中选择Edit Configurations。在“+”中,选择Tomcat Server,选择 local 本地。
在这里插入图片描述
在这里插入图片描述
这时会发现有一个红×
在这里插入图片描述
这是因为当前项目没有部署到 Tomcat,点击右边的 +
在这里插入图片描述
选择当前项目
在这里插入图片描述
这样就将项目配置到 Tomcat 上了
在这里插入图片描述
在这里插入图片描述

4 测试 jsp 网页是否能运行

创建一个 jsp 页面
在这里插入图片描述

5 在 IDEA 连接mysql数据库

连接后可以直接在 IDEA 软件中查看 mysql 数据库的所有库/表信息,也可以进行sql语句查询!
在这里插入图片描述
选择 MySQL 数据库
在这里插入图片描述
输入用户名、密码
在这里插入图片描述
连接成功!!
在这里插入图片描述
选择数据库
在这里插入图片描述
这里选择 user 数据库,里面有一张表 userinfo,双击可以查看表中内容
在这里插入图片描述
在 console 可以输入 sql 语句运行
在这里插入图片描述
关闭了 console 可以在左下角打开
在这里插入图片描述

6 debug

在这里插入图片描述

使用 Step Over(F8)来逐步执行代码,每次执行一行。 使用 Step Into(F7)来进入方法内部执行。 使用 Step
Out(Shift+F8)来跳出当前方法,回到调用它的地方。 使用 Resume
Program(F9)来继续执行程序,直到下一个断点或程序结束。

debug的值都会在右侧直接显示。
在这里插入图片描述
若想查看集合的值,可以点击该集合,点击 view。
size为3,查到了3条数据
在这里插入图片描述
在这里插入图片描述

二、问题

1 IDEA WEB项目无法继承HttpServlet问题

jar包和资源文件配置都正常配置,但是创建 servlet 的时候无法继承HttpServlet。
解决:将 tomcat 下的 lib 文件夹中的两个jar包配置到项目中

  • servlet-api.jar
  • tomcat-api.jar
    在这里插入图片描述

2 创建新项目后旧项目不见了

解决:点击file,点击 openrecent,便可找到之前的项目。

3 index.jsp 页面可以访问,但是ajax请求错误

这个地方查了半天-_-,知道问题在这里,但是改的时候又出问题。
解决:删除后面的路径
在这里插入图片描述
这里选择当前项目
在这里插入图片描述
ajax 访问路径前面不需要再加项目路径
在这里插入图片描述

4 通过 MyBatis 查询数据库数据时,部分值显示为null

原因:实体字段名和数据库中不一致。
解决:将实体类中名称改为和数据库一致。
(这里是直接通过注释查询)

//查询所有用户信息
@Select("SELECT USERID,USERNAME,USERPASS FROM USERINFO")List<Users> selectAllUsers();

5 修改了内容后需要重启tomcat

6 idea 增删改数据库数据,返回1但是数据库值没有变化

控制台输出的增删改信息是正确的,但是数据库数据就是没改变!!没改变!
在这里插入图片描述
原因:没有提交事务!!

在使用 MyBatis 进行数据库操作时,需要手动提交事务。在插入数据完成后调用 commit()
方法来提交事务。如果没有提交事务,数据库中的数据不会被实际保存。

感谢up救我狗命=_=
遇见问题:使用mybaties向数据库中插入数据,idea显示插入成功,但是数据库中并没有数据变化?

/**
* 删除用户信息
*/
@Override
public Integer deleteCheck(Integer userId) {//加载数据库工厂SqlSession session = MybatisUtil.getSessionFactory().openSession();//通过数据库工厂获取 UserMapperUserMapper userMapper = session.getMapper(UserMapper.class);//调用 UserMapper 中的方法,删除用户信息Integer i = userMapper.deleteCheck(userId);return i;
}
/**
* 删除用户信息
*/
@Override
public Integer deleteCheck(Integer userId) {//加载数据库工厂SqlSession session = MybatisUtil.getSessionFactory().openSession();//通过数据库工厂获取 UserMapperUserMapper userMapper = session.getMapper(UserMapper.class);//调用 UserMapper 中的方法,删除用户信息Integer i = userMapper.deleteCheck(userId);//提交事务if (session != null) {session.commit();session.close();}return i;
}

** 源码

IDEA实现javaweb用户登录(增删改查)

相关文章:

IDEA实现javaweb用户登录(增删改查)

IDEA实现javaweb用户登录&#xff08;增删改查&#xff09; 文章目录 IDEA实现javaweb用户登录&#xff08;增删改查&#xff09;前言一、IDEA 软件的简单使用1 创建一个普通 java 项目2 新增 web 配置将项目由普通的Java项目变为 javaweb项目2.1 新增 web 配置2.2 新增项目文件…...

JS进阶01-异步编程、跨域、懒加载

目录 一、异步编程 1.1.异步编程的基本概念与重要性 1.2.事件循环&#xff08;Event Loop&#xff09;机制 1.3.JavaScript异步编程的常见方式及详解 示例 1.4.异步编程的最佳实践 二、跨域 2.1.什么是跨域 2.2.怎么解决跨域 1. JSONP&#xff08;JSON with Padding&…...

2012年 数模美赛 C题 犯罪克星

一、问题重述 银河犯罪建模中心&#xff08;ICM&#xff09;正在调查一个犯罪阴谋。调查人员已经识别出一些阴谋成员&#xff0c;但希望在逮捕之前确定其他成员和领导人。所有嫌疑人和可能的同谋者都受雇于同一家公司&#xff0c;并在一个大的综合办公室里工作。该公司正在开发…...

社区团购中 2+1 链动模式商城小程序的创新融合与发展策略研究

摘要&#xff1a;本文聚焦于社区团购这一新兴零售模式的发展态势&#xff0c;深入探讨 21 链动模式商城小程序与之融合的创新机制与应用策略。通过剖析社区团购的运营模式、优势特点以及发展现状&#xff0c;结合 21 链动模式商城小程序的功能特性&#xff0c;研究二者协同作用…...

【Go底层】time包Ticker定时器原理

目录 1、背景2、go版本3、源码解释【1】Ticker结构【2】NewTicker函数解释 4、代码示例5、总结 1、背景 说到定时器我们一般想到的库是cron&#xff0c;但是对于一些简单的定时任务场景&#xff0c;标准库time包下提供的定时器就足够我们使用&#xff0c;本篇文章我们就来研究…...

RoBERTa- 稳健优化的 BERT 预训练模型详解

一、引言 自 BERT&#xff08;Bidirectional Encoder Representations from Transformers&#xff09;问世&#xff0c;预训练语言模型在自然语言处理&#xff08;NLP&#xff09;领域掀起革命浪潮&#xff0c;凭卓越表现大幅刷新诸多任务成绩。RoBERTa 承继 BERT 架构&#x…...

【C++】continue语句、goto语句

1、continue 语句 作用&#xff1a;在循环语句中&#xff0c;跳过本次循环中余下尚未执行的语句。继续下一次循环。 注意&#xff1a;continue只能用于循环中。 示例&#xff1a; 代码&#xff1a; //continue的用法 #include<iostream> using namespace std; int ma…...

postgresql与pgvector安装与使用

环境变量修改 打开 .bashrc 文件进行编辑&#xff1a; vim ~/.bashrc在文件的末尾添加上面的环境变量配置 # 添加 PostgreSQL 可执行文件路径到系统 PATH export PATH/home/....../pg/postgresql-12.4/bin:$PATH# 设置 PostgreSQL 数据目录 export PGDATA/home/....../pg/pos…...

开箱即用,阿里开源!专业AI 聊天界面工具包:Ant Design X

Ant Design X是一个基于Ant Design体系的创新解决方案&#xff0c;为构建高效的AI交互界面提供了便利和支持。从精细的原子组件到快速集成的模型服务&#xff0c;Ant Design X让开发者能轻松应对各种需求。本文将结合实际场景&#xff0c;展示Ant Design X的功能与使用方法。 为…...

详解版本控制工作原理及优势,常见的版本控制系统对比(HelixCore、Git、SVN等)

什么是版本控制软件&#xff1f;从基础层面来说&#xff0c;版本控制&#xff08;也可称版本管理&#xff09;就是随时间跟踪和管理文件变更的过程&#xff0c;而版本控制软件有助于实现这一过程的自动化。但这仅仅是其功能及其重要性的开端。 什么是版本控制&#xff1f; 版本…...

Vue2 vs Vue3:核心原理与性能优化详解

Vue2 vs Vue3&#xff1a;核心原理与性能优化详解 ​Vue.js 是目前主流的前端框架之一&#xff0c;随着 Vue3 的发布&#xff0c;框架内部的实现和使用方式都发生了显著变化。本文将从 Vue2 和 Vue3 的核心实现原理出发&#xff0c;详细解析两者的区别&#xff0c;并分析 Vue3…...

Qt+GDAL属性计算软件开发记录

一.GDAL添加字段 void MainWindow::addField(QString fieldName){OGRFieldDefn * fieldDefn new OGRFieldDefn(fieldName.toStdString().c_str(), OFTInteger);ly->CreateField(fieldDefn);srand((int)time(NULL));while (true){OGRFeature * feature ly->GetNextFeat…...

在超表面中琼斯矩阵的使用

琼斯矩阵&#xff08;Jones Matrix&#xff09; 是一种线性代数方法&#xff0c;用于描述光的偏振状态和偏振变化&#xff0c;是偏振光学中重要的数学工具。它在 超表面理论设计 中广泛应用&#xff0c;尤其是在设计和调控光与物质相互作用时&#xff0c;例如偏振控制、相位调制…...

在macOS上从源码部署RAGFlow-0.14.1

一、macOS配置 1. macOS配置 我使用MacBook Pro&#xff0c;chip 是 Apple M3 Pro&#xff0c;Memory是18GB&#xff0c;macOS是 Sonoma 14.6.1。 2.安装Docker和Docker compose 官方要求 Docker ≥ 24.0.0 & Docker Compose ≥ v2.26.1&#xff0c;我的版本如下&#x…...

2-2-18-9 QNX系统架构之文件系统(二)

阅读前言 本文以QNX系统官方的文档英文原版资料为参考&#xff0c;翻译和逐句校对后&#xff0c;对QNX操作系统的相关概念进行了深度整理&#xff0c;旨在帮助想要了解QNX的读者及开发者可以快速阅读&#xff0c;而不必查看晦涩难懂的英文原文&#xff0c;这些文章将会作为一个…...

【经管数据】上市公司企业审计报告时滞数据、 年报披露时滞数据(2001-2022年)

测算方式&#xff1a;参考C刊《审计研究》窦笑晨&#xff08;2022&#xff09;老师的研究&#xff0c;从审计报告约定披露日期到审计报告实际披露日期之间的时间间隔。有关审计报告时滞的度量&#xff0c;现有研究大多采用资产负债表日与审计报告实际披露日期之间的间隔天数进行…...

debian ubuntu armbian部署asp.net core 项目 开机自启动

我本地的环境是 rk3399机器&#xff0c;安装armbian系统。 1.安装.net core 组件 sudo apt-get update && \sudo apt-get install -y dotnet-sdk-8.0或者安装运行库&#xff0c;但无法生成编译项目 sudo apt-get update && \sudo apt-get install -y aspnet…...

无人机地面遥控遥测技术与算法概述!

一、地面系统遥控检测核心技术 卫星遥测技术&#xff1a; 定义&#xff1a;卫星遥测技术是实现卫星与地面之间遥测数据传输的关键环节。 功能&#xff1a;传输卫星的状态信息、传感器采集的环境参数等。 关键技术&#xff1a; 调制解调技术&#xff1a;用于将数字遥测数据…...

游戏引擎学习第30天

仓库: https://gitee.com/mrxiao_com/2d_game 回顾 在这段讨论中&#xff0c;重点是对开发过程中出现的游戏代码进行梳理和进一步优化的过程。 工作回顾&#xff1a;在第30天&#xff0c;回顾了前一天的工作&#xff0c;并提到今天的任务是继续从第29天的代码开始&#xff0c…...

Django drf 快速使用

1. 安装: pip install djangorestframework 2. 添加rest_framework到您的INSTALLED_APPS设置。 settings.pyINSTALLED_APPS [...rest_framework, ] 3. 定义模型 models.pyfrom django.db import modelsclass BookModel(models.Model):name models.CharField(max_length64)…...

别再到处找了!这12个三维点云开源数据集,够你从入门到项目实战

三维点云实战指南&#xff1a;12个精选开源数据集与精准匹配策略 当你第一次打开三维点云处理软件&#xff0c;面对空白的项目界面&#xff0c;最迫切的问题往往是&#xff1a;"我该从哪里获取高质量的训练数据&#xff1f;"这个问题困扰过每一位初学者&#xff0c;…...

Mirage Flow 与卷积神经网络(CNN)的跨模态融合应用

Mirage Flow 与卷积神经网络&#xff08;CNN&#xff09;的跨模态融合应用 你有没有想过&#xff0c;让机器不仅能“看见”图片&#xff0c;还能像人一样“理解”并“描述”图片里的故事&#xff1f;比如&#xff0c;给一张复杂的医学影像&#xff0c;它不仅能圈出病灶&#x…...

RTK定位从入门到实践:如何利用千寻服务和Ntrip协议,让你的无人机定位精度达到厘米级?

RTK定位从入门到实践&#xff1a;如何利用千寻服务和Ntrip协议实现厘米级无人机定位 当无人机在农田上方悬停时&#xff0c;1米的定位误差可能导致农药喷洒完全错过目标作物&#xff1b;当测绘无人机进行地形扫描时&#xff0c;几厘米的高度误差可能使整个3D建模数据失效。这就…...

实战应用:基于快马AI与OpenClaw构建Mac本地电商价格监控系统

最近在做一个电商价格监控的小工具&#xff0c;发现用OpenClaw配合Mac本地环境搭建特别方便。这里分享一下我的实战经验&#xff0c;希望能帮到有类似需求的同学。 为什么选择OpenClaw OpenClaw是个轻量级的Python爬虫框架&#xff0c;特别适合需要快速搭建数据采集系统的场景…...

CLIP ViT-H-14多场景适配方案:教育题库图像索引、医疗报告配图推荐、设计素材库检索

CLIP ViT-H-14多场景适配方案&#xff1a;教育题库图像索引、医疗报告配图推荐、设计素材库检索 1. 项目概述 CLIP ViT-H-14图像编码服务是基于CLIP ViT-H-14(laion2B-s32B-b79K)模型的图像特征提取解决方案。这项服务通过RESTful API和Web界面两种方式&#xff0c;为不同行业…...

CSS动画+超级千问:打造有呼吸感的语音合成反馈系统(实战教程)

CSS动画超级千问&#xff1a;打造有呼吸感的语音合成反馈系统&#xff08;实战教程&#xff09; 1. 项目介绍与核心价值 1.1 传统TTS工具的痛点 大多数语音合成工具的操作体验是这样的&#xff1a;面对一堆参数滑块&#xff0c;反复调整"语速"、"音高"、…...

西门子S7-300 PLC实战:从零搭建药品装瓶机控制系统(附组态王6.55配置)

西门子S7-300 PLC实战&#xff1a;从零搭建药品装瓶机控制系统&#xff08;附组态王6.55配置&#xff09; 在制药生产线上&#xff0c;药品装瓶环节的效率直接影响整体产能。传统人工装瓶方式不仅速度慢&#xff0c;还容易产生计数误差。而采用PLC控制的自动化装瓶系统&#x…...

【AI知识点】交叉注意力机制:连接不同世界的“信息桥梁”

1. 从"信息桥梁"理解交叉注意力机制 想象你正在同时阅读一本英文书和它的中文翻译版。当你遇到一个不太理解的英文句子时&#xff0c;会自然地在中文版本中寻找对应的段落来帮助理解——这个过程就像交叉注意力机制在神经网络中的工作方式。它就像是架设在两个不同世…...

Easypoi导出Excel时,如何优雅地处理‘未知’或‘空值’?一个replace动态替换的实战技巧

Easypoi动态替换Excel导出中的未知值与空值&#xff1a;实战技巧与最佳实践 在数据导出场景中&#xff0c;我们经常遇到数据库枚举值与Excel展示不匹配的问题。比如性别字段&#xff0c;除了标准的"男"、"女"外&#xff0c;还可能存在空值或超出预设范围的…...

用战神引擎开服后,别忘了这几步:服务器安全、日志监控与性能调优指南

战神引擎开服后的高阶运维指南&#xff1a;安全加固、日志监控与性能调优实战 当你成功用战神引擎架设传奇手游服务器后&#xff0c;真正的挑战才刚刚开始。服务器能跑起来只是第一步&#xff0c;如何让它跑得稳、跑得安全、跑得高效&#xff0c;才是区分普通服主和专业运维的关…...