【JAVASE开发】JAVA项目(二嗨租车项目)

简介: 首先是用户登入界面,账号登录总界面部分分为登入与注册选择,账号分为管理员和普通用户,如果是管理员(admin)那么进入到另一个界面(与普通用户不同可以对汽车的一些信息进行修改,eg:上架汽车与删除汽车信息等操作),如果是普通用户的话,也是进入到不一样的界面(对汽车进行租借与还车支付金额等操作)...

 这次的 “二嗨租车项目” 使用的是的 oracle + JDBC + 集合 + 面向对象 + 分层思想(MVC),接下来就来看看吧。


项目需求细明

首先是用户登入界面,账号登录总界面部分分为登入与注册选择,账号分为管理员和普通用户,如果是管理员(admin)那么进入到另一个界面(与普通用户不同可以对汽车的一些信息进行修改,eg:上架汽车与删除汽车信息等操作),如果是普通用户的话,也是进入到不一样的界面(对汽车进行租借与还车支付金额等操作)

image.png


image.pngimage.png

image.png


结构思想

三层架构设计思想

通常意义上的三层架构就是将整个业务应用划分为:表现层、业务逻辑层、数据访问层。区分层次的目的即为了“高内聚,低耦合”的思想。

表现层(View):通俗讲就是展现给用户的界面,即用户在使用一个系统的时候他的所见所得。

业务逻辑层(Control):针对具体问题的操作,也可以说是对数据层的操作,对数据业务逻辑处理。   

数据访问层(Model):该层所做事务直接操作数据库,针对数据的增添、删除、修改、更新、查找等。

结构思路

在 V 层输入访问条件(操作1),条件传到 C 层(操作2),然后 C 层调用 M 层里面的方法直接访问数据库(DB)(操作3),然后 DB 返回的结果集转到 M 层(操作4),M 返回到C层(操作5),最后回到 V 层(操作6),然后依次在界面上显示出来.

image.png

工具:IntelliJ IDEA 2021.3 + oracle 12e + PLSQL Developer 13 (64 bit)

数据库部分:数据表(T_BRAND(品牌表)、汽车表(T_CAR)、类型表(T_CATEGORY)、租车记录表(T_RECORD)、用户表(T_USER))

image.pngimage.gif

image.pngimage.gif

image.pngimage.gif


image.gifimage.png

效果展示

image.png

image.pngimage.gifimage.png

image.png

image.pngimage.gif

实现代码

首先先完成普通用户,完成之后直接复制到管理员在进行修改,这里就写一个查看所有汽车信息的操作吧。

View层

packagecom.itxzw.view.main;
publicclassCarGeneralViewInterface {
publicvoidshowCarGeneralViewInterface(){
System.out.println("----------------------------------------------------------------------------");
System.out.println("登录成功!你是普通用户,请选择服务:");
System.out.println("1、查看所有汽车");
System.out.println("2、按照价格来升序或降序查询汽车");
System.out.println("3、按照类别查看汽车");
System.out.println("4、按照品牌查看汽车");
System.out.println("5、查看本人所有租车记录");
System.out.println("6、租车");
System.out.println("7、还车");
System.out.println("8、退出");
System.out.println("----------------------------------------------------------------------------");
    }
publicvoidshowAdminCarGeneralViewInterface(){
System.out.println("----------------------------------------------------------------------------");
System.out.println("登录成功!你是管理员,请选择服务:");
System.out.println("1、查看所有汽车信息");
System.out.println("2、根据指定编号查看汽车信息");
System.out.println("3、添加汽车");
System.out.println("4、修改汽车信息");
System.out.println("5、查看所有用户全部租车记录");
System.out.println("6、查看指定用户租车记录");
System.out.println("7、查看指定汽车租车记录");
System.out.println("8、退出");
System.out.println("----------------------------------------------------------------------------");
    }
publicvoidLoginAndRegister(){
System.out.println("----------------------------------------------------------------------------");
System.out.println("尊敬的用户,您好!!");
System.out.println("欢迎使用二嗨租车系统,请输入数字来进行操作:");
System.out.println("说明:输入数字1是进行登录,输入数字2进行注册");
System.out.println("1、登录");
System.out.println("2、注册");
System.out.println("----------------------------------------------------------------------------");
    }
}

image.gif

TextMain.java

