11.14

如果你的开发环境中没有使用 com 作为包名前缀(比如更倾向于使用自定义包名,如班级相关的标识),可以调整包名结构,保持逻辑清晰即可。以下是修改包名后的开发步骤(以 house 作为根包名为例,你可替换为实际需要的名称,如班级编号 class2019 等):
一、调整包名结构(替代 com.example)
假设根包名为 house(可自定义为 class2019.house 等),项目包结构调整为:
plaintext
house
├─ management // 项目主包(替代原 com.example.housemgmt)
│ ├─ entity // 实体类(房产

  1. 登录 MySQL
    打开命令行(Win+R 输入cmd),输入:
    mysql -u root -p
    回车后输入密码(如123456),登录 MySQL。
  2. 创建数据库和表
    执行以下 SQL 语句(复制粘贴到命令行,逐条执行):
    sql
    -- 创建数据库(名称自定义,如house_db)
    CREATE DATABASE house_db CHARACTER SET utf8mb4;

-- 使用该数据库
USE house_db;

-- 1. 房产表(存储房产信息)
CREATE TABLE house (
house_id VARCHAR(20) PRIMARY KEY, -- 编号:年月日+4位序号(如202511170001)
room_type VARCHAR(20) NOT NULL, -- 户型(四室两厅等)
address VARCHAR(100) NOT NULL, -- 地址(XX省XX市...)
build_year INT NOT NULL, -- 建造年份
area DECIMAL(10,2) NOT NULL, -- 面积
price DECIMAL(12,2) NOT NULL, -- 售价
status VARCHAR(10) NOT NULL DEFAULT '在售', -- 状态:在售/待售/意向/售出/停售
agent_id VARCHAR(8), -- 关联经纪人工号(8位)
user_id INT -- 关联顾客ID
);

-- 2. 经纪人表
CREATE TABLE agent (
agent_id VARCHAR(8) PRIMARY KEY, -- 工号(8位数字,如20190001)
name VARCHAR(20) NOT NULL, -- 姓名
address VARCHAR(100) NOT NULL, -- 住址
phone VARCHAR(11) NOT NULL, -- 手机号(11位)
password VARCHAR(50) NOT NULL DEFAULT '123456' -- 初始密码
);

-- 3. 顾客表
CREATE TABLE customer (
user_id INT PRIMARY KEY AUTO_INCREMENT, -- 自增ID
name VARCHAR(20) NOT NULL, -- 姓名
sex VARCHAR(2) NOT NULL, -- 性别(男/女)
id_card VARCHAR(18) NOT NULL UNIQUE, -- 身份证号(18位,含X)
phone VARCHAR(11) NOT NULL, -- 手机号
address VARCHAR(100) NOT NULL, -- 住址
password VARCHAR(50) NOT NULL, -- 密码
is_approved TINYINT DEFAULT 0 -- 是否审核通过(0未通过,1通过)
);

-- 4. 管理员表(用于登录)
CREATE TABLE admin (
id INT PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(20) NOT NULL UNIQUE, -- 管理员账号
password VARCHAR(50) NOT NULL -- 密码
);

-- 插入一个默认管理员(账号:admin,密码:123456)
INSERT INTO admin (username, password) VALUES ('admin', '123456');
第四步:配置数据库连接(项目核心)
在 IDEA 中找到项目目录 src/main/resources,打开 application.properties 文件(若没有则新建),添加以下配置:
properties

数据库连接信息(替换为你的MySQL密码)

spring.datasource.url=jdbc:mysql://localhost:3306/house_db?useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true
spring.datasource.username=root
spring.datasource.password=123456 # 你的MySQL密码
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

JPA配置(自动处理数据库表结构,打印SQL方便调试)

spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL8Dialect

Thymeleaf配置(开发时关闭缓存,修改页面无需重启)

spring.thymeleaf.cache=false

服务器端口(可选,默认8080,若被占用可改)

server.port=8080
第五步:创建实体类(映射数据库表)
在 src/main/java/house/system 下新建 entity 包,用于存放实体类(对应数据库表):

  1. 房产实体类(House.java)
    java
    运行
    package house.system.entity;

import lombok.Data;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
import java.math.BigDecimal;

@Data // Lombok注解:自动生成get/set方法
@Entity // 标记为JPA实体
@Table(name = "house") // 关联数据库表house
public class House {
@Id // 主键
private String houseId; // 房产编号
private String roomType; // 户型
private String address; // 地址
private Integer buildYear; // 建造年份
private BigDecimal area; // 面积
private BigDecimal price; // 售价
private String status; // 状态
private String agentId; // 关联经纪人工号
private Integer userId; // 关联顾客ID
}
2. 经纪人实体类(Agent.java)
java
运行
package house.system.entity;

import lombok.Data;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;

@Data
@Entity
@Table(name = "agent")
public class Agent {
@Id
private String agentId; // 工号(主键)
private String name; // 姓名
private String address; // 住址
private String phone; // 手机号
private String password; // 密码
}
3. 顾客实体类(Customer.java)
java
运行
package house.system.entity;

import lombok.Data;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;

@Data
@Entity
@Table(name = "customer")
public class Customer {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY) // 自增主键
private Integer userId; // 顾客ID
private String name; // 姓名
private String sex; // 性别
private String idCard; // 身份证号
private String phone; // 手机号
private String address; // 住址
private String password; // 密码
private Integer isApproved; // 是否审核通过(0/1)
}
4. 管理员实体类(Admin.java)
java
运行
package house.system.entity;

import lombok.Data;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;

posted @ 2025-11-23 12:46  muyuxiaxing  阅读(3)  评论(0)    收藏  举报