应急预案案例分析

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

§12JDBC数据库编程基本知识§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数据库实现Java读取Access数据库。首先设置ODBC,在“控制面板”的“管理工具”中找到“数据源(ODBC)”,在出现的“ODBC数据源管理器”窗口中选择“系统DSN”(必须是系统DSN)。单击“添加”按钮,在“创建新数据源”对话框中选择“MicrosoftAccessDriver”,如图7-19所示。设置系统DSN选择Access驱动程序单击“完成”按钮,在数据源名称中输入“grade”,单击“选择”按钮,找到建立好的“person.mdb”文件(确保文件不是只读的),如图7-20所示。建立数据数据源建立完毕。读取的程序。Connectionconn=null;Statementstmt=null;ResultSetrs=null;try{Class.forName(sun.jdbc.odbc.JdbcOdbcDriver);}catch(ClassNotFoundExceptionce){out.println(ce.getMessage());}try{conn=DriverManager.getConnection(jdbc:odbc:grade,,);stmt=conn.createStatement();rs=stmt.executeQuery(SELECT*FROMgrade);while(rs.next()){System.out.print(rs.getString(学号));System.out.print(rs.getString(姓名));System.out.print(rs.getString(语文));System.out.print(rs.getString(数学));System.out.print(rs.getString(英语));System.out.println();}}catch(SQLExceptione){System.out.println(e.getMessage());}finally{stmt.close();conn.close();}3、数据库访问层,单独写成一个类或几个类(访问数据库代码)(1)、表语句示例:createtableusers(unamevarchar(10)primarykey,upwdvarchar(10));insertintousersvalues('admin','1234');insertintousersvalues('zhou','zhou');(2)、数据库访问层:packagedao;importjava.sql.*;publicclassCustomerDao{privateStringurl=jdbc:mysql://127.0.0.1:3306/support;privateStringdriver=com.mysql.jdbc.Driver;/*验证用户名与密码函数*/publicbooleanvalidate(Stringuname,Stringupwd){booleanflag=false;try{Class.forName(driver);Connectioncon=DriverManager.getConnection(url,root,4846);Statementcmd=con.createStatement();Stringsql=select*fromusers;//whereuname='+uname+';ResultSetrs=cmd.executeQuery(sql);if(rs.next())if(rs.getString(1).equals(upwd))flag=true;con.close();}catch(Exceptionex){flag=false;}returnflag;}}(3)、用户界面(UI层)调用packageui;importdao.CustomerDao;importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;publicclassMyFrmextendsJFrameimplementsActionListener{//从JFrame继承/*声明界面需要使用的控件*/JLabellbl_name=newJLabel(用户名);JLabellbl_pwd=newJLabel(密码);JTextFieldtxt_name=newJTextField();JPasswordFieldtxt_pwd=newJPasswordField();JButtonbtn_OK=newJButton(登陆);JButtonbtn_Cancel=newJButton(取消);CustomerDaodao=newCustomerDao();/*在构造函数中将控件放置在JFrame上*/publicMyFrm(){/*获取当前Frame的内容面板*/JPaneljp=(JPanel)this.getContentPane();/*设置内容面板的布局Layout*/jp.setLayout(newGridLayout(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.EXIT_ON_CLOSE);}publicstaticvoidmain(Stringarg[]){/*纯Java样式显示窗体*/JFrame.setDefaultLookAndFeelDecorated(true);/*实例化当前窗体类*/MyFrmfrm=newMyFrm();frm.setSize(200,200);frm.setVisible(true);}publicvoidactionPerformed(ActionEvente){if(e.getSource()==btn_OK){Stringuname=txt_name.getText().trim();Stringupwd=txt_pwd.getText().trim();/*调用数据库访问层函数,进行用户验证*/booleanflag=dao.validate(uname,upwd);if(flag){JOptionPane.showMessageDialog(this,用户验证通过);}else{JOptionPane.showMessageDialog(this,用户名或密码输入错误);}}}}§2.8.4实践编程1、在Access中有如下表和记录createtablestudent(snovarchar(10)primarykey,snamevarchar(20),sbirthvarchar(15));insertintostudentvalues('1001','zhou','1980-12-12');insertintostudentvalues('1002','zhou','1980-12-12');insertintostudentvalues('1003','zhou','1980-12-12');insertintostudentvalues('1004','zhou','1980-12-12');insertintostudentvalues('1005','zhou','1980-12-12');1)要求在Console中输出学生信息2)编写界面使用JTable输出学生表中的内容。packageEx7_1;importjava.sql.*;publicclassStudent1_Dao{publicstaticvoidmain(String[]args){try{Class.forName(sun.jdbc.odbc.JdbcOdbcDriver);Connectionconn=DriverManager.getConnection(jdbc:odbc:mydb);Statementstmt=conn.createStatement();ResultSetrs=stmt.executeQuery(SELECT*FROMstudent1);while(rs.next()){Stringsno=rs.getString(1);Stringsname=rs.getString(2);Stringsbrith=rs.getString(3);System.out.println(sno++sname++sbrith);}}catch(Exceptione){e.printStackTrace();}}}packageEx7_1;importjava.sql.*;publicclassStudent1_Dao{publicString[][]queryStudents(){String[][]rows=null;try{Class.forName(sun.jdbc.odbc.JdbcOdbcDriver);Connectionconn=DriverManager.getConnection(jdbc:odbc:mydb);Statementstmt=conn.createStatement();ResultSetrs=stmt.executeQuery(SELECTcount(*)FROMstudent1);rs.next();intc=rs.getInt(1);rows=newString[c][3];c=0;rs=stmt.executeQuery(SELECT*FROMstudent1);while(rs.next()){rows[c][0]=rs.getString(1);rows[c][1]=rs.getString(2);rows[c][2]=rs.getString(3);c++;}conn.close();}catch(Exceptione){e.printStackTrace();}returnrows;}}packageEx7_1;importjavax.swing.*;importjava.awt.*;importjava.awt.event.*;importjavax.swing.table.DefaultTableModel;publicclassStudent1_FrmextendsJFrame{publicJTabletable=null;publicString[]cols={sno,sname,sbrith};Student1_DaoStudent1_Dao=newStudent1_Dao();publicStudent1_Frm(){JPaneljp=(JPanel)this.getContentPane();String[][]rows=Student1_Dao.queryStudents();JTabletable=newJTable(rows,cols);JScrollPanejsp_table=newJScrollPane(table);jp.add(jsp_table);table.setM

1 / 47
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功