【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

创建另一个实体类

相关推荐
吃糖的小孩1 天前
给 QQ AI 机器人设计“可控记忆”:会话摘要、手动长期记忆与角色卡边界
数据库
笃行3502 天前
金仓数据库数据安全双防线:静态存储加密与传输加密实战
数据库
笃行3502 天前
金仓数据库物理备份实战:sys_rman 全流程演练与误覆盖抢救
数据库
笃行3502 天前
金仓数据库逻辑备份实战:从全库导出到 Schema 替换的完整闭环
数据库
SelectDB3 天前
阶跃星辰基于 SelectDB 构建 PB 级 Agent 可观测平台
大数据·数据库·aigc
这个DBA有点耶3 天前
GROUP BY优化全解:如何写出既不丢数据又飞快的分组查询
数据库·mysql·架构
掉头发的王富贵3 天前
【StarRocks】极限十分钟入门StarRocks
数据库·sql·mysql
Nturmoils3 天前
WHERE 条件别凭习惯写,常用查询先跑一遍
数据库
Databend4 天前
在 AWS 中国峰会逛了一天,我在 Databend 展台看到了 Agent 数据基础设施的新思路
数据库·人工智能·agent