JDBC数据库项目-供应商采购审批系统

项目描述

项目名称

供应商采购审批系统

项目技术

  • 数据库 MySQL
  • 开发工具 Idea、Maven
  • 数据库连接技术 JDBC
  • 数据库连接池技术 Druid
  • 其他技术 md5加密 junit单元测试

项目功能

项目中包含三种员工角色:人事专员、采购专员、财务专员。其中,人事专员具有添加员工,员工离职功能,采购专员具有登录系统,修改密码,提交采购,修改采购,提交申诉等功能,财务专员具有独立系统,修改密码,采购审批,申诉审批等功能。

项目收获

通过这个项目,掌握了JDBC数据库编程、数据库连接池,md5加密,junit单元测试等技术。并能够独立开发实现审批系统的业务功能。启发了Java分层编程思想,深入理解项目中的service业务层和dao数据库层的职责。

项目模块描述

entity模块

该模块存放数据库表对应的实体对象

dao模块

该模块用于对接数据库,编写sql语句,执行一些对数据库的操作

service模块

该模块主要用于处理具体的业务逻辑;

util模块

该模块用于存放一些工具类,如德鲁伊连接池、加密工具等

test模块

该模块用于编写对应的测试用例

功能实现细节

添加供应商

业务流程

添加员工的流程3639.3

代码实现

package org.example.dao;

import org.example.entity.Emp;
import org.example.entity.Provider;

import java.sql.Connection;
import java.sql.SQLException;

/**
 * @author wenZhen
 * @create 2024-07-20 9:05
 */
public interface EmpDao {
   

    /**
     * 添加员工信息
     * @param conn  数据库连接对象
     * @param emp  员工对象
     * @return  返回修改行数
     * @throws SQLException  抛出数据库异常
     */
    int insert(Connection conn, Emp emp) throws SQLException;



    /**
     * 用于检查员工是否已存在
     * @param conn 数据库连接对象
     * @param emp 员工对象
     * @return  返回是否存在
     * @throws SQLException  抛出数据库异常
     */
    boolean exists(Connection conn,Emp emp) throws  SQLException;


}

添加员工

业务流程

添加员工流程

代码实现

package org.example.dao;

import org.example.entity.Emp;
import org.example.entity.Provider;

import java.sql.Connection;
import java.sql.SQLException;


public interface EmpDao {
   

    /**
     * 添加员工信息
     * @param conn  数据库连接对象
     * @param emp  员工对象
     * @return  返回修改行数
     * @throws SQLException  抛出数据库异常
     */
    int insert(Connection conn, Emp emp) throws SQLException;



    /**
     * 用于检查员工是否已存在
     * @param conn 数据库连接对象
     * @param emp 员工对象
     * @return  返回是否存在
     * @throws SQLException  抛出数据库异常
     */
    boolean exists(Connection conn,Emp emp) throws  SQLException;


}

    @Override
    public int insert(Connection conn, Emp emp) throws SQLException {
   
        //防SQL注入的写法
        String sql="insert into emp(account, password, real_name, role_name) VALUES (?,?,?,?)";

        //预编译
        PreparedStatement preparedStatement = conn.prepareStatement(sql);

        //填充 ?
        preparedStatement.setObject(1,emp.getAccount());
        preparedStatement.setObject(2, DigestUtils.md5Hex(emp.getPassword()));
        preparedStatement.setObject(3,emp.getRealName());
        preparedStatement.setObject(4,emp.getRoleName());

        //执行sql
        return preparedStatement.executeUpdate();

    }


    public boolean exists(Connection conn, Emp emp) throws SQLException {
   
        String sql="select count(*) from emp where account= ?";

        PreparedStatement preparedStatement = conn.prepareStatement(sql);

        preparedStatement.setObject(1,emp.getAccount());

        ResultSet resultSet = preparedStatement.executeQuery();

        boolean exists=false;
        if (resultSet.next()){
   
            exists= resultSet.getInt(1)!=0;  //已存在
        }

        return exists; //不存在
    }
    /**
     * 保存供应商
     * @param emp  供应商对象
     */
    void save(Emp emp);
    EmpDao empDao;

    public EmpServiceImpl() {
   
      
  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值