1 / 15

第七讲 程序设计综合运用(续)

第七讲 程序设计综合运用(续). 教学目的. 进一步加深对用户界面、事件驱动模式、数据库连接和访问等思路和方法的理解。 学习查询数据库中的表,并保存和使用数据库管理系统返回的数据集合的基本方法。. 一个查询程序的功能描述. 给出一个窗体( form ) 用户输入查询关键字(比如:身份证号码) 单击“确认”按钮 程序响应,连接数据,并向数据库管理系统发送 SQL 查询命令( select ) 接收并保存数据库管理系统的回送结果(二维数据集)于 ResultSet 对象中 通过访问 ResultSet 对象,返回用户需要的数据 将用户需要的数据填入窗体的控件中。.

makaio
Download Presentation

第七讲 程序设计综合运用(续)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第七讲 程序设计综合运用(续)

  2. 教学目的 • 进一步加深对用户界面、事件驱动模式、数据库连接和访问等思路和方法的理解。 • 学习查询数据库中的表,并保存和使用数据库管理系统返回的数据集合的基本方法。

  3. 一个查询程序的功能描述 • 给出一个窗体(form) • 用户输入查询关键字(比如:身份证号码) • 单击“确认”按钮 • 程序响应,连接数据,并向数据库管理系统发送SQL查询命令(select) • 接收并保存数据库管理系统的回送结果(二维数据集)于ResultSet对象中 • 通过访问ResultSet对象,返回用户需要的数据 • 将用户需要的数据填入窗体的控件中。

  4. 程序的构成 • JFrame子类的构造方法 • ActionListener的actionPerformed方法 • 异常处理结构 • 连接与访问数据库代码 • 访问ResultSet对象获取结果数据 • Main方法

  5. 代码结构 import 必要的包 public class A0602 extends JFrame implements ActionListener{ A0602(){ 构造方法体(窗体属性、窗体控件、注册监听器) } public void actionPerformed(ActionEvent event){ try{ 连接数据库和访问数据库 接收返回数据和展现返回数据 } catch (ClassNotFoundException e) System.out.println("加载数据库驱动异常"); catch (SQLException e) System.out.println("执行数据库操作异常"); } public static void main(String[] args){ new A0602() } }

  6. 连接和访问数据库部分(代码) String sql = "SELECT * FROM CUSTOMER WHERE CUSTOMER_ID='"+txtId.getText()+"'"; Connection conn = null; try { Class.forName("oracle.jdbc.driver.OracleDriver"); conn = DriverManager.getConnection ("jdbc:oracle:thin:@192.168.210.228:1521:orcl","stu10","swufe111"); Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery(sql); if(rs.next()){txtName.setText(rs.getString(2));} else{ txtName.setText("<查无记录>");} rs.close();stmt.close();conn.close();System.out.println("正常结束");} catch (ClassNotFoundException e){System.out.println("加载数据库驱动异常,请检查");} catch (SQLException e){System.out.println("执行数据库操作异常,SQL语句为:" +sql);}

  7. 一个用来专门说明ResultSet对象功能的程序 import java.sql.*; public class A060201{ public static void main(String[] args){ String sql = "SELECT * FROM CUSTOMER"; Connection conn = null; try { Class.forName("oracle.jdbc.driver.OracleDriver"); conn = DriverManager.getConnection("jdbc:oracle:thin:@192.168.210.228:1521:orcl","stu10","swufe111"); Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery(sql); while(rs.next()){ System.out.println(rs.getString(1)+"\t"+rs.getString(2)+"\t"+rs.getString(5)); } rs.close(); stmt.close(); conn.close(); System.out.println("正常结束"); } catch (ClassNotFoundException e){System.out.println("加载数据库驱动异常,请检查");} catch (SQLException e){System.out.println("执行数据库操作异常,SQL语句为:" +sql);} } }

  8. 这个程序和上一个程序的功能完全一样 import java.sql.*; public class A060202{ public static void main(String[] args){ String sql = "SELECT * FROM CUSTOMER"; Connection conn = null; try { Class.forName("oracle.jdbc.driver.OracleDriver"); conn = DriverManager.getConnection("jdbc:oracle:thin:@192.168.210.228:1521:orcl","stu10","swufe111"); Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery(sql); while(rs.next()){ System.out.println(rs.getString("cust_name")+"\t"+rs.getString("customer_id")+"\t"+rs.getString("cust_city")+"\t"+rs.getString("CUST_GENDER")); } rs.close(); stmt.close(); conn.close(); System.out.println("正常结束"); } catch (ClassNotFoundException e){System.out.println("加载数据库驱动异常,请检查");} catch (SQLException e){System.out.println("执行数据库操作异常,SQL语句为:" +sql);} } }

  9. 作业 • 用户输入账号 • 单击“查询”按钮 • 查询该账户交易明细(deposit表) • 查到的数据在窗体的控件中显示出来

  10. 思考题 • 怎样通过对deposit表中的数据进行查询,进而统计出春节过后账户余额大幅增加的客户的年龄段,及分布情况? • 怎样通过对account表和deposit表中的数据进行查询,进而统计出对利率变化不太敏感的客户的年龄段,及分布情况?

More Related