产品库存管理系统用户管理及入库模块的实现教材17132.pptx

上传人:zhang****gqing 文档编号:83300089 上传时间:2023-03-30 格式:PPTX 页数:35 大小:751.74KB
返回 下载 相关 举报
产品库存管理系统用户管理及入库模块的实现教材17132.pptx_第1页
第1页 / 共35页
产品库存管理系统用户管理及入库模块的实现教材17132.pptx_第2页
第2页 / 共35页
点击查看更多>>
资源描述

《产品库存管理系统用户管理及入库模块的实现教材17132.pptx》由会员分享,可在线阅读,更多相关《产品库存管理系统用户管理及入库模块的实现教材17132.pptx(35页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、威威 海海 职职 业业 学学 院院情境5 产品库存管理系统用户管理及入库模块的实现天马行空官方博客:http:/ q培养学生的自学能力、知识的融会贯通能力和动手实践能力 q从键盘输入一个double型的数据,若不小于0,则给出它的平方根,若小于0,则输出提示信息“输出错误”。实战:Java数据库应用程序设计数据库应用程序设计数据库应用程序设计 客户机/服务器应用程序 ODBCJDBC两个常用的API数据库数据库执行 SQL 语句检索查询结果 ODBC数据库数据库客户机/服务器 GUI应用程序ODBC(开放式数据库连接)(Microsoft 提供)插 入删 除修 改应用程序编程接口 查询 JDB

2、CJDBC(Java 数据库连接)(sun公司提供)Java 应用程序编程接口Java应用程序数据库数据库 插 入修 改删 除查询 JDBC 体系结构应用层应用层 Driver StatementResultSet Connection 各接口驱动层驱动层 java.sql 包接口名 说明 Connection此接口表示与数据的连接PreparedStatement此接口用于执行预编译的 SQL 语句 ResultSet此接口表示了查询出来的数据库数据结果集Statement此接口用于执行 SQL 语句并将数据检索到 ResultSet 中 java.sql 包类类名名 说明说明 Driver

3、Manager此类用于加载和卸载各种驱动程序并建立与数据库的连接Date此类包含将 SQL 日期格式转换成 Java 日期格式的各种方法Time此类用于表示时间TimeStamp此类通过添加纳秒字段为时间提供更高的精确度 Java连接数据库的两种方式连接数据库的两种方式 qJDBC-ODBC桥接器 JDBC通过JDBCODBC桥来将JDBC API转换成ODBC API,进而通过ODBC来存取数据库。q使用某种数据库的专用驱动程序 ODBC数据源配置双击实战实战 使用下面两种方式实现JDBC与Access数据库的相连:q配置ODBC数据源。q下载并安装Access数据库专用驱动程序,任务1修改

4、情境3中的用户登陆模块。要求:(1)创建user表,其中存放产品库存管理系统所有已注册用户信息;(2)若输入的用户名在user表中存在,且密码正确,则系统登陆成功,进入主界面;否则,弹出提示对话框。Java连接数据库的步骤连接数据库的步骤 任务4:实现import java.sql.DriverManager;import java.sql.Connection;import java.sql.ResultSet;import java.sql.Statement;import java.sql.SQLException;.class ButtonListener implements Act

5、ionListener public void actionPerformed(ActionEvent e)if(i=3)|(e.getSource()=b2)f.disable();else String username=null;String password=null;导入 java.sql包 try Class.forName(sun.jdbc.odbc.JdbcOdbcDriver);catch(ClassNotFoundException ce)System.out.println(ce);boolean t=false;try String url=jdbc:odbc:good

6、s;Connection con=DriverManager.getConnection(url);Statement access=con.createStatement();ResultSet rs=access.executeQuery(select*from user);while(rs.next()username=rs.getString(用户名用户名);password=rs.getString(密码密码);rs.close();access.close();con.close();catch(SQLException e1)System.out.println(e1.getMe

7、ssage();加载并注册驱动程序创建三种 对象关闭三种 对象JDBC查询SQL 查询字符串 executeQuery()方法 作为参数传递ResultSet 返回查询数据select*from user;使用 SQL 语句,查询可编写为:String str=“select*from user;Statement stmt=con.createStatement();ResultSet rs=stmt.executeQuery(str);使用 JDBC 编写此查询,则代码为:Statement接口接口结果集-ResultSetqResultSet 对象完全依赖于 Statement 和Con

8、nection对象q每次执行 SQL 语句时,都会用新的结果重写结果集q当相关的 Statement 关闭时,ResultSet 对象会自动关闭Next()get()此方法将光标从当前位置下移一行 从 ResultSet 对象返回数据 结果集的类型可滚动不可滚动光标仅向前移动光标可前后移动,也可移动至与当前位置相对的某一行如果对数据库做了更改,则新值是可见的结果集结果集 TYPE_SCROLL_INSENSITIVE TYPE_SCROLL_SENSITIVE TYPE_FORWARD_ONLY 实战q完成用户登录界面JDBC插入、删除、修改SQL 插入(删除、修改)字符串 executeUp

9、date()方法 作为参数传递返回本次操作影响的数据行行数insert into user values(aaa,123);使用 SQL 语句,插入可编写为:String str=“insert into user values(aaa,123);Statement access=con.createStatement();access.executeUpdate(str);使用 JDBC 编写此插入,则代码为:Statement接口接口复习:sql删除、修改操作语句PreparedStatement接口 3-1 PreparedStatement接口(预编译的 SQL 语句)Prepared

10、Statement 用于提高运行时效率执行 PreparedStatement 对象比执行 Statement 对象快Statement 接口接口PreparedStatement接口 3-2 q它演示了PreparedStatement 的用法演示:示例 5/*CourseAppl */import java.sql.SQLException;import java.sql.Connection;import java.sql.DriverManager;import java.sql.Statement;import java.sql.ResultSet;import java.sql.P

11、reparedStatement;/*这个类演示 SQL 中 PreparedStatement 的用法*/class CourseAppl private Connection con;private String url;private String serverName;private String portNumber;private String databaseName;private String userName;private String password;private String sql;CourseAppl()url=jdbc:microsoft:sqlserver

12、:/;serverName=“localhost;portNumber=1433;databaseName=“test;userName=“sa;password=“sa;private String getConnectionUrl()return url+serverName+:+portNumber +;databaseName=+databaseName+;private java.sql.Connection getConnection()try Class.forName(com.microsoft.jdbc.sqlserver.SQLServerDriver);con=Drive

13、rManager.getConnection(getConnectionUrl(),userName,password);if(con!=null)System.out.println(连接成功!);catch(Exception e)e.printStackTrace();System.out.println(getConnection()内的错误跟踪:+e.getMessage();return con;public void display()try con=getConnection();PreparedStatement pstmt=con.prepareStatement(UPDA

14、TE friends SET salary=?WHERE name like?);pstmt.setInt(1,10000);pstmt.setString(2,李四);pstmt.executeUpdate();System.out.println(“记录已更新!);Statement s=con.createStatement();String sql=SELECT*FROM friends;ResultSet rs=s.executeQuery(sql);while(rs.next()System.out.println();System.out.print(rs.getInt(1)+)

15、;System.out.println(rs.getInt(5);catch(SQLException ce)System.out.println(ce);public static void main(String args)CourseAppl retObj=new CourseAppl();retObj.display();PreparedStatement 接口 3-3 q它演示在基于条件的 SQL 查询中如何使用 PreparedStatement,其中条件在 IN 参数中给出演示:示例 6import java.sql.SQLException;import java.sql.Co

16、nnection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.PreparedStatement;/*这个类演示在基于条件的 SQL 查询中使用 PreparedStatement*/class RetrieveRecords private Connection con;private String url;private String serverName,portNumber,databaseName,userName;private String sql;RetrieveRecords(

17、)url=jdbc:microsoft:sqlserver:/;serverName=“localhost;portNumber=1433;databaseName=“test;userName=“sa;password=“sa;private String getConnectionUrl()return url+serverName+:+portNumber +;databaseName=+databaseName+;private java.sql.Connection getConnection()try Class.forName(com.microsoft.jdbc.sqlserv

18、er.SQLServerDriver);con=DriverManager.getConnection(getConnectionUrl(),userName,password);if(con!=null)System.out.println(连接成功!);catch(Exception e)e.printStackTrace();System.out.println(“getConnection()内的错误跟踪:+e.getMessage();return con;public void display()try con=getConnection();sql=select*from Fri

19、ends where Salary?;PreparedStatement pstmt=con.prepareStatement(sql,ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);pstmt.setInt(1,5000);ResultSet rs=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)+

20、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(SQLException ce)System.out.println(ce);/*这是 main 方法*/public static void main(String args)RetrieveRecords retRec=new RetrieveRecords();retRec.display();实战实战 实现用户管理模块中的

21、添加用户功能界面,在界面中输入新用户名及密码,点击“注册”,将新用户信息插入到user表中。(用户管理模块的其他功能在知识讲授完成之后,自主分析实现)使用使用JTable表格显示数据库查询结果表格显示数据库查询结果 任务2 设计一个GUI界面,使用JTable表格显示user表中的数据信息。任务2:实现public class ProductTableModel extends AbstractTableModelprivate int n=0;private Connection conn;private Statement access;private ResultSet rs;priva

22、te ResultSetMetaData rsmd;public ProductTableModel(String sql)try Class.forName(sun.jdbc.odbc.JdbcOdbcDriver);String url=jdbc:odbc:goods;conn=DriverManager.getConnection(url);access=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);setQuery(sql);catch(Exception e)Syste

23、m.out.println(e.getMessage();public int getColumnCount()tryreturn rsmd.getColumnCount();catch(Exception e)System.out.println(e.getMessage();return 0;public int getRowCount()try return n;catch(Exception e)System.out.println(e.getMessage();return 0;public String getColumnName(int col)try return rsmd.g

24、etColumnName(col+1);catch(Exception e)System.out.println(e.getMessage();return;public Object getValueAt(int row,int col)Object ob=null;try rs.absolute(row+1);ob=rs.getObject(col+1);catch(Exception e)System.out.println(e.getMessage();return ob;protected void finalize()try rs.close();access.close();co

25、nn.close();catch(Exception e)public void setQuery(String sql)try rs=access.executeQuery(sql);rsmd=rs.getMetaData();rs.last();n=rs.getRow();fireTableStructureChanged();catch(Exception e)System.out.println(e.getMessage();public static void main(String args)String s=select*from user;ProductTableModel t

26、ablemodel=new ProductTableModel(s);JTable table=new JTable(tablemodel);JFrame TableFrame=new JFrame(用户信息用户信息);Container c=TableFrame.getContentPane();JScrollPane jp=new JScrollPane(table);c.add(jp);TableFrame.setSize(300,200);TableFrame.setVisible(true);课下实战q编程:编写在数据库“职工”中创建一个具有如下数据的表名为“职工登记”的应用程序,并将创建的表显示到屏幕上。要求数据库的数据用人机对话的方式输入。q在上题创建的“职工登记”表中,将每个人的基本工资都加80元,再显示加工资后的职工号、姓名和基本工资。下课了!下课了!演讲完毕,谢谢观看!

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 施工组织

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