carGeneralViewInterface.showCarGeneralViewInterface();
                                System.out.println("请输入数字来进行操作:");
                                int scan = Scan.scan.nextInt();
                                if (scan == 1) {
                                    System.out.println("所有的汽车信息是:");
                                    carControl.viewAllCars();
                                }

image.gif

C层

//    查看所有汽车
    public void viewAllCars() throws SQLException {
        carService.viewAllCars();
    }

image.gif

接口

public void viewAllCars() throws SQLException;

image.gif

相对应的实现方法

@Override
    public void viewAllCars() throws SQLException {
        conn = JdbcUtil.getConnection();
        stmt = conn.createStatement();
        String sql = "select * from T_CAR";
        rs = stmt.executeQuery(sql);
        ArrayList<Car> list = new ArrayList<Car>();
        while (rs.next()) {
            Integer id = ((BigDecimal) rs.getObject("id")).intValue();
            String Car_Number = rs.getString("Car_Number");
            Integer Brand_Id = ((BigDecimal) rs.getObject("Brand_Id")).intValue();
            String model = rs.getString("model");
            String Color = rs.getString("Color");
            Integer Category_Id = ((BigDecimal) rs.getObject("Category_Id")).intValue();
            String T_Comments = rs.getString("T_Comments");
            Double price = rs.getDouble("price");
            Double rent = rs.getDouble("rent");
            Integer status = ((BigDecimal) rs.getObject("status")).intValue();
            Integer useable = ((BigDecimal) rs.getObject("useable")).intValue();
            car = new Car(id, Car_Number, Brand_Id, model, Color, Category_Id, T_Comments, price, rent, status, useable);
            list.add(car);
        }
        for (int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i));
        }
    }

image.gif

Car.java 实体类

package com.itxzw.client.model;
public class Car {
    private int id;
    private String Car_Number;
    private int Brand_Id;
    private String model;
    private String Color;
    private int Category_Id;
    private String T_Comments;
    private double price;
    private double rent;
    private int status;
    private int useable;
    public Car() {
    }
    public Car(int id, String car_Number, int brand_Id, String model, String color, int category_Id, String t_Comments, double price, double rent, int status, int useable) {
        this.id = id;
        Car_Number = car_Number;
        Brand_Id = brand_Id;
        this.model = model;
        Color = color;
        Category_Id = category_Id;
        T_Comments = t_Comments;
        this.price = price;
        this.rent = rent;
        this.status = status;
        this.useable = useable;
    }
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getCar_Number() {
        return Car_Number;
    }
    public void setCar_Number(String car_Number) {
        Car_Number = car_Number;
    }
    public int getBrand_Id() {
        return Brand_Id;
    }
    public void setBrand_Id(int brand_Id) {
        Brand_Id = brand_Id;
    }
    public String getModel() {
        return model;
    }
    public void setModel(String model) {
        this.model = model;
    }
    public String getColor() {
        return Color;
    }
    public void setColor(String color) {
        Color = color;
    }
    public int getCategory_Id() {
        return Category_Id;
    }
    public void setCategory_Id(int category_Id) {
        Category_Id = category_Id;
    }
    public String getT_Comments() {
        return T_Comments;
    }
    public void setT_Comments(String t_Comments) {
        T_Comments = t_Comments;
    }
    public double getPrice() {
        return price;
    }
    public void setPrice(double price) {
        this.price = price;
    }
    public double getRent() {
        return rent;
    }
    public void setRent(double rent) {
        this.rent = rent;
    }
    public int getStatus() {
        return status;
    }
    public void setStatus(int status) {
        this.status = status;
    }
    public int getUseable() {
        return useable;
    }
    public void setUseable(int useable) {
        this.useable = useable;
    }
    @Override
    public String toString() {
        return "Car{" +
                "id=" + id +
                ", Car_Number='" + Car_Number + '\'' +
                ", Brand_Id=" + Brand_Id +
                ", model='" + model + '\'' +
                ", Color='" + Color + '\'' +
                ", Category_Id=" + Category_Id +
                ", T_Comments='" + T_Comments + '\'' +
                ", price=" + price +
                ", rent=" + rent +
                ", status=" + status +
                ", useable=" + useable +
                '}';
    }
}

image.gif

运行一下没有问题,其他的都差不多,改一下 sql 语句操作。

不积跬步无以至千里,趁年轻,使劲拼,给未来的自己一个交代!向着明天更好的自己前进吧!



