面向对象程序设计JDB.ppt_第1页
面向对象程序设计JDB.ppt_第2页
面向对象程序设计JDB.ppt_第3页
面向对象程序设计JDB.ppt_第4页
面向对象程序设计JDB.ppt_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

JDBC 目标深刻理解JDBC的概念及JDBCAPI主要内容熟练掌握JDBC应用程序开发流程熟练掌握应用JDBC实现数据库记录的插入 删除和修改操作熟练掌握应用JDBC查询数据库记录 JDBC基础 JDBC概述在两层模型中 Javaapplet或应用程序将直接与数据库进行对话 图13 1JDBC数据库访问两层模型 在三层模型中 命令先是被发送到服务的 中间层 然后由它将SQL语句发送给数据库 JDBC数据库访问三层模型 使用JDBC与数据库建立连接JDBC是一种底层API 它可以直接调用SQL语句 也是构造高级API和数据库开发工具的基础 JDBC2 0中的类和接口包括如表11 1所示 表11 1JDBC2 0类和接口 DriverManager类DriverManager类是JDBC的管理层 作用于用户和驱动程序之间 它跟踪可用的驱动程序 并在数据库和相应驱动程序之间建立连接 使用JDBC ODBC桥驱动程序建立连接的语句如下 Class forName sun jdbc odbc JdbcOdbcDriver Stringurl jdbc odbc happychat DriverManager getConnection url sa Connection类Connection对象代表与数据库的连接 连接过程包括所执行的SQL语句和在该连接上所返回的结果 一个应用程序可与单个数据库有一个或多个连接 也可以与多个数据库有连接下面的语句打开一个与位于URL jdbc odbc happychat 的数据库的连接 所用的用户标识符为 sa 口令为 Stringurl jdbc odbc happychat Connectionconn DriverManager getConnection url sa Statement类Statement接口提供了三种执行SQL语句的方法 executeQuery executeUpdate和execute 使用哪一个方法由SQL语句所产生的内容决定 方法executeQuery用于产生单个结果集的语句 例如SELECT语句 方法executeUpdate用于执行INSERT UPDATE或DELETE语句以及SQLDDL 数据定义语言 语句 例如CREATETABLE和DROPTABLE INSERT UPDATE或DELETE语句的效果是修改表中零行或多行中的一列或多列 executeUpdate的返回值是一个整数 指示受影响的行数 即更新计数 对于CREATETABLE或DROPTABLE等不操作行的语句 executeUpdate的返回值总为零 方法execute用于执行返回多个结果集 多个更新计数或二者组合的语句 ResultSet类用于获得查询结果 ResultSet next方法用于移动到ResultSet中的下一行 使下一行成为当前行 结果集一般是一个表 其中有查询所返回的列标题及相应的值 执行SQL语句并输出结果集的语句如下 Statementstmt conn createStatement ResultSetrs stmt executeQuery SELECTu name u passFROMusers while rs next 打印当前行的值 Stringname r getString u name Stringpass r getString u pass System out println name pass 数据库操作过程 加载驱动程序通过DriverManager得到一个与数据库连接的句柄通过连接句柄绑定要执行的语句接收执行结果可选的对结果的处理关闭数据库连接 SQLServer2000DriverForJDBC驱动程序MicrosoftSQLServer2000DriverforJDBC是一种用以面向企业级Java环境提供具备高度可伸缩性与可靠性连通能力的Type4JDBC驱动程序 这种驱动程序为JDBC提供了通过具备Java支持能力的applet 应用程序或应用服务器访问SQLServer2000的能力 现在 Java开发人员可以利用这种能够通过Internet与企业内部网络提供高性能点对点n层SQLServer2000访问能力的驱动程序来充分享受SQLServer2000所提供的丰富功能与强壮特性 获得程序从微软的网站上下载驱动程序 SQLServer2000ForJDBC驱动程序 然后将它安装好 比如安装目录是D SQLDriverForJDBC 配置环境修改环境变量中的CLASSPATH 把SQLServer2000ForJDBC驱动程序安装目录下的如下目录追加到CLASSPATH中去 D SQLDriverForJDBC lib msbase jar D SQLDriverForJDBC lib mssqlserver jar D SQLDriverForJDBC msutil jar 一旦SQLServer2000DriverForJDBC驱动程序安装配置好 即可用于SQLServer2000的数据库访问 JDBC的查询发送机制 Statement接口Statement接口用于执行不带参数的简单SQL语句 ReparedStatement接口和Callablestatement接口都是继承了Statement接口 创建一个Statement类的实例的方法很简单 只需调用类Connection中的方法createStatement 就可以了 一般形式如下 Connectioncon DriverManager getConnection URL user password Statementsm con createStatement 创建了Statement类的实例后 可调用其中的方法执行SQL语句 JDBC中提供了三种执行方法 它们是execute executeQuery executeUpdate PreparedStatement接口PreparedStatement类是Statement类的子类 它直接继承并重载了Statement的方法 PrepardStatement类有两大特点 一个PreparedStatement的对象中包含的SQL语句是预编译的 因此当需要多次执行同一条SQL语句时 利用PreparedStatement传送这条SQL语句可以大大应用扩展执行效率 PreparedStatement的对象所包含的SQL语句中允许有一个或多个输入参数 创建PreparedStatement对象创建一个PreparedStatement类的对象也只需在建立连接后 调用Connection类中的方法prepareStatement 创建一个PreparedStatement的对象 其中包含一条带参数的SQL语句 一般形式如下 PreparedStatementpsm con prepareStatement INSERTINTOusers u name u pass VALUES 输入参数的赋值对上例 如果将第一个参数设为 zhao 第二个参数设为 zhao0212 就会在 users 表中插入的记录一条新的记录 实现该功能的语句为 psm setString 1 zhao psm setString 2 zhao0212 应用实例 建立数据库Users表 保存用户注册信息 包括用户名 U Name 用户密码 U Pass 性别 U Gender 年龄 U Age 和电子邮件地址 U Email History表 保存用户聊天信息 包括聊天编号 H No 聊天用户 H User 聊天时间 H Time 和聊天内容 U Content 创建数据库和表的脚本如下 CREATEDATABASEHappyChatGOUSEHappyChatCREATETABLEusers U NameVARCHAR 16 PRIMARYKEY U PassVARCHAR 16 NOTNULL U GenderCHAR 2 NOTNULL U AgeINTNOTNULL U EmailVARCHAR 20 NOTNULL CREATETABLEhistory H NoINTIDENTITY 1 1 H UserVARCHAR 16 NOTNULL H TimeDATETIMENOTNULL U ContentVARCHAR 60 CREATEPROCdelRecord nameCHAR 16 ASDELETEFROMUsersWHEREU name name 插入 修改和删除操作JDBC插入 修改和删除数据库数据 JDBC插入 修改和删除演示程序importjavax swing importjava awt importjava awt event importjava io importjava sql publicclassJdbcModifyDemoextendsJFrameimplementsActionListener JPanelpnlMain JLabellblName lblPass JTextFieldtxtName txtPass JButtonbtnInsert btnSave btnUpdate btnDelete publicJdbcModifyDemo super JDBC插入 修改和删除演示 pnlMain newJPanel lblName newJLabel 用户名 lblPass newJLabel 密码 txtName newJTextField 16 txtPass newJTextField 16 btnInsert newJButton 插入 btnInsert addActionListener this btnSave newJButton 保存 btnSave setEnabled false btnSave addActionListener this btnUpdate newJButton 修改 btnUpdate addActionListener this btnDelete newJButton 删除 btnDelete addActionListener this pnlMain add lblName pnlMain add txtName pnlMain add lblPass pnlMain add txtPass pnlMain add btnInsert pnlMain add btnSave pnlMain add btnUpdate pnlMain add btnDelete setContentPane pnlMain setSize 250 150 setVisible true publicvoidactionPerformed ActionEventae if ae getSource btnInsert initComponent if ae getSource btnSave saveRecord if ae getSource btnUpdate updateRecord if ae getSource btnDelete intintChoice JOptionPane showConfirmDialog null 真的要删除该记录吗 确认删除 JOptionPane YES NO OPTION if intChoice JOptionPane YES OPTION deleteRecord publicConnectionopenDatabase Stringurl jdbc odbc HappyChat try Class forName sun jdbc odbc JdbcOdbcDriver Connectionconn DriverManager getConnection url sa returnconn catch Exceptione JOptionPane showMessageDialog null 连接数据库失败 returnnull publicvoidinitComponent txtName setText txtPass setText btnSave setEnabled true publicvoidsaveRecord try PreparedStatementpsm openDatabase prepareStatement Insertusers U Name U Pass values psm setString 1 txtName getText psm setString 2 txtPass getText psm executeUpdate JOptionPane showMessageDialog null 记录保存成功 psm close catch Exceptione JOptionPane showMessageDialog null 记录插入失败 publicvoidupdateRecord try Statementsm openDatabase createStatement StringstrUpdate updateuserssetU pass txtPass getText whereU name txtName getText sm executeUpdate strUpdate JOptionPane showMessageDialog null 记录修改成功 sm close catch Exceptione JOptionPane showMessageDialog null 记录修改失败 publicvoiddeleteRecord try CallableStatementcsm openDatabase prepareCall calldelRecord csm setString 1 txtName getText csm execute JOptionPane showMessageDialog null 记录删除成功 csm close catch Exceptione JOptionPane showMessageDialog null 记录删除失败 publicstaticvoidmain Stringargs newJdbcModifyDemo 查询数据库使用JDBC查询数据库内容 JDBC查询数据库演示程序importjava awt importjava awt event importjava sql importjavax swing publicclassJdbcQueryDemoextendsFrameimplementsActionListener JLabellblName JTextAreataResult JPanelpnlMain JTextFieldtxtName JButtonbtnQuery publicJdbcQueryDemo setLayout newBorderLayout lblName newJLabel 用户名 taResult newJTextArea btnQuery newJButton 查询 txtName newJTextField 12 pnlMain newJPanel pnlMain setBackground Color ORANGE pnlMain add lblName pnlMain add txtName pnlMain add btnQuery add North pnlMain add Center taResult taResult setEditable false btnQuery addActionListener this addWindowListener newWindowAdapter publicvoidwindowClosing WindowEvente System exit 0 setSize 300 200 setTitle 聊天信息查询 setVisible true publicvoidactionPerformed ActionEventevt if evt getSource btnQuery taResult setFont newFont 宋体 Font PLAIN 14 taResult setText 查询结果 taResult append n 编号 姓名 聊天时间 聊天内容 n taResult append n try dispalyHistory catch SQLExceptione JOptionPane showMessageDialog null 数据查询错误 publicvoiddispalyHistory throwsSQLException Stringbh yhm ltsj ltnr StringstrQuery try Class forName sun jdbc odbc JdbcOdbcDriver catch ClassNotFoundExceptione JOptionPane showMessageDialog null 驱动程序错误 return Connectioncon DriverManager getConnection jdbc odbc HappyChat Statementsql con createStatement strQuery select fromhistorywhereH user txtName getText trim ResultSetrs sql executeQuery strQuery while rs next bh rs getString H No yhm rs getString H User ltsj rs getString H Time substring 0 10 ltnr rs g

温馨提示

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

评论

0/150

提交评论