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项目目录如下:
步骤:
- 创建一个普通 java 项目;
- 新增 web 配置将项目由普通的Java项目变为 javaweb项目;
- 配置 tomcat 服务器;
- 测试 jsp 网页是否能运行;
- 新增 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 创建资源文件夹
- 先创建一个普通文件夹
- 右键“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用户登录(增删改查) 文章目录 IDEA实现javaweb用户登录(增删改查)前言一、IDEA 软件的简单使用1 创建一个普通 java 项目2 新增 web 配置将项目由普通的Java项目变为 javaweb项目2.1 新增 web 配置2.2 新增项目文件…...

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

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

社区团购中 2+1 链动模式商城小程序的创新融合与发展策略研究
摘要:本文聚焦于社区团购这一新兴零售模式的发展态势,深入探讨 21 链动模式商城小程序与之融合的创新机制与应用策略。通过剖析社区团购的运营模式、优势特点以及发展现状,结合 21 链动模式商城小程序的功能特性,研究二者协同作用…...
【Go底层】time包Ticker定时器原理
目录 1、背景2、go版本3、源码解释【1】Ticker结构【2】NewTicker函数解释 4、代码示例5、总结 1、背景 说到定时器我们一般想到的库是cron,但是对于一些简单的定时任务场景,标准库time包下提供的定时器就足够我们使用,本篇文章我们就来研究…...

RoBERTa- 稳健优化的 BERT 预训练模型详解
一、引言 自 BERT(Bidirectional Encoder Representations from Transformers)问世,预训练语言模型在自然语言处理(NLP)领域掀起革命浪潮,凭卓越表现大幅刷新诸多任务成绩。RoBERTa 承继 BERT 架构&#x…...

【C++】continue语句、goto语句
1、continue 语句 作用:在循环语句中,跳过本次循环中余下尚未执行的语句。继续下一次循环。 注意:continue只能用于循环中。 示例: 代码: //continue的用法 #include<iostream> using namespace std; int ma…...
postgresql与pgvector安装与使用
环境变量修改 打开 .bashrc 文件进行编辑: 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体系的创新解决方案,为构建高效的AI交互界面提供了便利和支持。从精细的原子组件到快速集成的模型服务,Ant Design X让开发者能轻松应对各种需求。本文将结合实际场景,展示Ant Design X的功能与使用方法。 为…...

详解版本控制工作原理及优势,常见的版本控制系统对比(HelixCore、Git、SVN等)
什么是版本控制软件?从基础层面来说,版本控制(也可称版本管理)就是随时间跟踪和管理文件变更的过程,而版本控制软件有助于实现这一过程的自动化。但这仅仅是其功能及其重要性的开端。 什么是版本控制? 版本…...

Vue2 vs Vue3:核心原理与性能优化详解
Vue2 vs Vue3:核心原理与性能优化详解 Vue.js 是目前主流的前端框架之一,随着 Vue3 的发布,框架内部的实现和使用方式都发生了显著变化。本文将从 Vue2 和 Vue3 的核心实现原理出发,详细解析两者的区别,并分析 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…...
在超表面中琼斯矩阵的使用
琼斯矩阵(Jones Matrix) 是一种线性代数方法,用于描述光的偏振状态和偏振变化,是偏振光学中重要的数学工具。它在 超表面理论设计 中广泛应用,尤其是在设计和调控光与物质相互作用时,例如偏振控制、相位调制…...
在macOS上从源码部署RAGFlow-0.14.1
一、macOS配置 1. macOS配置 我使用MacBook Pro,chip 是 Apple M3 Pro,Memory是18GB,macOS是 Sonoma 14.6.1。 2.安装Docker和Docker compose 官方要求 Docker ≥ 24.0.0 & Docker Compose ≥ v2.26.1,我的版本如下&#x…...

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

【经管数据】上市公司企业审计报告时滞数据、 年报披露时滞数据(2001-2022年)
测算方式:参考C刊《审计研究》窦笑晨(2022)老师的研究,从审计报告约定披露日期到审计报告实际披露日期之间的时间间隔。有关审计报告时滞的度量,现有研究大多采用资产负债表日与审计报告实际披露日期之间的间隔天数进行…...

