目录
1.打开DataGrip,展示本地主机所有数据库,右键@localhost,点击新建,再点击查询控制台。
4.点击General-->Existing Projects into Workspace
楔子
一到JavaSE以及Mysql学习完毕之后,学校基本上都会安排大家去实训,当然我学校也不例外,当初毫无头绪来到了csdn求助,却发现大多数的竟然都需要马内,不需要的功能也很不全面,这是万恶的,可恶的,痛定思痛,这必须要一个人站出来,为了传承照顾大家,今天我免费给大家带来了基于这两个技术方面的实训项目之仓库管理系统的实现。
仓库管理系统登录界面如下图所示:
项目获取方式
本项目全部开源,不惯着,就free,获取源代码方式如下:
方式一:本文章绑定压缩包获取
编写本文章时,为了方便读者获取,便将其压缩包一同绑定到了该文章里,放在了文章顶部(标题下方)。
方式二:百度网盘获取
1.百度网盘分享链接:
通过网盘分享的文件:仓库管理系统final.rar
链接: https://pan.baidu.com/s/1FQtpCy-46nrW2EIrUlteBg?pwd=0000
提取码: 0000
--来自百度网盘超级会员v3的分享
2.扫码获取
方式三:联系方式获取
编者QQ号:3274169002
可以添加编者QQ号,有问题或者想要项目源码可以添加编者QQ号询问(添加时写明来意,不然编者会以为是片姐骚然来了hhh)。
本项目的准备工作
具备一些基础JavaSE的知识能力,Mysql的知识能力,JavaSwing的知识能力。运行工具:eclipse,DataGrip。下载所需:jdk,mysql
关于本项目的各工程分析
打开本项目时,主要涉及四个方面,java执行,sql链接,图片,sql驱动。我也将其分别打包到四个文件夹里面了,分别是-->src文件夹,lib文件夹,sql文件夹,images文件夹。接下来便来分析这四个方面。
src文件夹
src文件夹下又分为四个小文件,分别为dao,model,util,view。
dao文件
该文件主要是用来准备将项目中所需要涉及到用户,商品,供应商的增删改查部分,通过sql语句和java语句判断存储或者删除数据库中的数据记录,以实现用户在进行用户,商品,供应商的增删改查的时候,数据库可以同步实现增删改查的功能。
model文件
该文件用来将用户,商品,供应商所涉及的各详细信息存放到类里面,java中的类与成员的思想,当然这三个类均要是标准的javabean类。
util文件
工具类文件,是链接本地mysql数据库必不可少的文件。在链接前注意查看自己的mysql是什么版本,这里有5.0和8.0版本的连接方式。
这里我用的是8.0版本的mysql,用户名是:root,密码是:123456,就直接填写下面部分的代码即可。在填写时,一定要注意用户名和密码要确保和自己的mysql设置的用户名和密码一样,如实填写,否则将会无法显示,数据库连接不上。连接部分代码如下所示
// 数据库地址
private String DRIVER = "com.mysql.jdbc.Driver";
// 数据库地址
private String URL = "jdbc:mysql://localhost:3306/southwinduseSSL=false&useUnicode=true&characterEncoding=utf8";
// 数据库用户名
private String USER = "root";
// 数据库密码
private String PASS = "";
//以上是mysql5.0版本的配置
// 数据库地址
private String DRIVER = "com.mysql.cj.jdbc.Driver";
// 数据库地址
private String URL = "jdbc:mysql://localhost:3306/southwind?serverTimezone=UTC";
// 数据库用户名
private String USER = "root";
// 数据库密码
private String PASS = "123456";
//以上是mysql8.0版本的配置
view文件
该文件即为这个项目显示的主要核心代码文件。
值得一提的是,为了保证项目进行下去,遵守只有一个main测试类,我们将其加入到了最开始的有关登录页面的java类中,如下图所示
images文件夹
很简单,见名知意,这个就是用来存放项目背景图片的文件夹。
诚然,为了让项目背景简约起来,我们除了登录页面学校要求的体现学校的背景图片之外,我们大多选择了以白灰蓝色等浅色风格的图片。为了让每个页面打开都有不同的背景,我们采用了通过随机产生来实现该要求(除了登录界面)。而添加背景图片的代码也象读者们如下展示
ImageIcon img = null;
// 产生随机数
Random r = new Random();
int i = r.nextInt(6);
// 用随机数的值获取不同的图片
switch (i) {
case 0:
img = new ImageIcon("Images//主背景.jpg");
break;
case 1:
img = new ImageIcon("Images//主背景1.jpg");
break;
case 2:
img = new ImageIcon("Images//主背景2.jpg");
break;
case 3:
img = new ImageIcon("Images//主背景3.jpg");
break;
case 4:
img = new ImageIcon("Images//主背景4.jpg");
break;
case 5:
img = new ImageIcon("Images//主背景5.jpg");
break;
default:
break;
}
// 初始化标签
JLabel background = new JLabel(img);
// // 将标签添加进框架index(添加进容器中)
index.getLayeredPane().add(background, new Integer(Integer.MIN_VALUE));
// // 设置标签大小
background.setBounds(0, 20, img.getIconWidth(), img.getIconHeight());
lib文件夹
该文件夹是用来存放mysql的驱动包的,里面存放了两个版本的(5.0和8.0)mysql驱动jar包
sql文件夹
这个便是存放的需要导入数据库的sql文件了(详见后面-->“关于项目中的sql文件导入mysql运行的说明”)
到此为止,关于本项目的四个主要工程分析已经结束,已经迫不及待的开始下面的工程演示了啊!!!(苍蝇搓手....)
关于项目中的sql文件导入mysql运行的说明
在解压后的项目里面有sql文件夹,打开会有一个名为southwind.sql文件(至于为啥起这个名字,因为这部分是小组一个成员负责的,算是属于他的个性化命名了)
此时就需要准备好mysql,DataGrip,如果没有安装的就需要先下载好mysql,必备配置好,再下载DataGrip,具体的教程本篇不再赘述,其他csdn或者网上的教程也有许多讲解。这里主要来讲解如何导入sql文件到DataGrip中,并且执行建表。
1.打开DataGrip,展示本地主机所有数据库,右键@localhost,点击新建,再点击查询控制台。
2.执行以下sql语句
create database southwind;
use southwind;
该sql语句是创建一个名为southwind的数据库,并且切换当前使用这个数据库。执行完毕之后,便会在左边发现已经创建好了该数据库southwind。
3.创建数据表
数据库创建完之后就非常简单了,直接将刚才打开的sql文件拖到创建好的southwind数据库里,直接就会在数据库下面创建出三个数据表,分别为,goods(商品表),storage(供应商表),users(用户表)。表展示如下图
goods(商品表)展示
storage(供应商表)展示
users(用户表)展示
到此为止,有关数据库的sql已经全部准备完毕!!!
关于项目导入eclipse运行的说明
首先需要在网上下载好jdk,并配置好环境,再下载eclipse,具体的教程本篇也不再赘述,其他csdn或者网上的教程也有许多讲解。这里主要来讲解如何导入项目到eclipse中,并且运行。
1.解压资源包
由于分享的是项目的压缩包,所以使用之前一定要
先解压压缩包!
先解压压缩包!
先解压压缩包!
可以使用winRAR等解压软件解压项目文件。
2.打开eclipse
3.点击File-->Import...
4.点击General-->Existing Projects into Workspace
点击完再点击Next即可。
5.点击Browse...
找到选择解压过后的文件路径,打开文件,再点击选择文件夹。
点击完之后要确保这里要被勾选到了。
随后再点击Finish即可导入成功!项目文件将会出现在左上角。
6.点击运行按钮,Run!
这里Run的main测试类在LoginFrame里面,即登录界面。
此时,一个完整的仓库管理系统就可以供各位读者们尽情钻研享用了!!!(bushi)
7.注意事项
对于一些第一次导入文件的读者们,有可能会出现文件中代码乱码,这个时候不用慌张,只需将解压后的src文件夹下的所有文件再在eclipse中cv(复制粘贴)一下(我们cv工程师是有守手法的,有操作的),这个可能会有些麻烦,别的解决方法目前也没有找到......
项目实现功能
本项目实现了许多功能,如管理员和普通用户不同身份的操作实现,项目美化,项目设置Windows风风格,背景图片的添加,年月日时分秒和星期的显示功能(时间功能均展示项目页面右下角),数据表格导入,数据导出表格。管理员方面的为-->用户管理,商品管理,供应商管理,供应商视图;普通用户方面的为-->用户管理,商品管理,供应商管理。实现效果图如下图展示
管理员方面
在项目代码中为了调试验证方便,将用户名设置为了admin,密码为1,点击登录。管理员身份中实现了用户管理功能,商品管理功能,供应商管理功能,供应商视图功能。管理员登录界面如下图展示
用户管理功能
用户管理功能里有添加用户,查询用户,删除用户,密码修改,更换用户这五种功能实现,功能界面如下图展示
添加用户
添加用户功在输入时,需要输入需要添加的用户的用户名,密码,用户类型,这里注意一下,在输入用户类型的时候,需要输入1或者2方可生效,1代表的是管理员用户,2代表的是普通用户。再点击提交即可,此时也会同步到数据库里面,关于数据库的介绍详见后面。功能界面如下图展示
查询用户
查询用户功能会展示出所有的用户信息,管理员和普通用户的信息均会展示出来,以表格的形式展现出来,功能界面如下图展示
删除用户
在进行删除用户功能时,需要先输入用户名,点击确定查询出所输入用户的信息,然后点击删除,即可实现用户删除功能,功能实现如下图展示
密码修改
密码修改功能,输入要修改的密码,这里需要再一次进行输入确认修改的密码,功能界面如下图展示
更换用户
点击更换用户,便会返回主界面登录页面,此时可以根据需要进行切换更换用户,功能界面如下图展示
商品管理功能
商品管理功能里有商品添加,商品删除,商品更新这三种功能实现,功能界面如下图展示
商品添加
商品添加功能界面如下图展示
商品删除
当用户进行商品删除的功能的时候,商品会以表格的形式展示出来,此时点击想要删除的商品(在表格中点击),这里值得一提的是,点击完表格中想要删除的商品后,需要再次点击删除按键,此时才会真正的删除商品,功能界面如下图所示
商品更新
同样,和商品删除功能一样,先会在上方商品会以表格的形式展示出来,随后需要再点击想要更新的商品(表格中点击),此时下方文本便会展现想要更新的商品详细信息,可以根据自己需要更新商品的各类信息,更新完点击修改即可,功能界面如下图展示
供应商管理功能
供应商管理功能里有供应商添加,供应商删除,供应商更新这三种功能实现,功能界面如下图展示
供应商添加
供应商添加功能实现,功能界面如下图展示
供应商删除
这里的功能演示同商品删除功能一样,功能界面如下图展示
供应商更新
这里的功能演示同商品更新功能一样,功能界面如下图展示
供应商视图功能
供应商视图功能里有供应商视图,导出,导入这三种功能实现,功能界面如下图展示
供应商视图
运行该功能时,会出现供应商查询视图,分为两部分,上半部分为查询结果表,下半部分即为供应商表,将供应商的详细信息以表格的形式展现出来。功能界面如下图展示
上半部分可根据供应商的ID来进行查询供应商的详细信息 ,查询结果会展现在供应商表中,功能界面如下图展示
同时,此刻若点击全部供应商按键,会将所有的供应商信息展现在供应商表里,功能界面如下图展示
导出
运行导出功能的时候,可以实现将储存的数据全部导出为一个csv表格文件,在导出时,需要先输入要导出表格的文件路径,再点击提交即可。注意:填写文件路径时,需要以.csv结尾,否则将会出现提示信息,请输入正确的文件路径格式。功能界面如下图展示
此时csv表格文件已经导出成功了,在D盘路径下,我们来打开一下验证,导出表格如下图展示
导入
导入功能同导出功能类似,功能界面如下图展示
普通用户方面
在项目代码中为了调试验证方便,将用户名设置为了1,密码为1,点击登录。管理员身份中实现了用户管理功能,商品管理功能,供应商管理功能。普通用户登录界面如下图展示
用户管理功能
用户管理功能里有个人信息,密码修改,更换用户这三种功能实现,功能界面如下图展示
个人信息
运行该功能时,可以查看当前登录用户的详细信息。功能界面如下图显示
密码修改
该功能同上管理员的密码修改功能一样。功能界面如下图显示
更换用户
该功能同上管理员的更换用户功能一样。功能界面如下图显示
商品管理功能
商品管理功能里有商品浏览这种功能实现,功能界面如下图展示
商品浏览
该功能将所有的商品以表格的形式可视化在界面中,方便用户查看商品种类等的详细信息,功能界面如下图展示
供应商管理功能
供应商管理功能里有供应商浏览这种功能实现,功能界面如下图展示
供应商浏览
该功能同上方的商品浏览类似,将所有的供应商以表格的形式可视化在界面中,方便用户查看供应商等的详细信息,功能界面如下图展示
Windows风格设置
关于项目的美化,风格化中这里选择了设置为Windows风风格。具体代码实现如下
//设置WIndows风
try {
// 设置本机系统外观
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch (Exception e) {
e.printStackTrace();
}
在项目源码中每个功能中均添加了这块代码以实现Windows风。
时间显示功能
细心的读者们可能会发现,我们在每个功能右下角添加了实时时间显示。具体代码实现如下
// 初始化日期格式
dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss EE");
// 创建时钟标签
clockLabel = new JLabel();
clockLabel.setFont(new Font("Serif", Font.PLAIN, 18));
//clockLabel.setHorizontalAlignment(SwingConstants.CENTER);
// 创建一个定时器,每秒更新一次时钟
java.util.Timer timer = new Timer(true);
timer.scheduleAtFixedRate(new TimerTask() {
@Override
public void run() {
// 获取当前时间
Date now = new Date();
// 格式化时间
String formattedTime = dateFormat.format(now);
// 更新时钟标签的文本
clockLabel.setText(formattedTime);
//panel.add(clockLabel);
//panel.setBounds(280, 250, 300, 100);
clockLabel.setBounds(370, 310, 300, 100);
}
}, 0, 1000);
logingui.add(clockLabel);
在项目源码中每个功能中均添加了这块代码以实现实时时间显示。
值得注意的是,这里的时间位置可以根据读者的自行喜爱更爱,当然最后不要忘记将时钟标签的文本加入到父页面中,否则便会出现不显示的错误。
结语
能看到这里相必读者你也是个求知若渴的IT人,这个项目一开始对于一个小白来说入手真的很难,完全摸不着头脑,无从下手,为此我当时也是查阅了许多资料,在基于前辈的项目上进行了增加和删除,才得出如今这个还算可以的仓库管理系统的项目。我也从中经历而来,自然懂得来时的路有多难,所以,像楔子中提到的那样,痛定思痛写下了这篇差不多7000多字的关于这个仓库管理系统的介绍和分享,想帮助后来的所需者提供一个思路和建议,不至于再手足无措。送一句话给读者们;
孤高的灵魂不需要羁绊之地
IT人们加油!!!
补充
如有侵权请联系编者删除;如果您觉得这篇文章对您有用,博客可以关注加点赞么,祝您生活愉快,您的支持就是我的动力!