【JavaWeb】日程管理03——准备数据库和实体类

目录

  • 准备数据库
  • 准备实体类
    • lombok使用步骤
      • [1 检查idea是否已经安装了lombok插件](#1 检查idea是否已经安装了lombok插件)
      • [2 检查是否勾选了 enable annotation processing](#2 检查是否勾选了 enable annotation processing)
      • [3 导入lombok的依赖](#3 导入lombok的依赖)
      • [4 在实体类上添加注解](#4 在实体类上添加注解)

准备数据库

创建数据库

新建查询

clike 复制代码
SET NAMES utf8;
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) ,
  `completed` int(1) NULL DEFAULT NULL,
  PRIMARY KEY (`sid`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 ;

DROP TABLE IF EXISTS `sys_user`;
CREATE TABLE `sys_user` (
  `uid` int NOT NULL AUTO_INCREMENT,
  `username` varchar(10) ,
  `user_pwd` varchar(100),
  PRIMARY KEY (`uid`) USING BTREE,
  UNIQUE INDEX `username` (`username`) USING BTREE
) ENGINE = InnoDB ;
INSERT INTO `sys_user` VALUES (1, 'zhangsan', 'e10adc3949ba59abbe56e057f20f883e');
INSERT INTO `sys_user` VALUES (2, 'lisi', 'e10adc3949ba59abbe56e057f20f883e');

SET FOREIGN_KEY_CHECKS = 1;

准备实体类

创建模块

添加tomcat依赖

增加web资源组件

创建实体类

起类名的时候注意一下驼峰转换

对于数据库中表名用下划线分隔,Java中会转成驼峰式,比如这里数据库中表名为sys_user,转换成SysUser

和数据库对应的实体类一般有如下要求

  1. 实体类的类名和表格名称应该对应(对应不是一致)
  2. 实体类的属性名和表格的列名应该对应
  3. 每个属性都必须是私有的
  4. 每个属性都应该具备getter setter
  5. 必须具备无参构造器
    不写默认会有,但是如果写了其他有参构造器,无参构造器就没了,所以无参需要写出
  6. 应该实现序列化接口(缓存 分布式项目数据传递 可能会将对象序列化)
  7. 应该重写类的hashcode和equals方法
  8. toString是否重写都可以

一路Next

完整代码

clike 复制代码
package com.baidu.scheduler.pojo;

import java.util.Objects;

public class SysUser implements Serializable  {
    private Integer uid;
    private String username;
    private String userPwd;



    public SysUser(Integer uid, String username, String userPwd) {
        this.uid = uid;
        this.username = username;
        this.userPwd = userPwd;
    }

    public SysUser() {
    }

    public Integer getUid() {
        return uid;
    }

    public void setUid(Integer uid) {
        this.uid = uid;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getUserPwd() {
        return userPwd;
    }

    public void setUserPwd(String userPwd) {
        this.userPwd = userPwd;
    }

    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        SysUser sysUser = (SysUser) o;
        return Objects.equals(uid, sysUser.uid) && Objects.equals(username, sysUser.username) && Objects.equals(userPwd, sysUser.userPwd);
    }

    public int hashCode() {
        return Objects.hash(uid, username, userPwd);
    }

    public String toString() {
        return "SysUser{" +
                "uid=" + uid +
                ", username='" + username + '\'' +
                ", userPwd='" + userPwd + '\'' +
                '}';
    }
}

使用lombok帮助我们生成这些内容(getter setter 全参构造 无参构造 equals hashcode)

lombok使用步骤

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

2 检查是否勾选了 enable annotation processing

注意:这个勾选未必是永久有效的,使用前记得检查

3 导入lombok的依赖

4 在实体类上添加注解

添加AllArgsConstructor之后相当于添加了全参构造

clike 复制代码
@NoArgsConstructor    //添加了无参构造
@Getter
@Setter
@ToString
@EqualsAndHashCode

@Data  等同于下面四个的合并
@Getter
@Setter
@ToString
@EqualsAndHashCode

创建另一个实体类

相关推荐
马克Markorg1 小时前
常见的向量数据库和具有向量数据库能力的数据库
数据库
Coder_Boy_3 小时前
技术让开发更轻松的底层矛盾
java·大数据·数据库·人工智能·深度学习
helloworldandy3 小时前
使用Pandas进行数据分析:从数据清洗到可视化
jvm·数据库·python
数据知道5 小时前
PostgreSQL 故障排查:如何找出数据库中最耗时的 SQL 语句
数据库·sql·postgresql
qq_12498707535 小时前
基于SSM的动物保护系统的设计与实现(源码+论文+部署+安装)
java·数据库·spring boot·毕业设计·ssm·计算机毕业设计
枷锁—sha5 小时前
【SRC】SQL注入WAF 绕过应对策略(二)
网络·数据库·python·sql·安全·网络安全
Coder_Boy_5 小时前
基于SpringAI的在线考试系统-考试系统开发流程案例
java·数据库·人工智能·spring boot·后端
Gain_chance5 小时前
35-学习笔记尚硅谷数仓搭建-DWS层最近n日汇总表及历史至今汇总表建表语句
数据库·数据仓库·hive·笔记·学习
此生只爱蛋6 小时前
【Redis】主从复制
数据库·redis
马猴烧酒.6 小时前
【面试八股|JAVA多线程】JAVA多线程常考面试题详解
java·服务器·数据库