debian ubuntu armbian部署asp.net core 项目 开机自启动
我本地的环境是 rk3399机器,安装armbian系统。 1.安装.net core 组件 sudo apt-get update && \sudo apt-get install -y dotnet-sdk-8.0或者安装运行库,但无法生成编译项目 sudo apt-get update && \sudo apt-get install -y aspnet…...

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

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

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)…...

19c补丁后oracle属主变化,导致不能识别磁盘组
补丁后服务器重启,数据库再次无法启动 ORA01017: invalid username/password; logon denied Oracle 19c 在打上 19.23 或以上补丁版本后,存在与用户组权限相关的问题。具体表现为,Oracle 实例的运行用户(oracle)和集…...

MODBUS TCP转CANopen 技术赋能高效协同作业
在现代工业自动化领域,MODBUS TCP和CANopen两种通讯协议因其稳定性和高效性被广泛应用于各种设备和系统中。而随着科技的不断进步,这两种通讯协议也正在被逐步融合,形成了一种新型的通讯方式——开疆智能MODBUS TCP转CANopen网关KJ-TCPC-CANP…...

从零实现STL哈希容器:unordered_map/unordered_set封装详解
本篇文章是对C学习的STL哈希容器自主实现部分的学习分享 希望也能为你带来些帮助~ 那咱们废话不多说,直接开始吧! 一、源码结构分析 1. SGISTL30实现剖析 // hash_set核心结构 template <class Value, class HashFcn, ...> class hash_set {ty…...

智能仓储的未来:自动化、AI与数据分析如何重塑物流中心
当仓库学会“思考”,物流的终极形态正在诞生 想象这样的场景: 凌晨3点,某物流中心灯火通明却空无一人。AGV机器人集群根据实时订单动态规划路径;AI视觉系统在0.1秒内扫描包裹信息;数字孪生平台正模拟次日峰值流量压力…...

图表类系列各种样式PPT模版分享
图标图表系列PPT模版,柱状图PPT模版,线状图PPT模版,折线图PPT模版,饼状图PPT模版,雷达图PPT模版,树状图PPT模版 图表类系列各种样式PPT模版分享:图表系列PPT模板https://pan.quark.cn/s/20d40aa…...

学校时钟系统,标准考场时钟系统,AI亮相2025高考,赛思时钟系统为教育公平筑起“精准防线”
2025年#高考 将在近日拉开帷幕,#AI 监考一度冲上热搜。当AI深度融入高考,#时间同步 不再是辅助功能,而是决定AI监考系统成败的“生命线”。 AI亮相2025高考,40种异常行为0.5秒精准识别 2025年高考即将拉开帷幕,江西、…...
Go 并发编程基础:通道(Channel)的使用
在 Go 中,Channel 是 Goroutine 之间通信的核心机制。它提供了一个线程安全的通信方式,用于在多个 Goroutine 之间传递数据,从而实现高效的并发编程。 本章将介绍 Channel 的基本概念、用法、缓冲、关闭机制以及 select 的使用。 一、Channel…...
PostgreSQL——环境搭建
一、Linux # 安装 PostgreSQL 15 仓库 sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-$(rpm -E %{rhel})-x86_64/pgdg-redhat-repo-latest.noarch.rpm# 安装之前先确认是否已经存在PostgreSQL rpm -qa | grep postgres# 如果存在࿰…...

前端开发者常用网站
Can I use网站:一个查询网页技术兼容性的网站 一个查询网页技术兼容性的网站Can I use:Can I use... Support tables for HTML5, CSS3, etc (查询浏览器对HTML5的支持情况) 权威网站:MDN JavaScript权威网站:JavaScript | MDN...

医疗AI模型可解释性编程研究:基于SHAP、LIME与Anchor
1 医疗树模型与可解释人工智能基础 医疗领域的人工智能应用正迅速从理论研究转向临床实践,在这一过程中,模型可解释性已成为确保AI系统被医疗专业人员接受和信任的关键因素。基于树模型的集成算法(如RandomForest、XGBoost、LightGBM)因其卓越的预测性能和相对良好的解释性…...