相关文章
|
6天前
|
存储 网络协议 安全
Java网络编程,多线程,IO流综合小项目一一ChatBoxes
**项目介绍**:本项目实现了一个基于TCP协议的C/S架构控制台聊天室,支持局域网内多客户端同时聊天。用户需注册并登录,用户名唯一,密码格式为字母开头加纯数字。登录后可实时聊天,服务端负责验证用户信息并转发消息。 **项目亮点**: - **C/S架构**:客户端与服务端通过TCP连接通信。 - **多线程**:采用多线程处理多个客户端的并发请求,确保实时交互。 - **IO流**:使用BufferedReader和BufferedWriter进行数据传输,确保高效稳定的通信。 - **线程安全**:通过同步代码块和锁机制保证共享数据的安全性。
58 23
|
16天前
|
人工智能 安全 IDE
一天成为Java开发高手:用飞算JavaAI实现十倍提效
“一天成为Java开发高手”曾被视为天方夜谭,但飞算JavaAI的出现改变了这一局面。这款AI开发助手通过智能引导、需求分析、自动化逻辑处理和完整代码工程生成,大幅简化了Java开发流程。它不仅帮助新手快速上手,还让资深开发者提高效率,减少调试时间。现在,参与“飞算JavaAI炫技赛”,展示你的开发实力,赢取丰厚奖品!
|
1月前
|
JavaScript 安全 Java
智慧产科一体化管理平台源码,基于Java,Vue,ElementUI技术开发,二开快捷
智慧产科一体化管理平台覆盖从备孕到产后42天的全流程管理,构建科室协同、医患沟通及智能设备互联平台。通过移动端扫码建卡、自助报道、智能采集数据等手段优化就诊流程,提升孕妇就诊体验,并实现高危孕产妇五色管理和孕妇学校三位一体化管理,全面提升妇幼健康宣教质量。
48 12
|
7天前
|
搜索推荐 Java Android开发
课时146:使用JDT开发Java程序
在 Eclipse 之中提供有 JDT环境可以实现java 程序的开发,下面就通过一些功能进行演示。 项目开发流程
|
8天前
|
存储 监控 数据可视化
SaaS云计算技术的智慧工地源码,基于Java+Spring Cloud框架开发
智慧工地源码基于微服务+Java+Spring Cloud +UniApp +MySql架构,利用传感器、监控摄像头、AI、大数据等技术,实现施工现场的实时监测、数据分析与智能决策。平台涵盖人员、车辆、视频监控、施工质量、设备、环境和能耗管理七大维度,提供可视化管理、智能化报警、移动智能办公及分布计算存储等功能,全面提升工地的安全性、效率和质量。
|
16天前
|
人工智能 Java 数据处理
Java高级应用开发:基于AI的微服务架构优化与性能调优
在现代企业级应用开发中,微服务架构虽带来灵活性和可扩展性,但也增加了系统复杂性和性能瓶颈。本文探讨如何利用AI技术,特别是像DeepSeek这样的智能工具,优化Java微服务架构。AI通过智能分析系统运行数据,自动识别并解决性能瓶颈,优化服务拆分、通信方式及资源管理,实现高效性能调优,助力开发者设计更合理的微服务架构,迎接未来智能化开发的新时代。
|
弹性计算 数据可视化 关系型数据库
阿里云服务器部署Java Web项目和连接MySQL数据库全流程
阿里云服务器部署Java Web项目和连接MySQL数据库全流程
6234 0
阿里云服务器部署Java Web项目和连接MySQL数据库全流程
|
3月前
|
NoSQL Java 关系型数据库
Liunx部署java项目Tomcat、Redis、Mysql教程
本文详细介绍了如何在 Linux 服务器上安装和配置 Tomcat、MySQL 和 Redis,并部署 Java 项目。通过这些步骤,您可以搭建一个高效稳定的 Java 应用运行环境。希望本文能为您在实际操作中提供有价值的参考。
224 26
|
7月前
|
Java 应用服务中间件 Windows
【应用服务 App Service】App Service 中部署Java项目,查看Tomcat配置及上传自定义版本
【应用服务 App Service】App Service 中部署Java项目,查看Tomcat配置及上传自定义版本
|
10月前
|
存储 Java Maven
使用 nohup 部署和后台运行Java 项目
使用 nohup 部署和后台运行Java 项目
500 1
使用 nohup 部署和后台运行Java 项目

热门文章

最新文章