




已阅读5页,还剩29页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
情境5产品库存管理系统用户管理及入库模块的实现,天马行空官方博客:,学习情境描述,实现产品库存管理系统的用户管理及入库模块。(1)使用Access实现系统的数据库(2)实现用户登录模块,完成用户管理模块:修改密码、添加用户、删除用户三种功能,包括用户界面及对数据库中用户表的修改。(3)实现入库模块的产品入库及入库管理两种功能。,入库模块功能界面,用户管理模块功能界面,学习情境描述,添加用户功能界面,修改密码功能界面,删除用户功能界面,学习情境描述,产品入库功能界面,入库管理功能界面,所需知识,Java连接数据库的两种方法;数据库编程的主要步骤;sql包中主要接口的使用;,重点及难点,数据库编程的主要步骤数据库的各种操作,能力目标,培养学生进行实现数据库编程的基本技能、阅读代码的能力、程序调试能力,养成良好的编码风格培养学生英语阅读能力和技术创新能力培养学生的自学能力、知识的融会贯通能力和动手实践能力,从键盘输入一个double型的数据,若不小于0,则给出它的平方根,若小于0,则输出提示信息“输出错误”。,实战:,Java数据库应用程序设计,数据库应用程序设计,客户机/服务器应用程序,ODBC,JDBC,两个常用的API,数据库,执行SQL语句,检索查询结果,ODBC,数据库,客户机/服务器GUI应用程序,ODBC(开放式数据库连接)(Microsoft提供),插入,删除,修改,应用程序编程接口,查询,JDBC,JDBC(Java数据库连接)(sun公司提供),Java应用程序编程接口,Java应用程序,数据库,插入,修改,删除,查询,JDBC体系结构,应用层,Driver,Statement,ResultSet,Connection,各接口,驱动层,java.sql包,java.sql包,Java连接数据库的两种方式,JDBC-ODBC桥接器JDBC通过JDBCODBC桥来将JDBCAPI转换成ODBCAPI,进而通过ODBC来存取数据库。使用某种数据库的专用驱动程序,ODBC数据源配置,双击,实战,使用下面两种方式实现JDBC与Access数据库的相连:配置ODBC数据源。下载并安装Access数据库专用驱动程序,,任务1,修改情境3中的用户登陆模块。要求:(1)创建user表,其中存放产品库存管理系统所有已注册用户信息;(2)若输入的用户名在user表中存在,且密码正确,则系统登陆成功,进入主界面;否则,弹出提示对话框。,Java连接数据库的步骤,任务4:实现,importjava.sql.DriverManager;importjava.sql.Connection;importjava.sql.ResultSet;importjava.sql.Statement;importjava.sql.SQLException;.classButtonListenerimplementsActionListenerpublicvoidactionPerformed(ActionEvente)if(i=3)|(e.getSource()=b2)f.disable();elseStringusername=null;Stringpassword=null;,导入java.sql包,JDBC查询,SQL查询字符串,executeQuery()方法,作为参数传递,ResultSet,返回查询数据,select*fromuser;,使用SQL语句,查询可编写为:,Stringstr=“select*fromuser;Statementstmt=con.createStatement();ResultSetrs=stmt.executeQuery(str);,使用JDBC编写此查询,则代码为:,Statement接口,结果集-ResultSet,ResultSet对象完全依赖于Statement和Connection对象每次执行SQL语句时,都会用新的结果重写结果集当相关的Statement关闭时,ResultSet对象会自动关闭,Next(),get(),此方法将光标从当前位置下移一行,从ResultSet对象返回数据,结果集的类型,可滚动,不可滚动,光标仅向前移动,光标可前后移动,也可移动至与当前位置相对的某一行,如果对数据库做了更改,则新值是可见的,结果集,TYPE_SCROLL_INSENSITIVE,TYPE_SCROLL_SENSITIVE,TYPE_FORWARD_ONLY,实战,完成用户登录界面,JDBC插入、删除、修改,SQL插入(删除、修改)字符串,executeUpdate()方法,作为参数传递,返回本次操作影响的数据行行数,insertintouservalues(aaa,123);,使用SQL语句,插入可编写为:,Stringstr=“insertintouservalues(aaa,123);Statementaccess=con.createStatement();access.executeUpdate(str);,使用JDBC编写此插入,则代码为:,Statement接口,复习:sql删除、修改操作语句,PreparedStatement接口3-1,PreparedStatement接口(预编译的SQL语句),PreparedStatement用于提高运行时效率,执行PreparedStatement对象比执行Statement对象快,Statement接口,PreparedStatement接口3-2,它演示了PreparedStatement的用法,演示:示例5,/*CourseAppl*/importjava.sql.SQLException;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.Statement;importjava.sql.ResultSet;importjava.sql.PreparedStatement;/*这个类演示SQL中PreparedStatement的用法*/classCourseApplprivateConnectioncon;privateStringurl;privateStringserverName;privateStringportNumber;privateStringdatabaseName;privateStringuserName;privateStringpassword;privateStringsql;,CourseAppl()url=jdbc:microsoft:sqlserver:/;serverName=“localhost;portNumber=1433;databaseName=“test;userName=“sa;password=“sa;privateStringgetConnectionUrl()returnurl+serverName+:+portNumber+;databaseName=+databaseName+;privatejava.sql.ConnectiongetConnection()tryClass.forName(com.microsoft.jdbc.sqlserver.SQLServerDriver);con=DriverManager.getConnection(getConnectionUrl(),userName,password);if(con!=null)System.out.println(连接成功!);catch(Exceptione)e.printStackTrace();System.out.println(getConnection()内的错误跟踪:+e.getMessage();returncon;,publicvoiddisplay()trycon=getConnection();PreparedStatementpstmt=con.prepareStatement(UPDATEfriendsSETsalary=?WHEREnamelike?);pstmt.setInt(1,10000);pstmt.setString(2,李四);pstmt.executeUpdate();System.out.println(“记录已更新!);Statements=con.createStatement();Stringsql=SELECT*FROMfriends;ResultSetrs=s.executeQuery(sql);while(rs.next()System.out.println();System.out.print(rs.getInt(1)+);System.out.println(rs.getInt(5);catch(SQLExceptionce)System.out.println(ce);publicstaticvoidmain(Stringargs)CourseApplretObj=newCourseAppl();retObj.display();,PreparedStatement接口3-3,它演示在基于条件的SQL查询中如何使用PreparedStatement,其中条件在IN参数中给出,演示:示例6,importjava.sql.SQLException;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.ResultSet;importjava.sql.PreparedStatement;/*这个类演示在基于条件的SQL查询中使用PreparedStatement*/classRetrieveRecordsprivateConnectioncon;privateStringurl;privateStringserverName,portNumber,databaseName,userName;privateStringsql;RetrieveRecords()url=jdbc:microsoft:sqlserver:/;serverName=“localhost;portNumber=1433;databaseName=“test;userName=“sa;password=“sa;,privateStringgetConnectionUrl()returnurl+serverName+:+portNumber+;databaseName=+databaseName+;privatejava.sql.ConnectiongetConnection()tryClass.forName(com.microsoft.jdbc.sqlserver.SQLServerDriver);con=DriverManager.getConnection(getConnectionUrl(),userName,password);if(con!=null)System.out.println(连接成功!);catch(Exceptione)e.printStackTrace();System.out.println(“getConnection()内的错误跟踪:+e.getMessage();returncon;,publicvoiddisplay()trycon=getConnection();sql=select*fromFriendswhereSalary?;PreparedStatementpstmt=con.prepareStatement(sql,ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);pstmt.setInt(1,5000);ResultSetrs=pstmt.executeQuery();while(rs.next()System.out.print(rs.getString(1)+t);System.out.print(rs.getString(2)+t);System.out.print(rs.getInt(3)+t);System.out.print(rs.getDate(4)+t);System.out.print(rs.getInt(5)+t);System.out.println();rs.close();pstmt.close();con.close();catch(SQLExceptionce)System.out.println(ce);/*这是main方法*/publicstaticvoidmain(Stringargs)RetrieveRecordsretRec=newRetrieveRecords();retRec.display();,实战,实现用户管理模块中的添加用户功能界面,在界面中输入新用户名及密码,点击“注册”,将新用户信息插入到user表中。(用户管理模块的其他功能在知识讲授完成之后,自主分析实现),使用JTable表格显示数据库查询结果,任务2,设计一个GUI界面,使用JTable表格显示user表中的数据信息。,任务2:实现,publicclassProductTableModelextendsAbstractTableModelprivateintn=0;privateConnectionconn;privateStatementaccess;privateResultSetrs;privateResultSetMetaDatarsmd;publicProductTableModel(Stringsql)tryClass.forName(sun.jdbc.odbc.JdbcOdbcDriver);Stringurl=jdbc:odbc:goods;conn=DriverManager.getConnection(url);access=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);setQuery(sql);catch(Exceptione)System.out.println(e.getMessage();,publicintgetColumnCount()tryreturnrsmd.getColumnCount();catch(Exceptione)System.out.println(e.getMessage();return0;publicintgetRowCount()tryreturnn;catch(Exceptione)System.out.println(e.getMessage();return0;,publicStringgetColumnName(intcol)tryreturnrsmd.getColumnName(col+1);catch(Exceptione)System.out.println(e.getMessage();return;publicObjectgetValueAt(introw,intcol)Objectob=null;tryrs.absolute(row+1);ob=rs.getObject(col+1);catch(Exceptione)System.out.println(e.getMessage();return
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年农村一二三产业融合与农村环境保护协同发展案例报告
- 全球汽车零部件行业新能源汽车产业链布局与市场拓展报告
- 2025下半年环保行业市政环保红利属性强化人工智能引领板块成长
- 当公司开始重视管理制度
- 学校行李人性化管理制度
- 卫生院返城人员管理制度
- syb培训财务管理制度
- 幼儿园师生手机管理制度
- 幼儿园食材库存管理制度
- 景区道路消防管理制度
- 出科小结口腔预防
- 关于残疾人法律知识讲座
- 国开2023秋《汉语通论》期末大作业题目二参考答案
- 宁波市高一数学试卷-含答案
- 水站运维服务投标方案(技术标)
- 医院培训课件:《自由体位在产程中的应用》
- 欧洲件专用形式发票模板
- 蛛网膜下腔出血护理查房蛛网膜下腔出血教学查房课件
- 开油锅红袖章制度
- 钢板仓气力输送粉煤灰系统安全操作规范
- 苏绣文化课件
评论
0/150
提交评论