版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
132/132实验报告仓库管理系统实验课程数据库实验实验者1姓名班级学号实验者2姓名班级学号实验时间指导老师目录P3 要求P4 参考资料阅读心得P6 概述 (设计思路、实现功能、运用技术)P7 实现及操作(关键代码解析、运行结果、类方法的介绍)P17 存在问题和需要改善的地方 P18 附录(完整代码包括分布调试代码)
要求:使用ACCESS、SQLSERVER、ORACLE、MYSQL等作后台数据库,选择ASP、VB、VC、JAVA等作为前台开发工具设计一个小型管理系统。所设计的小型管理系统应包含输入输出、查询、插入、删除等基本功能,功能越强大越好。根据题目的基本需求,设计数据库、编写程序,并写出详细的设计说明书。每班以2人为一组自由分组,由班长将分组情况报到指导教师处;需要提交的文档资料:设计说明书每人一份(包括:参考资料的阅读心得,功能需求说明,设计思路,数据表结构及作用,数据关系图,存储过程代码及相关注释,设计体会);电子文档:可运行的,能实现全部或者主要基本功能的小型系统。课程设计说明书编写规范:需求分析:题目要求达到的功能,所提供的原始数据,需要输出的数据及样式等。数据库设计:根据要求设计数据库的结构,包括:表、数据完整性、关系、视图。开发方案选择:主要是前端开发平台的选择与方案的比较,至少比较两套方案。安全性设计:登录用户、数据库用户、数据库角色、命令许可等方面。前台应用程序设计:要求至少完成通过前台程序实现对后台数据库的数据查询、插入、删除与更新。涉及到数据的所有操作要求采用存储过程的方式进行。附录或参考资料:参考资料来源,阅读心得。
参考资料阅读心得:参考资料(老师提供):2、教材信息数据库
高校的教材管理需要相应的数据库环境,请根据如下系统需求定义数据表结构及关系,并通过编写存储过程来实现其中的两项功能:1)、教材出入库(1)教材入库将教材内部识别号、入库时间,入库数,适用对象等信息输入到教材入库记录表中,并更新在库教材信息表。教材入库后把教材征订单相应项目做教材收到标记。(暂不处理订单中某教材只入库其中一部分的情况,即缺货情况。)(2)教材出库教师或学生或班级或其它人员领用教材,需要把教材内部编号,教材代号,出库时间,出库数量,使用单位(指班级或教师,可多个班级或教师),用途,经办人等信息输入到教材出库记录表中。并同时更新教材信息表中的在库数量。为便于教材信息的录入,可通过班级名称、课程名称或教材名称查询到要出库的教材信息表中相应教材的内部编号。(3)教材信息录入将教材的内部识别号(由本系统自动维护),代号,书名,编著者,出版社,版次,定价,入库时间,入库数,适用对象等信息录入到系统的数据库中。2)、教材查询(1)在库教材查询查询教材在库情况:可按书名、代号等查询,可查询某班级使用的教材及在库数量,可查询某课程使用的教材及在库数量。可查询指定教材的在库数量,价值总额。可查询教材在库的统计信息:在库教材总数、种类总数、价值总额。(2)教材出库查询教材出库信息查询:按教材代号等信息查询教材出库情况,可查询某使用对象(包括班级、教师、部门、其他人员)的教材出库情况。可查询某时间范围内(学期、学年等)的教材出库情况。(3)教材历史查询查询指定书的在库及出入库的历史信息,也可按时间或时间范围查询教材入库情况。便于管理员掌握教材出入库情况。3)、教材订购(1)、生成教材订单根据输入的各专业班级课程教材选用信息、教材出版社信息生成订单。(2)、教材订单状态管理订单状态管理:可标记各订单为有效(款项发出),图书入库后标记订单为到货,图书退回标记为退换货。4)、教材订单查询可查询指定学期教材订单的到货、缺货情况,查询订单未到教材的订货公司信息包括它的银行帐号、地址、联系人、联系方法等,以便与其联系。5)、其他相关数据:学生相关、课程相关、教师相关、班级相关、系部相关阅读心得:我们的选题是仓库管理系统,和教材信息数据库大致相同,实现的功能略作添加;我们需要完成的任务:(1).这个实验本质就是设置合理的操作界面,实现对数据库的数据读取、修改、删除、更新等操作;(2).系统的完备性和操作的安全性,是完善软件的关键,其中包括: 插入相同信息; 数据库中物品数量不足; 管理员编号不存在; 安全登录; 不同角色的对数据库的操作权限; 等等问题,都是我们需要解决的基本问题;(3)界面的美化和操作的快捷性和正确性; 界面是给客户的第一感触,尽量的新颖并且符合客户要求:(这里我们是学习,争取掌握多一点处理界面的函数,没有系统的规划)如果美化界面是尽量的完善,那么操作的快捷性和正确性是必须要实现的,给客户一个合理的操作是成功的必备条件;(4)分工与合作我们两个人都是java的初级学习者,不断的学习,分别设计不同的界面,相互交流实现效果的的经验; 关于数据库的知识和SQL语言的学习,都是我们要重新学习的;(5)文档的处理和制作,也是我们要完成的重要任务,我们也是分工完成;
概述1.设计思路:(1).仓库管理系统,实现功能:入库登记:商品入库记录;出库登记:库存商品出库;在库商品查询:库存物品查询;出库入库信息查询:按时间,操作管理员查询操作信息;管理员信息管理:管理员的登记,查询,删除;(2).附加实现功能: 登录界面:实现管理员员和客户的不同角色登录; 界面的转换:分别创建不同的窗口,并及时删除浏览过的窗口; 分角色设定使用权限:管理员和客户的使用权限不同;(3).异常处理: 操作错误:信息输入错误等; 常规错误:仓库物品数量不足等; 2.运用技术:界面实现:java语言;数据路操作实现:使用Access2003,运用SQL语言进行操作;
实现及操作根据分析,一共设计9个类,如下图,其中:数据库操作类: DBAccess:实现连接,查询修改等分步操作; GetDBInfo:实现查询结果集的返回;操作界面类: Enter: 登录界面 Select: 功能选择界面 InStoreHouse: 物品入库操作界面 OutStoreHouse: 物品出库操作界面 SearchGoods: 物品查询界面 OutIn: 出入库查询界面 ManagerInfo: 管理员信息管理界面分步实现说明:DBAccess类publicStatementgetStatement(StringdbPath)throwsException:返回连接数据库的状态;publicResultSetexecuteQuery(Statementstmt,Stringquery)throwsException:返回查询结果集;publicvoidexecuteUpdate(Statementstmt,Stringquery)throwsSQLException:更新数据库;publicvoidclose()throwsSQLException:关闭数据库的连接;GetDBInfo类privateVector<Vector<String>>rows;记录查询返回元组privateVectorcolumnHeads;记录查询返回结果的标题//获取表头VolumnHeads publicVectorgetColumnHeads();//获取表中内容 publicVectorgetRows();//更新数据库publicvoidexecuteUpdate(Statementstmt,Stringquery)throwsSQLException;Enter类privateJFrameframe;privateJButtonenterButton;privateJButtonresetButton;用于标识登陆角色的单选按钮privateJRadioButtonradioButton1;privateJRadioButtonradioButton2; privateJTextFieldnameText; privateJPasswordFieldpasswordText;表示登录身份: publicstaticbooleanisManager=false;实现效果:基本实现:(1)图片载入:JLabellabel4=newJLabel();ImageIconicon=newImageIcon("E:\\study\\java\\workspace\\StoreHouse\\abc.jpg"); label4.setIcon(icon);(2)单选按钮: ButtonGroupgroup=newButtonGroup(); radioButton1=newJRadioButton("管理员",false); radioButton2=newJRadioButton("客户",true); group.add(radioButton1); group.add(radioButton2);InStoreHouse类基本成员变量:privateJFrameframe;输入信息的11个文本框: privateJTextFieldtext1-11;privateJTextFieldinfoText;privateJButtonokButton;privateJButtonbackButton;设置日期格式:privatestaticfinalStringYYYMMDDHHMMSS="yyyy/MM/ddHH:mm:ss";基本函数://SQL语句生成 publicStringgetSQL()//自动生成插入时间publicStringinsertTime()//自动生成入库IDpublicStringinHouseID()//清除文本框publicvoidclear()实现效果:基本功能实现:监听器的设定: publicvoidactionPerformed(ActionEvente){Objectsource=e.getSource();if(source==okButton){ try{ DBAccessdb=newDBAccess(); StringdbPath="E:\\study\\java\\workspace\\StoreHouse\\StoreHouse.mdb"; Statementstmt=db.getStatement(dbPath); Stringquery=getSQL(); db.executeUpdate(stmt,query); query=insertSQL(); db.executeUpdate(stmt,query); stmt.close(); db.close(); infoText.setText("存储成功"); clear(); }catch(Exceptionex){ ex.printStackTrace(); }}elseif(source==backButton){ frame.dispose(); newSelect();}}OutStoreHouse类基本成员变量: privateJFrameframe; privateJButtonokButton; privateJButtonbackButton; privateJTextFieldtext1; privateJTextFieldtext2; privateJTextFieldtext3; privateJTextFieldtext4; privatestaticfinalStringYYYMMDDHHMMSS="yyyy/MM/ddHH:mm:ss"; privateIntegernum;//修改数据里中数量的临时变量基本函数:同InStoreHouse雷同实现效果:基本功能实现:处理物品编号不存在,以及数量不足的问题:publicvoidactionPerformed(ActionEvente){ Objectsource=e.getSource(); if(source==okButton){ try{ DBAccessdb=newDBAccess(); StringdbPath="E:\\study\\java\\workspace\\StoreHouse\\StoreHouse.mdb"; Stringquery=getGoodsSQL(); Statementstmt=db.getStatement(dbPath); ResultSetrs=db.executeQuery(stmt,query); if(!(rs.next()))//判断数据库中是否有内容 {JOptionPane.showMessageDialog(null,"输入货物编号不存在","提示信息",JOptionPane.INFORMATION_MESSAGE); text3.setText("操作失败"); clear(); }else{ //判断仓库物品是否够 //这里实验了很多次为什么只有num=放在这里才可以呢 if((num=Integer.valueOf(rs.getString(1)).intValue()-Integer.valueOf(text2.getText()).intValue())<0){ JOptionPane.showMessageDialog(null,"仓库货物不足","提示信息",JOptionPane.INFORMATION_MESSAGE); clear(); text3.setText("操作失败"); }else{ query=getSendOutSQL(); db.executeUpdate(stmt,query); query=updateGoodsSQL(num); db.executeUpdate(stmt,query); text3.setText("操作成功"); } } stmt.close(); db.close(); }catch(Exceptionex){ ex.printStackTrace(); } }elseif(source==backButton){ frame.dispose(); newSelect(); } }解析:这里应用到数据类型的转变,String到intdouble的转化;还可以应用其他方法: 如:rs.getInt(3);直接读取数据库中的int类型; rs.getDouble(4):直接读取double类型SearchGoods类基本成员函数:privateJFrameframe;privateJScrollPanejsp;privateJComboBoxnameList;privateJComboBoxtypeList;privateJComboBoxproductList;privateJTextFieldcountText;privateJTextFieldvalueText; privateJButtonokButton;privateJTabletable;privateDefaultTableModelmodel;privateJButtonbackButton; privateVectorrows;//表行值privateVectorcolumnHeads;//表列名//查询使用:Stringstr1,str2,str3;基本函数实现相同;实现效果:7.OutIn类基本函数变量: privateJFrameframe; privateJRadioButtoninButton; privateJRadioButtonoutButton; privateJButtonokButton; privateJButtonbackButton; privateJComboBoxcombox1; privateJComboBoxcombox2; privateJTabletable; privateVectorrows;//表行值 privateVectorcolumnHeads;//表列名 privateDefaultTableModelmodel; privateJScrollPanejsp; private Stringstr1=null,str2=null;//查询使用 privatebooleanflag=false; privateinttmp=0; privatestaticfinalStringYYYMMDDHHMMSS="yyyy/MM/dd";实现效果:基本实现:时间字符创的分割处理;Select类基本成员变量privateJButtonbutton1; privateJButtonbutton2; privateJButtonbutton3; privateJButtonbutton4; privateJButtonbutton5; privateJButtonbutton6; privateJTextFieldText; privateJFrameframe;实现效果:基本实现:界面效果实现:infoLabel.setHorizontalAlignment(SwingConstants.CENTER); infoLabel.setBackground(Color.gray);Text.setBackground(Color.gray);Text.setForeground(Color.cyan);Text.setFont(newFont("宋体",Font.HANGING_BASELINE,20)); ManagerInfo类基本函数: privateJFrameframe; privateJTabbedPanetabbedPane; privateJLabellabel1; privateJLabellabel2; privateJLabellabel3; privateJPanelpanel1; privateJPanelpanel2; privateJPanelpanel3; privateJComboBoxageBox; privateJComboBoxworkAgeBox; privateJComboBoxpostionBox; privateJTextFieldtext21; privateJTextFieldtext22; privateJTextFieldtext23; privateJTextFieldtext24; privateJTextFieldtext25; privateJTextFieldtext26; privateJTextFieldtext27; privateJTextFieldtext28; privateJTextFieldtext31; privateJTextFieldtext32; privateJButtonbutton11; privateJButtonbutton12; privateJButtonbutton21; privateJButtonbutton31; privateJButtonbackButton; privateJTabletable; privateVectorrows;//表行值 privateVectorcolumnHeads;//表列名 privateDefaultTableModelmodel; privateJScrollPanejsp; private Stringstr1=null,str2=null,str3=null;//查询使用基本功能函数:这里的函数处理和上面的相同,只是在布局上采用了JtablePanle面板,将三个功能加在同一个窗口里;实现效果:处理问题:要删除的管理员信息不存在:if(source==button31){ booleandeleteState=false; try{ DBAccessdb=newDBAccess(); StringdbPath="E:\\study\\java\\workspace\\StoreHouse\\StoreHouse.mdb"; Stringquery="select*fromManagerwhere编号="+"'"+text31.getText()+"'"; Statementstmt=db.getStatement(dbPath); ResultSetrs=db.executeQuery(stmt,query); while(rs.next()){ if(rs.getString(1).equals(text31.getText())){ query="deletefromManagerwhere编号="+"'"+text31.getText()+"'"; db.executeUpdate(stmt,query); text31.setText(""); text32.setText("删除成功"); deleteState=true; } } stmt.close(); db.close(); }catch(Exceptionex){ ex.printStackTrace(); } if(deleteState==false){ text32.setText("输入编号不存在"); text31.setText(""); }解析:在删除之前,对数据库进行检查,判断管理员编号是否存在;
存在问题和需要完善的问题
附录:代码实现DBAccess.Java文件importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.ResultSet;importjava.sql.SQLException;importjava.sql.Statement;publicclassDBAccess{publicConnectionconn=null;//连接未加密的数据库publicStatementgetStatement(StringdbPath)throwsException{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");Stringdburl="jdbc:odbc:driver={MicrosoftAccessDriver(*.mdb)};"+"DBQ="+dbPath;//此为NO-DSN方式//Stringdburl="jdbc:odbc:odbcName";//此为ODBC连接方式conn=DriverManager.getConnection(dburl);returnconn.createStatement();}//连接加密的数据库publicStatementgetStatement(StringdbPath,Stringpassword)throwsException{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");Stringdburl="jdbc:odbc:driver={MicrosoftAccessDriver(*.mdb)};"+"pwd="+password+";DBQ="+dbPath;//此为NO-DSN方式//Stringdburl="jdbc:odbc:odbcName";//此为ODBC连接方式conn=DriverManager.getConnection(dburl);returnconn.createStatement();}/*查询数据库*/publicResultSetexecuteQuery(Statementstmt,Stringquery)throwsException{ResultSetrs=stmt.executeQuery(query);returnrs;}/**更新数据库*/publicvoidexecuteUpdate(Statementstmt,Stringquery)throwsSQLException{stmt.executeUpdate(query);}/***关闭链接*/publicvoidclose()throwsSQLException{if(conn!=null)conn.close();}publicstaticvoidmain(Stringargs[])throwsException{DBAccessdb=newDBAccess();StringdbPath="E:\\study\\java\\workspace\\StoreHouse\\StoreHouse.mdb";Stringquery="select*fromManager";Statementstmt=db.getStatement(dbPath);ResultSetrs=db.executeQuery(stmt,query);while(rs.next()){System.out.println(rs.getString(1)+"\t"+rs.getString(2)+"\t"+rs.getString(3)+"\t"+rs.getString(4)+"\t"+rs.getString(5)+rs.getString(6)+rs.getString(7));}}}Enter.java文件importjavax.swing.*;importjava.awt.event.*;importjava.awt.*;importjava.sql.ResultSet;importjava.sql.Statement;publicclassEnterimplementsActionListener{ privateJFrameframe; privateJButtonenterButton; privateJButtonresetButton; privateJRadioButtonradioButton1; privateJRadioButtonradioButton2; privateJTextFieldnameText; privateJPasswordFieldpasswordText; publicstaticbooleanisManager=false; publicEnter(){ frame=newJFrame("仓库管理系统登录界面"); enterButton=newJButton("登录"); resetButton=newJButton("重置"); JLabellabel1=newJLabel("用户名:"); JLabellabel2=newJLabel("密码:"); JLabellabel3=newJLabel("登录方式:"); JLabellabel4=newJLabel(); JLabellabel5=newJLabel(); JLabellabel6=newJLabel(); JLabellabel7=newJLabel(); ImageIconicon=newImageIcon("E:\\study\\java\\workspace\\StoreHouse\\abc.jpg"); label4.setIcon(icon); label5.setText("华润品牌"); label7.setText("追求卓越"); label6.setText("中心软件,让您选择无悔的软件,感谢支持晓伟O(∩_∩)O~制作"); nameText=newJTextField(); passwordText=newJPasswordField(); //单选按钮 ButtonGroupgroup=newButtonGroup(); radioButton1=newJRadioButton("管理员",false); radioButton2=newJRadioButton("客户",true); group.add(radioButton1); group.add(radioButton2); /* *字体等格式设置 */ label1.setHorizontalAlignment(SwingConstants.CENTER); label2.setHorizontalAlignment(SwingConstants.CENTER); label3.setHorizontalAlignment(SwingConstants.CENTER); label5.setHorizontalAlignment(SwingConstants.CENTER); label6.setHorizontalAlignment(SwingConstants.CENTER); label1.setFont(newFont("宋体",Font.HANGING_BASELINE,30)); label2.setFont(newFont("宋体",Font.HANGING_BASELINE,30)); label5.setFont(newFont("华文行楷",Font.HANGING_BASELINE,40)); label7.setFont(newFont("华文行楷",Font.HANGING_BASELINE,40)); label5.setForeground(Color.red); label7.setForeground(Color.red); /* *局部布局 */ label4.setBounds(0,0,800,90); label5.setBounds(0,100,200,100); label7.setBounds(0,200,200,100); label6.setBounds(0,300,800,100); label1.setBounds(220,110,150,60); label2.setBounds(220,180,150,60); nameText.setBounds(400,120,200,40); passwordText.setBounds(400,190,200,40); label3.setBounds(200,250,150,40); radioButton1.setBounds(350,250,100,40); radioButton2.setBounds(350,300,100,40); enterButton.setBounds(460,270,150,40); resetButton.setBounds(620,270,150,40); /* *增加监听器 */ enterButton.addActionListener(this); resetButton.addActionListener(this); /* *整体布局 */ Containerctn=frame.getContentPane(); ctn.setLayout(null); ctn.add(label1); ctn.add(label2); ctn.add(nameText); ctn.add(passwordText); ctn.add(label3); ctn.add(label4); ctn.add(label5); ctn.add(label6); ctn.add(label7); ctn.add(radioButton1); ctn.add(radioButton2); ctn.add(enterButton); ctn.add(resetButton); frame.setVisible(true); frame.setBounds(400,200,800,400); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } publicvoidactionPerformed(ActionEvente){ booleantmp=false; Objectsource=e.getSource(); if(source==enterButton){ try{ DBAccessdb=newDBAccess(); StringdbPath="E:\\study\\java\\workspace\\StoreHouse\\StoreHouse.mdb"; Stringquery="select*fromHost"; Statementstmt=db.getStatement(dbPath); ResultSetrs=db.executeQuery(stmt,query); while(rs.next()){ if(nameText.getText().equals(rs.getString(1))&&passwordText.getText().equals(rs.getString(2))){ tmp=true; Selectselect=newSelect(); this.dispose(); break; } } stmt.close(); db.close(); }catch(Exceptionex){ ex.printStackTrace(); } if(tmp==false){ JOptionPane.showMessageDialog(null,"输入密码或用户名错误","登录信息",JOptionPane.INFORMATION_MESSAGE); nameText.setText(""); passwordText.setText(""); } }elseif(source==resetButton){ nameText.setText(""); passwordText.setText(""); }elseif(source==radioButton1){ isManager=true; }elseif(source==radioButton2){ isManager=false; } } publicvoiddispose(){ this.frame.dispose(); } publicstaticbooleanisManager(){ returnisManager; } publicstaticvoidmain(Stringargs[]){ Entertest=newEnter(); }}GetDBInfo.java文件importjava.sql.*;importjava.util.Vector;importjava.sql.DriverManager;importjava.sql.ResultSet;importjava.sql.ResultSetMetaData;importjava.sql.SQLException;importjava.sql.Statement;importjavax.swing.JOptionPane;publicclassGetDBInfo{ privateVector<Vector<String>>rows; privateVectorcolumnHeads; //构造函数 publicGetDBInfo(StringDBInfo,StringselStr){ try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Stringdburl="jdbc:odbc:driver={MicrosoftAccessDriver(*.mdb)};"+"DBQ="+DBInfo;//此为NO-DSN方式 Connectionconn=DriverManager.getConnection(dburl); Statementstate=conn.createStatement(); ResultSetrs=state.executeQuery(selStr); if(!(rs.next()))//判断数据库中是否有内容 { JOptionPane.showMessageDialog(null,"结果集中无记录","无记录",JOptionPane.INFORMATION_MESSAGE); } ResultSetMetaDatarsmd=rs.getMetaData();//获得结果集列属性值 rows=newVector(); columnHeads=newVector(); for(inti=1;i<=rsmd.getColumnCount();i++){ columnHeads.addElement(rsmd.getColumnName(i));//添加列名 } do{ rows.addElement(getNextRow(rs,rsmd));//添加表行值 }while(rs.next()); rs.close(); state.close(); }catch(Exceptione){ e.printStackTrace(); } } //获取表头VolumnHeads publicVectorgetColumnHeads(){ returncolumnHeads; } //获取表中内容 publicVectorgetRows(){ returnrows; } //取得表行的值方法 privateVectorgetNextRow(ResultSetrs,ResultSetMetaDatarsmd)throwsSQLException{ Vector<String>currentRow=newVector(); for(inti=1;i<=rsmd.getColumnCount();i++){ currentRow.addElement(rs.getString(i)); } returncurrentRow; } //更新数据库publicvoidexecuteUpdate(Statementstmt,Stringquery)throwsSQLException{stmt.executeUpdate(query);} publicstaticvoidmain(Stringargs[]){ GetDBInfotest=newGetDBInfo("E:\\study\\java\\workspace\\StoreHouse\\StoreHouse.mdb","select*fromPutIn"); System.out.println(test.getRows()); System.out.println(test.getColumnHeads()); }}InStoreHouse.java文件importjava.awt.event.*;importjava.awt.*;importjava.sql.Statement;importjava.text.SimpleDateFormat;importjava.util.Date;importjavax.swing.*;publicclassInStoreHouseimplementsActionListener{ privateJFrameframe; privateJTextFieldtext1; privateJTextFieldtext2; privateJTextFieldtext3; privateJTextFieldtext4; privateJTextFieldtext5; privateJTextFieldtext6; privateJTextFieldtext7; privateJTextFieldtext8; privateJTextFieldtext9; privateJTextFieldtext10; privateJTextFieldtext11; privateJTextFieldinfoText; privateJButtonokButton; privateJButtonbackButton; privatestaticfinalStringYYYMMDDHHMMSS="yyyy/MM/ddHH:mm:ss"; publicInStoreHouse(){ frame=newJFrame("商品入库登记"); text1=newJTextField(); text2=newJTextField(); text3=newJTextField(); text4=newJTextField(); text5=newJTextField(); text6=newJTextField(); text7=newJTextField(); text8=newJTextField(); text9=newJTextField(); text10=newJTextField(); text11=newJTextField(); infoText=newJTextField(); okButton=newJButton("确定"); backButton=newJButton("返回主菜单"); JLabelinfoLabel=newJLabel("填写信息:"); JLabellabel1=newJLabel("编号"); JLabellabel2=newJLabel("名称"); JLabellabel3=newJLabel("数量"); JLabellabel4=newJLabel("价格"); JLabellabel5=newJLabel("规格"); JLabellabel6=newJLabel("体积"); JLabellabel7=newJLabel("重量"); JLabellabel8=newJLabel("颜色"); JLabellabel9=newJLabel("产地"); JLabellabel10=newJLabel("种类"); JLabellabel11=newJLabel("管理员编号"); //颜色格式设置 infoLabel.setFont(newFont("仿宋",Font.CENTER_BASELINE,20)); label1.setFont(newFont("仿宋",Font.CENTER_BASELINE,15)); label1.setHorizontalAlignment(SwingConstants.CENTER); text1.setBackground(Color.lightGray); label2.setFont(newFont("仿宋",Font.CENTER_BASELINE,15)); label2.setHorizontalAlignment(SwingConstants.CENTER); text2.setBackground(Color.lightGray); label3.setFont(newFont("仿宋",Font.CENTER_BASELINE,15)); label3.setHorizontalAlignment(SwingConstants.CENTER); text3.setBackground(Color.lightGray); label4.setFont(newFont("仿宋",Font.CENTER_BASELINE,15)); label4.setHorizontalAlignment(SwingConstants.CENTER); text4.setBackground(Color.lightGray); label5.setFont(newFont("仿宋",Font.CENTER_BASELINE,15)); label5.setHorizontalAlignment(SwingConstants.CENTER); text5.setBackground(Color.lightGray); label6.setFont(newFont("仿宋",Font.CENTER_BASELINE,15)); label6.setHorizontalAlignment(SwingConstants.CENTER); text6.setBackground(Color.lightGray); label7.setFont(newFont("仿宋",Font.CENTER_BASELINE,15)); label7.setHorizontalAlignment(SwingConstants.CENTER); text7.setBackground(Color.lightGray); label8.setFont(newFont("仿宋",Font.CENTER_BASELINE,15)); label8.setHorizontalAlignment(SwingConstants.CENTER); text8.setBackground(Color.lightGray); label9.setFont(newFont("仿宋",Font.CENTER_BASELINE,15)); label9.setHorizontalAlignment(SwingConstants.CENTER); text9.setBackground(Color.lightGray); label10.setFont(newFont("仿宋",Font.CENTER_BASELINE,15)); text10.setBackground(Color.lightGray); label11.setFont(newFont("仿宋",Font.CENTER_BASELINE,15)); text11.setBackground(Color.lightGray); // infoLabel.setBounds(10,10,120,30); label1.setBounds(40,40,80,30); text1.setBounds(140,40,140,30); label2.setBounds(360,40,80,30); text2.setBounds(460,40,140,30); label3.setBounds(40,100,80,30); text3.setBounds(140,100,140,30); label4.setBounds(360,100,80,30); text4.setBounds(460,100,140,30); label5.setBounds(40,160,80,30); text5.setBounds(140,160,140,30); label6.setBounds(360,160,80,30); text6.setBounds(460,160,140,30); label7.setBounds(40,220,80,30); text7.setBounds(140,220,140,30); label8.setBounds(360,220,80,30); text8.setBounds(460,220,140,30); label9.setBounds(40,280,80,30); text9.setBounds(140,280,140,30); label10.setBounds(650,40,80,30); text10.setBounds(650,100,140,30); label11.setBounds(650,160,80,30); text11.setBounds(650,220,140,30); infoText.setBounds(360,280,360,30); okButton.setBounds(360,320,150,30); backButton.setBounds(570,320,150,30); okButton.addActionListener(this); backButton.addActionListener(this); //整体布局 Containerctn=frame.getContentPane(); ctn.setLayout(null); ctn.add(infoLabel); ctn.add(label1); ctn.add(text1); ctn.add(label2); ctn.add(text2); ctn.add(label3); ctn.add(text3); ctn.add(label4); ctn.add(text4); ctn.add(label5); ctn.add(text5); ctn.add(label6); ctn.add(text6); ctn.add(label7); ctn.add(text7); ctn.add(label8); ctn.add(text8); ctn.add(label9); ctn.add(text9); ctn.add(label10); ctn.add(text10); ctn.add(label11); ctn.add(text11); ctn.add(infoText); ctn.add(okButton); ctn.add(backButton); frame.setVisible(true); // frame.setResizable(false); frame.setBounds(400,200,800,400); frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); System.out.println(getSQL()); } //SQL语句生成 publicStringgetSQL(){ Stringtem=null; tem="insertintoGoods"+ "values"+ "("+"'"+text1.getText()+"'"+","+"'"+text2.getText()+"'"+"," +"'"+text10.getText()+"'"+","+text3.getText()+"," +text4.getText()+","+"'"+text5.getText()+"'"+","+text6.getText()+"," +text7.getText()+","+"'"+text8.getText()+"'"+"," +"'"+text9.getText()+"'"+","+"'"+inHouseID()+"'"+")"; returntem; } publicStringinsertTime(){ Stringtmp=null; DatenowDate=newDate(); SimpleDateFormatsf=newSimpleDateFormat(YYYMMDDHHMMSS); tmp=sf.format(nowDate).toString(); returntmp; } publicStringinHouseID(){ returninsertTime()+text1.getText(); } publicStringinsertSQL(){ Stringtmp=null; tmp="insertintoPutIn" +"values" +"("+"'"+inHouseID()+"'"+"," +"'"+text11.getText()+"'"+"," +"'"+insertTime()+"'"+")"; returntmp; } publicvoidclear(){ text1.setText(""); text2.setText(""); text3.setText(""); text4.setText(""); text5.setText(""); text6.setText(""); text7.setText(""); text8.setText(""); text9.setText(""); text10.setText(""); } publicvoidactionPerformed(ActionEvente){Objectsource=e.getSource();if(source==okButton){ try{ DBAccessdb=newDBAccess(); StringdbPath="E:\\study\\java\\workspace\\StoreHouse\\StoreHouse.mdb"; Statementstmt=db.getStatement(dbPath); Stringquery=getSQL(); db.executeUpdate(stmt,query); query=insertSQL(); db.executeUpdate(stmt,query); stmt.close(); db.close(); infoText.setText("存储成功"); clear(); }catch(Exceptionex){ ex.printStackTrace(); }}elseif(source==backButton){ frame.dispose(); newSelect(); } } publicstaticvoidmain(Stringargs[]){ InStoreHousetest=newInStoreHouse(); }}ManagerInfo.java文件importjava.awt.*;importjavax.swing.*;importjavax.swing.table.DefaultTableModel;importjava.awt.event.*;importjava.sql.ResultSet;importjava.sql.Statement;importjava.util.Vector;publicclassManagerInfoimplementsActionListener{ privateJFrameframe; privateJTabbedPanetabbedPane; privateJLabellabel1; privateJLabellabel2; privateJLabellabel3; privateJPanelpanel1; privateJPanelpanel2; privateJPanelpanel3; privateJComboBoxageBox; privateJComboBoxworkAgeBox; privateJComboBoxpostionBox; privateJTextFieldtext21; privateJTextFieldtext22; privateJTextFieldtext23; privateJTextFieldtext24; privateJTextFieldtext25; privateJTextFieldtext26; privateJTextFieldtext27; privateJTextFieldtext28; privateJTextFieldtext31; privateJTextFieldtext32; privateJButtonbutton11; privateJButtonbutton12; privateJButtonbutton21; privateJButtonbutton31; privateJButtonbackButton; privateJTabletable; privateVectorrows;//表行值 privateVectorcolumnHeads;//表列名 privateDefaultTableModelmodel; privateJScrollPanejsp; private Stringstr1=null,str2=null,str3=null;//查询使用 publicManagerInfo(){ frame=newJFrame("管理员信息查询"); tabbedPane=newJTabbedPane(); label1=newJLabel(); label2=newJLabel(); label3=newJLabel(); panel1=newJPanel(); panel2=newJPanel(); panel3=newJPanel(); panel1.add(label1); panel2.add(label2); panel3.add(label3); tabbedPane.addTab("查询信息",null,panel1,"label1"); tabbedPane.addTab("录入信息",panel2); tabbe
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 计税基础施工方案
- 二零二五版电商直播团队店面营业员合作协议范本3篇
- 2025年度个人旅游费用欠款合同样本3篇
- 皮带廊施工方案
- 墙裙油漆施工方案
- 白洋潮课程设计
- 庆春隧道施工方案
- 河道景观道路施工方案
- 2025年新能源储能技术投资入股分红合同4篇
- 锥齿传动轴课程设计
- 2025届北京巿通州区英语高三上期末综合测试试题含解析
- 公婆赠予儿媳妇的房产协议书(2篇)
- 煤炭行业智能化煤炭筛分与洗选方案
- 2024年机修钳工(初级)考试题库附答案
- Unit 5 同步练习人教版2024七年级英语上册
- 矽尘对神经系统的影响研究
- 分润模式合同模板
- 海南省汽车租赁合同
- 2024年长春医学高等专科学校单招职业适应性测试题库必考题
- (正式版)SHT 3046-2024 石油化工立式圆筒形钢制焊接储罐设计规范
- 2023年山东济南市初中学业水平考试地理试卷真题(答案详解)
评论
0/150
提交评论