




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、威威 海海 职职 业业 学学 院院 情境5 产品库存管理系统 用户管理及入库模块的实现 天马行空官方博客:http:/ ;QQ:1318241189 学习情境描述 实现产品库存管理系统的用户管理及入库模块。 (1)使用Access实现系统的数据库 (2)实现用户登录模块,完成用户管理模块:修改 密码、添加用户、删除用户三种功能,包括用户 界面及对数据库中用户表的修改。 (3)实现入库模块的产品入库及入库管理两种功能。 入库模块功能界面 用户管理模块功能界面 学习情境描述 添加用户功能界面 修改密码功能界面 删除用户功能界面 学习情境描述 产品入库功能界面 入库管理功能界面 所需知识 qJava
2、连接数据库的两种方法; q数据库编程的主要步骤; qsql包中主要接口的使用; 重点及难点 q数据库编程的主要步骤 q数据库的各种操作 能力目标 q培养学生进行实现数据库编程的基本技能、 阅读代码的能力、程序调试能力,养成良 好的编码风格 q培养学生英语阅读能力和技术创新能力 q培养学生的自学能力、知识的融会贯通能 力和动手实践能力 q从键盘输入一个double型的数据,若不小 于0,则给出它的平方根,若小于0,则输 出提示信息“输出错误”。 实战: Java数据库应用程序设计 数据库应用程序设计数据库应用程序设计 客户机/服务器 应用程序 ODBCJDBC 两个常用的API 数据库数据库 执
3、行 SQL 语句 检索查询结果 ODBC 数据库数据库 客户机/服务器 GUI应用程序 ODBC (开放式数据库连接) (Microsoft 提供) 插 入 删 除 修 改 应用程序编程接口 查询 JDBC JDBC (Java 数据库连接) (sun公司提供) Java 应用程序编 程接口 Java应用程序 数据库数据库 插 入修 改 删 除查询 JDBC 体系结构 应用层应用层 Driver StatementResultSet Connection 各接口 驱动层驱动层 java.sql 包 接口名 说明 Connection此接口表示与数据的连接 PreparedStatement此接
4、口用于执行预编译的 SQL 语句 ResultSet此接口表示了查询出来的数据库数据结果集 Statement此接口用于执行 SQL 语句并将数据检索到 ResultSet 中 java.sql 包 类名类名 说明说明 DriverManager此类用于加载和卸载各种驱动程序并建立与数据库的连接 Date此类包含将 SQL 日期格式转换成 Java 日期格式的各种方法 Time此类用于表示时间 TimeStamp此类通过添加纳秒字段为时间提供更高的精确度 Java连接数据库的两种方式连接数据库的两种方式 qJDBC-ODBC桥接器 JDBC通过JDBCODBC桥来将JDBC API转换成 OD
5、BC API,进而通过ODBC来存取数据库。 q使用某种数据库的专用驱动程序 ODBC数据源配置 双击 实战实战 使用下面两种方式实现JDBC与Access数据库的 相连: q配置ODBC数据源。 q下载并安装Access数据库专用驱动程序, 任务1 修改情境3中的用户登陆模块。 要求: (1)创建user表,其中存放产品库存管理系统 所有已注册用户信息; (2)若输入的用户名在user表中存在,且密码 正确,则系统登陆成功,进入主界面;否则, 弹出提示对话框。 Java连接数据库的步骤连接数据库的步骤 任务4:实现 import java.sql.DriverManager; import
6、java.sql.Connection; import java.sql.ResultSet; import java.sql.Statement; import java.sql.SQLException; . class ButtonListener implements ActionListener public void actionPerformed(ActionEvent e) if (i=3)|(e.getSource()=b2) f.disable(); else String username=null; String password=null; 导入 java.sql包
7、try Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); catch (ClassNotFoundException ce) System.out.println(ce); boolean t=false; try String url = jdbc:odbc:goods; Connection con = DriverManager.getConnection(url); Statement access = con.createStatement(); ResultSet rs=access.executeQuery(select * from us
8、er); while (rs.next() username=rs.getString(用户名用户名); password=rs.getString(密码密码); rs.close(); access.close(); con.close(); catch(SQLException e1) System.out.println(e1.getMessage(); 加载并注册驱动程序 创建三种 对象 关闭三种 对象 JDBC查询 SQL 查询字符串 executeQuery() 方法 作为参数传递 ResultSet 返回查询数据 select * from user; 使用 SQL 语句,查询可
9、编写为: String str = “select * from user; Statement stmt = con.createStatement(); ResultSet rs = stmt.executeQuery(str); 使用 JDBC 编写此查询,则代码为: Statement接口接口 结果集-ResultSet q ResultSet 对象完全依赖于 Statement 和Connection对象 q 每次执行 SQL 语句时,都会用新的结果重写结果集 q 当相关的 Statement 关闭时,ResultSet 对象会自动关闭 Next( )get() 此方法将光标从 当前
10、位置下移一行 从 ResultSet 对象返回数据 结果集的类型 可滚动不可滚动 光标仅向前移动 光标可前后移动,也可移动 至与当前位置相对的某一行 如果对数据库做了更改, 则新值是可见的 结果集结果集 TYPE_SCROLL_INSENSITIVE TYPE_SCROLL_SENSITIVE TYPE_FORWARD_ONLY 实战 q完成用户登录界面 JDBC插入、删除、修改 SQL 插入(删除、修改)字符串 executeUpdate() 方法 作为参数传递 返回本次操作影响的数据行行数 insert into user values(aaa,123) ; 使用 SQL 语句,插入可编写
11、为: String str = “insert into user values(aaa,123) ; Statement access = con.createStatement(); access.executeUpdate(str); 使用 JDBC 编写此插入,则代码为: Statement接口接口 复习:sql删除、 修改操作语句 PreparedStatement接口 3-1 PreparedStatement接口 (预编译的 SQL 语句) PreparedStatement 用于提高运行时效率 执行 PreparedStatement 对象比执行 Statement 对象快 S
12、tatement 接口接口 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.PreparedStatement; /* 这个类演示 SQL 中 PreparedStatem
13、ent 的用法*/ 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:/; serverName = “localhost; port
14、Number = 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 = Driv
15、erManager.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 = c
16、on.prepareStatement( 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()
17、System.out.println( ); System.out.print(rs.getInt(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,其
18、中条件在 IN 参数中给出 演示:示例 6 import java.sql.SQLException; import java.sql.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 s
19、erverName, portNumber, databaseName, userName; private String sql; RetrieveRecords() url = jdbc:microsoft:sqlserver:/; serverName = “localhost; portNumber = 1433; databaseName = “test; userName = “sa; password = “sa; private String getConnectionUrl() return url + serverName + : + portNumber + ;datab
20、aseName = + databaseName + ; private java.sql.Connection getConnection() try Class.forName(com.microsoft.jdbc.sqlserver.SQLServerDriver); con = DriverManager.getConnection( getConnectionUrl(), userName, password); if (con != null) System.out.println(连接成功!); catch (Exception e) e.printStackTrace(); S
21、ystem.out.println(“getConnection() 内的错误跟踪: + e.getMessage(); return con; public void display() try con = getConnection(); sql = select * from Friends where Salary ?; PreparedStatement pstmt = con.prepareStatement( sql, ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE); pstmt.setInt(1, 500
22、0); 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) + t); System.out.print(rs.getDate(4) + t); System.out.print(rs.getInt(5) + t); System.out.println( ); rs.close(); pstmt.close(); con.c
23、lose(); catch (SQLException ce) System.out.println(ce); /* 这是 main 方法*/ public static void main(String args) RetrieveRecords retRec = new RetrieveRecords(); retRec.display(); 实战实战 实现用户管理模块中的添加用户功能界面,在 界面中输入新用户名及密码,点击“注册”,将 新用户信息插入到user表中。 (用户管理模块的其他功能在知识讲授完成之后, 自主分析实现) 使用使用JTable表格显示数据库查询结果表格显示数据库查询
24、结果 任务2 设计一个GUI界面,使用JTable表格显示 user表中的数据信息。 任务2:实现 public class ProductTableModel extends AbstractTableModel private int n=0; private Connection conn; private Statement access; private ResultSet rs; private ResultSetMetaData rsmd; public ProductTableModel(String sql) try Class.forName(sun.jdbc.odbc.J
25、dbcOdbcDriver); String url = jdbc:odbc:goods; conn = DriverManager.getConnection(url); access = conn.createStatement( ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE); setQuery(sql); catch(Exception e) System.out.println(e.getMessage(); public int getColumnCount() try return rsmd.getColu
26、mnCount(); 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.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=r
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 企业信息安全体系的规划与建设研究
- 医疗行业的教育大数据应用前景展望
- 2024年重庆市綦江区万东镇公益性岗位招聘真题
- 2025年中国腰果曲奇行业投资前景及策略咨询研究报告
- 2025年中国育苗床行业市场调查、投资前景及策略咨询报告
- 2025年中国紫外线光管行业投资前景及策略咨询研究报告
- 2025年中国磷铜行业市场调查、投资前景及策略咨询报告
- 2025年中国白铜上下拉自动头拉链行业市场调查、投资前景及策略咨询报告
- 2025年中国电动机械式摩托车举升机行业投资前景及策略咨询研究报告
- 2025年中国涤纶(特多龙)运动袋行业市场调查、投资前景及策略咨询报告
- 带状疱疹培训试题及答案
- 人教版美术一年级下册《守护生命》课件
- 2025年湖南省常德市初中学校教学教研共同体中考二模道德与法治试卷(含答案)
- 衢州2025年浙江衢州市柯城区属事业单位招聘30人笔试历年参考题库附带答案详解
- 2024-2025学年沪教版(五四学制)(2024)初中英语六年级下册(全册)知识点归纳
- DB32T 5082-2025建筑工程消防施工质量验收标准
- 2017年辽宁省鞍山市中考化学试卷(解析)
- 电气工程及其自动化毕业设计 基于PLC的机械手控制系统设计
- 江苏省苏州市2025年中考历史考前押题卷(含答案)
- 宜兴市入湖河道综合整治工程报告书
- 学校“1530”安全教育记录表(2024年秋季全学期)
评论
0/150
提交评论