【JavaWeb】项目搭建

一、数据库准备

创建schedule_system数据库并执行如下语句

-- 设置连接的字符集为 utf8mb4
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;

-- ----------------------------
-- 创建日程表
-- ----------------------------
DROP TABLE IF EXISTS `sys_schedule`;
CREATE TABLE `sys_schedule`  (
  `sid` int NOT NULL AUTO_INCREMENT,
  `uid` int NULL DEFAULT NULL,
  `title` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
  `completed` int(1) NULL DEFAULT NULL,
  PRIMARY KEY (`sid`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;

-- ----------------------------
-- 插入日程数据
-- ----------------------------

-- ----------------------------
-- 创建用户表
-- ----------------------------
DROP TABLE IF EXISTS `sys_user`;
CREATE TABLE `sys_user`  (
  `uid` int NOT NULL AUTO_INCREMENT,
  `username` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
  `user_pwd` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
  PRIMARY KEY (`uid`) USING BTREE,
  UNIQUE INDEX `username`(`username`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;

-- ----------------------------
-- 插入用户数据
-- ----------------------------
INSERT INTO `sys_user` VALUES (1, 'zhangsan', 'e10adc3949ba59abbe56e057f20f883e');
INSERT INTO `sys_user` VALUES (2, 'lisi', 'e10adc3949ba59abbe56e057f20f883e');

SET FOREIGN_KEY_CHECKS = 1;

获得如下表格

1690362496438

1690362518448


二、项目结构

1690362672386

1690362709902


三、新建Web项目

新建名为 schedule-system 的项目。

很多人在写JAVA项目的时候不太喜欢用 _,而是比较喜欢用 -,因为一会我们在Tomcat中部署的时候,Tomcat也会将名字中的 _ 改为 -,因此这里也直接使用 - 命名了。

image-20240729202927005

然后添加Tomcat依赖

image-20240729203049407

然后增加Web资源组件

image-20240729203118085

最后删掉 web/index.jsp 即可

image-20240729203200231

四、IDEA连接数据库

我们为了在这方便在这块也能看到数据库表格,也可以使用IDEA连接数据库,将IDEA作为MySQL客户端来使用。

image-20240729203411133

然后输入连接信息,点击测试,最后Apply、OK即可

image-20240729203721186

然后勾选上我们想要展示的数据库

image-20240729203823068

五、导入依赖

1690362787035

这样做的好处:当你再往这个目录里面再增加其他jar包,都会自动的添加为当前项目的依赖了。

image-20240730053944190

六、pojo包处理

  • 新建 com.atguigu.schedule.pojo包 专门用于存放实体类

  • 在书写实体类的时候注意驼峰转换,表 sys_user 这种下划线的命名格式,在JAVA中往往会转化为驼峰式 SysUser

  • 作为跟数据库对应的一些实体类或者VO对象有一些要求:

    1 实体类的类名和表格名称应该对应(对应不是一致,需要进行驼峰转换)
    2 实体类的属性名和表格的列名应该对应
    3 每个属性都必须是私有的
    4 每个属性都应该具备 getter setter
    5 必须具备无参构造器,阿里的操作手册明确的说,类的无参构造器应该显示的写出来,避免写其他构造器的时候忽略了,造成无参构造器消失的情况
    6 全参构造器也可以准备一个
    7 应该实现序列化接口(缓存 分布式项目数据传递,在传递的过程中可能会将对象序列化)
    8 当我们要查大量数据的时候,考虑到会使用集合来存储对象,应该重写类的hashcode和equals方法
    9 toString是否重写都可以
    

虽然我们的构造器、get、set、toString、hashCode、equals等方法都可以靠IDEA自动生成,但是有时候难以避免属性名写错或者修改属性个数,此时就需要删掉重新写,有点麻烦。

此时使用 lombok 处理 getter setter equals hashcode 构造器

Lombok使用步骤

  1. 检查idea是否已经安装了lombok插件

    image-20240729211604762
  2. 检查是否勾选了 enable annotation processing,这个勾选上后,IDEA就可以根据Lombok注解提供相应的getter和setter方法的提示了,并且也会根据注解编译的时候在字节码文件中自动生成这些 getter setter equals hashcode 构造器 方法

    image-20240729211833845

    PS:这个勾选未必是永久有效的,有些IDEA版本这个按钮的勾选设置只针对当前namespace生效,例如勾选web01中的 enable annotation processing,那么在web01下任何子模块都是自动勾选的,但如果你换了一个namespace,那么这个可能就失效了,因此在使用Lombok之前一定要先检查一下这个 enable annotation processing 也没有勾选。

  3. 导入Lombok依赖

  4. 在实体类上添加注解

//-----------------------------------------------------
package com.atguigu.schedule.pojo;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
@AllArgsConstructor // 添加了全参构造
@NoArgsConstructor // 添加了五参构造
@Data // @Getter、@Setter、@EqualsAndHashCode、@ToString 可以合并为 @Data
public class SysUser implements Serializable {
    private Integer uid;
    private String username;
    private String userPwd;
}
//------------------------------------------------------
package com.atguigu.schedule.pojo;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;

@AllArgsConstructor
@NoArgsConstructor
@Data
public class SysSchedule implements Serializable {
    private Integer sid;
    private Integer uid;
    private String title;
    private Integer completed;
}
//------------------------------------------------------

七、测试包

我们可以建个包专门用来用来写测试各种代码 com.atguigu.schedule.test

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值