【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

创建另一个实体类

相关推荐
ccecw19 小时前
Mysql ONLY_FULL_GROUP_BY模式详解、group by非查询字段报错
数据库·mysql
JH307319 小时前
达梦数据库与MySQL的核心差异解析:从特性到实践
数据库·mysql
数据知道20 小时前
PostgreSQL 核心原理:如何利用多核 CPU 加速大数据量扫描(并行查询)
数据库·postgresql
麦聪聊数据21 小时前
Web 原生架构如何重塑企业级数据库协作流?
数据库·sql·低代码·架构
未来之窗软件服务21 小时前
数据库优化提速(四)新加坡房产系统开发数据库表结构—仙盟创梦IDE
数据库·数据库优化·计算机软考
Goat恶霸詹姆斯1 天前
mysql常用语句
数据库·mysql·oracle
大模型玩家七七1 天前
梯度累积真的省显存吗?它换走的是什么成本
java·javascript·数据库·人工智能·深度学习
曾经的三心草1 天前
redis-9-哨兵
数据库·redis·bootstrap
明哥说编程1 天前
Dataverse自定义表查询优化:D365集成大数据量提速实战【索引配置】
数据库·查询优化·dataverse·dataverse自定义表·索引配置·d365集成·大数据量提速
xiaowu0801 天前
C# 拆解 “显式接口实现 + 子类强类型扩展” 的设计思想
数据库·oracle