【发布时间】:2020-10-27 23:22:18
【问题描述】:
我需要一个适用于 MVC 架构的示例工作 Java Web 应用程序的工作示例。需要的技术只有:带 JSP 和 Servlet 的 JDBC,最好是 MySQL。 我不需要 Hybernate 和 Spring。 示例数据库可能仅包含 2 个表,如用户和用户角色或(产品和产品类别等),它们通过 INNER JOIN 连接。
尽管非常感谢您提供示例项目的链接,但我也希望对我应该使用什么提出建议:
-
示例项目的
UserRole class 还是 enum?
-
reference "私有 UserRole userRole;"或“私有 int userRoleId;”在 User 类中?
-
作为 ListAllRecords 方法的示例,如何利用连接 users 和 user_roles 表的查询结果:
SELECT users.*,
user_roles.nameFROM users INNER JOINuser_rolesON user_role_id =user_roles.id;
以下是我想要了解的项目的详细信息:
我的设计是:
实体类:
package com.project.entity.temp;
public class User {
private int id;
private String name;
private String password;
private UserRole userRole;
}
public class UserRole {
private int id;
private String name;
}
SQL 查询:
-- -----------------------------------------------------
-- Schema mydb
-- -----------------------------------------------------
DROP SCHEMA IF EXISTS `mydb` ;
-- -----------------------------------------------------
-- Schema mydb
-- -----------------------------------------------------
CREATE SCHEMA IF NOT EXISTS `mydb` DEFAULT CHARACTER SET utf8 ;
USE `mydb` ;
-- -----------------------------------------------------
-- Table `mydb`.`user_roles`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `mydb`.`user_roles` ;
CREATE TABLE IF NOT EXISTS `mydb`.`user_roles` (
`id` INT NOT NULL AUTO_INCREMENT,
`name` VARCHAR(45) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE INDEX `id_UNIQUE` (`id` ASC) VISIBLE)
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `mydb`.`users`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `mydb`.`users` ;
CREATE TABLE IF NOT EXISTS `mydb`.`users` (
`id` INT NOT NULL AUTO_INCREMENT,
`name` VARCHAR(45) NOT NULL,
`password` VARCHAR(45) NOT NULL,
`user_role_id` INT NOT NULL,
PRIMARY KEY (`id`),
UNIQUE INDEX `id_UNIQUE` (`id` ASC) VISIBLE,
INDEX `fk_users_user_roles_idx` (`user_role_id` ASC) VISIBLE,
CONSTRAINT `fk_users_user_roles`
FOREIGN KEY (`user_role_id`)
REFERENCES `mydb`.`user_roles` (`id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
【问题讨论】: