(JAVA)产品库存管理系统(34)页

上传人:陈** 文档编号:189980923 上传时间:2023-02-25 格式:PPTX 页数:35 大小:752.22KB
收藏 版权申诉 举报 下载
(JAVA)产品库存管理系统(34)页_第1页
第1页 / 共35页
(JAVA)产品库存管理系统(34)页_第2页
第2页 / 共35页
(JAVA)产品库存管理系统(34)页_第3页
第3页 / 共35页
资源描述:

《(JAVA)产品库存管理系统(34)页》由会员分享,可在线阅读,更多相关《(JAVA)产品库存管理系统(34)页(35页珍藏版)》请在装配图网上搜索。

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接口接口结果集-ResultSetq ResultSet 对象完全依赖于 Statement 和Co

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

9、eUpdate()方法 作为参数传递返回本次操作影响的数据行行数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 语句)Prepa

10、redStatement 用于提高运行时效率执行 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.s

11、ql.PreparedStatement;/*这个类演示 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:sqlse

12、rver:/;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=D

13、riverManager.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(

14、UPDATE 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(

15、1)+);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.s

16、ql.Connection;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;RetrieveRec

17、ords()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.sq

18、lserver.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*fro

19、m Friends 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.getIn

20、t(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(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;

22、private 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)

23、System.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 r

24、smd.getColumnName(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

25、();conn.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;ProductTableMo

26、del tablemodel=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元,再显示加工资后的职工号、姓名和基本工资。下课了!下课了!演讲完毕,谢谢观看!

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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