《实验十二 JDBC 数据库编程(I).doc》由会员分享,可在线阅读,更多相关《实验十二 JDBC 数据库编程(I).doc(6页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、12 JDBC 数据库编程基本知识12.1实验目的、内容及性质理解和掌握 JDBC 的结构以及 JDBC 与数据库应用编成之间的关系,掌握 DriverManage 、 Connection 、 Ststement 等数据库类的常用方法。实验性质:综合、必做实验学时:4学时2.8.2问题及思考1、 什么是ODBC数据源,如何定义数据源?2、 什么是JDBC-ODBC桥3、 读写数据库基本步骤总结4、 什么是结果集,如何从结果集中读数据5、 几个不同的Statement命令对象的使用总结2.8.3实验指导一、JDBC数据库编程基本步骤1、利用ODBC-JDBC桥读取Access数据库 实现Jav
2、a读取Access数据库。首先设置ODBC,在“控制面板”的“管理工具”中找到“数据源(ODBC)”,在出现的“ODBC数据源管理器”窗口中选择“系统DSN”(必须是系统DSN)。单击“添加”按钮,在“创建新数据源”对话框中选择“Microsoft Access Driver”,如图7-19所示。设置系统DSN选择Access驱动程序 单击“完成”按钮,在数据源名称中输入“grade”,单击“选择”按钮,找到建立好的“person. mdb”文件(确保文件不是只读的),如图7-20所示。建立数据 数据源建立完毕。读取的程序。Connection conn = null;Statement st
3、mt = null;ResultSet rs = null;tryClass.forName(sun.jdbc.odbc.JdbcOdbcDriver);catch(ClassNotFoundException ce)out.println(ce.getMessage();tryconn=DriverManager.getConnection(jdbc:odbc:grade,);stmt=conn.createStatement();rs=stmt.executeQuery(SELECT * FROM grade);while(rs.next()System.out.print(rs.getS
4、tring(学号);System.out.print(rs.getString(姓名);System.out.print(rs.getString(语文);System.out.print(rs.getString(数学);System.out.print(rs.getString(英语);System.out.println();catch(SQLException e)System.out.println(e.getMessage();finallystmt.close();conn.close();2、数据库访问层,单独写成一个类或几个类(访问数据库代码)(1) 、表语句示例: crea
5、te table users( uname varchar(10) primary key, upwd varchar(10) ); insert into users values(admin,1234); insert into users values(zhou,zhou);(2)、数据库访问层: package dao; import java.sql.*; public class CustomerDao private String url=jdbc:mysql:/127.0.0.1:3306/support; private String driver=com.mysql.jdb
6、c.Driver; /*验证用户名与密码函数*/ public boolean validate(String uname,String upwd) boolean flag=false; tryClass.forName(driver); Connection con=DriverManager.getConnection(url,root,4846); Statement cmd=con.createStatement(); String sql= select * from users;/ where uname=+uname+; ResultSet rs=cmd.executeQuer
7、y(sql); if(rs.next() if(rs.getString(1).equals(upwd) flag=true; con.close(); catch(Exception ex) flag=false; return flag; (3)、用户界面(UI层)调用package ui;import dao.CustomerDao;import java.awt.*;import java.awt.event.*;import javax.swing.*;public class MyFrm extends JFrame implements ActionListener/从JFram
8、e继承 /*声明界面需要使用的控件*/ JLabel lbl_name =new JLabel(用户名); JLabel lbl_pwd =new JLabel(密码); JTextField txt_name=new JTextField(); JPasswordField txt_pwd=new JPasswordField(); JButton btn_OK=new JButton(登陆); JButton btn_Cancel=new JButton(取消); CustomerDao dao=new CustomerDao(); /*在构造函数中将控件放置在JFrame上*/ publ
9、ic MyFrm() /*获取当前Frame的内容面板*/ JPanel jp=(JPanel)this.getContentPane(); /*设置内容面板的布局 Layout*/ jp.setLayout(new GridLayout(3,2); jp.add(lbl_name);jp.add(txt_name); jp.add(lbl_pwd);jp.add(txt_pwd); jp.add(btn_OK);jp.add(btn_Cancel); btn_OK.addActionListener(this); this.setDefaultCloseOperation(JFrame.EX
10、IT_ON_CLOSE); public static void main(String arg) /*纯Java样式显示窗体*/ JFrame.setDefaultLookAndFeelDecorated(true); /*实例化当前窗体类*/ MyFrm frm=new MyFrm(); frm.setSize(200,200); frm.setVisible(true);public void actionPerformed(ActionEvent e) if(e.getSource()=btn_OK)String uname=txt_name.getText().trim();Stri
11、ng upwd=txt_pwd.getText().trim(); /*调用数据库访问层函数,进行用户验证*/boolean flag=dao.validate(uname, upwd);if(flag)JOptionPane.showMessageDialog(this, 用户验证通过);elseJOptionPane.showMessageDialog(this, 用户名或密码输入错误); 12.4实践编程1、 将讲义中的代码调试通过2、实现一个图书管理系统登录界面,请自行设计数据中的表,参考前面的实例按确定键,根据用户输入的数据到数据库中验证用户名和密码是否正确,正确则弹出主界面如下,错误则弹出消息框。3、编写一个学生类,有如下几个简单属性: 姓名、学号、性别、班级、生日、住址,该类中还有一个方法,addStudent()将学生基本信息录入到数据库中。 要求:可以使用Access 数据库,自行设计。 可以设计相应的界面进行数据录入4、在第3题基础上增加如下功能: (1) 可以按学号或姓名对学生查询。参见示例 (2) 可以对利用界面学生数据修改,修改结果更新到数据库。