网络工程专业毕业论文--药店管理系统设计与实现(javaswing内容摘要:

数据库设计有几个范式一般我们要做到的是第三范 式即数据表中没有冗余字段以及同一个表中的字段没有函数依赖关系冗余字段即在一个表中已经保存过的信息在另一个表中就不应该存在如果需要的话可以通过表间的关联来得到函数依赖性就是一个表中的字段间不应该有计算关系如一个表中有单价字段数量字段就不应该有一个总金额字段如果程序运行过程中需要总金额可以实时计算不过在一些较常用的表中我们可以适当地保留冗余字段这样在程序运行过程中可以减少由于表间互相关联而使用速度降低等问题这就是所谓的第四范式数据表设计时最好不要使用用户输入的信息作为主键每一个数据表自己定义一个主键添加信息是由 程序自动添加这样就可以减少数据更新时产生的错误表与表相关联的外键最好是由程序自动生成的主键这样数据库就比较规范了另外数据表设计时一般都应该有一些标志字段标志字段可以定义成 CHAR 1 或 BIT 型建议实际应用中定义成 CHAR 1 字段可以存储多种可能的状态在最初设计时可能我们没有考虑到的一些情况在程序后来的开发中可以通过设计标志字段为不同的 值来解决这样就避免了修改数据库结构 数据库初期设计时一定要谨慎把所有可能的情况都考虑进去即使当时没有用到也要将它留在数据库中作为备用字段以便将来扩充 程序 一旦开始编码就应该尽量避免再修改数据库因为如果数据库结构一旦改变所有与修改的数据表相关的业务都有可能受到影响而某些影响还很难看到这样就容易形成一个恶性循环错误越改越多越改越乱最终导致程序的失败PB 的数据窗口与其他语言的数据控件不一样它的很多东西是预编译的即使你一个模块已经调试无误但只要数据库结构改动相应的模块就一定要重新修改否则一定会出问题 药品管理系统数据库中各个表的设计结果如下面几个表格所示每个表格表示为数据库中的一个表 表 414 药品信息表 Medicine 列名 数据类型 允许空值 默认值 描述 mid PK Varchar 8 N 药品编号 mname Varchar 40 N 药品名称 mshortname Varchar 10 Y 药品建成 mnors Varchar 4 N 规格 marea Varchar 40 N 药品产地 mlot Varchar 10 N 批号 minpri float N 0 进价 mwpri float N 0 批发价 mpri float N 0 零售价 Mcon Varchar 8 N 供应商 Mcate Varchar 20 N 类别 Musetime decimal 100 N 有效期 memo Varchar 40 Y 备注 表 415 用户表 User 列名 数据类型 允许空值 默认值 描述 Username PK Varchar 20 N 用户名 password Varchar 8 N 密码 rank int N 1 权限 表 416 供应商表 Supplier 列名 数据类型 允许空值 默认值 描述 spid PK Varchar 8 N 供应 商编号 spname Varchar 8 N 供应商名 Sparea Varchar 8 N 地区 Spmeno Varchar 40 Y 备注 表 417 销售单表 SalesOrder 列名 数据类型 允许空值 默认值 描述 Soid PK Varchar 8 N 销售单编号 mid Varchar 8 N 药品编号 Mname Varchar 40 N 药品名 Snum int N 0 数量 price double N 0 单价 表 418 职工表 Staff 列名 数据类型 允许空值 默认值 描述 Staffid PK Varchar 8 N 职工编号 staffname Varchar 20 N 职工名称 Staffsex varchar 2 N 性别 stafftel varchar 12 N 电话 staffadd varchar 40 Y 地址 Staffcard varchar 40 N 身份证 staffzip varchar 6 Y 备注 表 419 货存表 Stock 列名 数据类型 允许空值 默认值 描述 Mid PK Varchar 8 N 职工编号 mname Varchar 20 N 职工名称 mprice float N 性别 mnum int N 电话 spid varchar 8 Y 地址 time datetime N 身份证 status int N 存货类别 第五章 编码实现 51 用户登陆模块 用户登陆界面如图 51 所示 图 51 药品登陆界面 关键代码如下 显示出图形界面 Loginjava public Login String msg super msg setLayout new BorderLayout login_message new JTextField 用户登陆 login_messagesetEditable false login new JButton 登陆 regeist new JButton 注册 setVisible true add login_messageNorth JPanel btn new JPanel btnsetLayout new GridLayout 12 btnadd login btnadd regeist add btnSouth JPanel input new JPanel JLabel unameLabel new JLabel 用户名 uname new JTextField 20 JLabel pwdLabel new JLabel 密 码 pwd new JPasswordField 20 inputsetLayout new GridLayout 22 inputadd unameLabel inputadd uname inputadd pwdLabel inputadd pwd add inputCenter loginaddActionListener new loginListener regeistaddActionListener new regeistListener class loginListener implements ActionListener public void actionPerformed ActionEvent event UserDao ud new UserDao if udlogin unamegetText trim pwdgetText trim new MainGui start setVisible false else JOptionPaneshowMessageDialog null 您的输入不正确请重输 警告 1 loginListener 数据库中检查是使用 UserDaojava public boolean login String usernameString password Connection conn DBgetConn Statement stmt DBgetStatement conn String sql select from user where username username ResultSet rs DBgetResultSet stmt sql try while rsnext String dbpassword rsgetString password if dbpassword null dbpasswordequals password return true catch SQLException e Sytln 用户登陆连接数据库异常系统退出 Systemexit 1 return false 52 用户管理模块 用户管理界面 52 所示 图 52 用户管理界面 关键代码如下点击续接时系统执行的操作 UserDaojava 用户注册 public boolean regeist User user Connection conn DBgetConn Statement stmt DBgetStatement conn String sql insert into user usernamepasswordrank values usergetUsername usergetPassword usergetRank Sytln sql try stmtexecuteUpdate sql catch SQLException e eprintStackTrace JOptionPaneshowMessageDialog null 添加失败您输入的用 户已存在 警告 1 return false JOptionPaneshowMessageDialog null 恭喜您添加成功 恭喜 1 return true 查询用户 public String[] findUser Connection conn DBgetConn Statement stmt DBgetStatement conn String sql select from user String[] userlist new String[128] Sytln sql try ResultSet rs stmtexecuteQuery sql int i 0 while rsnext userlist[i] rsgetString username i catch SQLException e eprintStackTrace JOptionPaneshowMessageDialog null 查找用户失败 警告 1 return null return userlist 删除用户 public boolean delUser String username Connection conn DBgetConn Statement stmt DBgetStatement conn String sql delete from user where username username and rank 0 String[] userlist new String[] Sytln sql try stmtexecuteUpdate sql catch SQLException e eprintStackTrace JOptionPaneshowMessageDialog null 删除用户失败 警告 1 return false return true 修改用户 public boolean modify User user Connection conn DBgetConn Statement stmt DBgetStatement conn String sql update user set username usergetUsername password usergetPassword rank usergetRank where username usergetUsername Sytln sql try stmtexecuteUpdate sql catch SQLException e eprintStackTrace JOptionPaneshowMessa。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。