




已阅读5页,还剩15页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
JDBC数据库编程(2),数据库高级编程,回顾,数据库编程的含义?编程中为什么要加驱动?JDBC-ODBC桥连与纯Java驱动两种方式的优缺点分别是什么?JDBC程序访问数据库的步骤是什么?,本章目标,数据库高级访问掌握PreparedStatement对象参数化执行对象掌握CallableStatement对象调用存储过程的执行对象三层结构设计正则表达式的应用验证输入信息的合法性,PreparedStatement,PreparedStatement继承自Statement创建PreparedStatementpstmt=con.prepareStatement(Stringsql);pstmt表示预编译的SQL语句的对象。SQL语句被预编译并存储在PreparedStatement对象中。然后可以使用此对象多次高效地执行该语句,PreparedStatement,常用方法,PreparedStatement案例,插入数据/*使用PreparedStatement调用存储过程插入数据*/Connectioncon=null;PreparedStatementpstmt=null;introw=0;/获取GUI信息StringstuID=stuIDTextField.getText();StringstuName=stuNameTextField.getText();StringstuDepartment=(String)departComboBox.getSelectedItem();StringstuClass=(String)classComboBox.getSelectedItem();/检测if(stuID.equals()|stuName.equals()JOptionPane.showMessageDialog(this,请填写完整);return;try/获得连接con=DBUtil.getConn();/创建执行对象pstmt=con.prepareStatement(insertstudentinfovalues(?,?,?,?);pstmt.setString(1,stuID);/设置存储过程的参数,从1开始pstmt.setString(2,stuName);pstmt.setString(3,stuDepartment);pstmt.setString(4,stuClass);,/执行语句row=pstmt.executeUpdate();/增删改都使用executeUpdate()方法if(row!=0)JOptionPane.showMessageDialog(this,插入成功);stuIDTextField.setText();stuNameTextField.setText();catch(SQLExceptionex)JOptionPane.showMessageDialog(this,插入失败,错误,JOptionPane.ERROR_MESSAGE);catch(Exceptionex)ex.printStackTrace();finally/关闭连接DBUtil.closeConn();,PreparedStatement案例,根据姓名查找Connectioncon=null;PreparedStatementpstmt=null;ResultSetrs=null;/结果集try/创建连接(DBUtil是连接工具类)con=DBUtil.getConn();/创建执行对象pstmt=con.prepareStatement(select*fromstudentinfowherestuName=?);/设置参数值pstmt.setString(1,stuNameTextField.getText();/执行查询rs=pstmt.executeQuery();/*将结果集存放到集合中然后在表中显示-略*/,CallableStatement,CallableStatement继承自PreparedStatement创建CallableStatementcstmt=con.prepareCall(Stringsql);CallableStatement是用于执行SQL存储过程的接口,在应用程序中调用存储过程可大大提高数据库的执行效率在使用CallableStatement时通常调用带输入参数的存储过程,CallableStatement案例,插入数据/*使用CallableStatement调用存储过程插入数据*/Connectioncon=null;CallableStatementcstmt=null;introw=0;/获取GUI信息StringstuID=stuIDTextField.getText();StringstuName=stuNameTextField.getText();StringstuDepartment=(String)departComboBox.getSelectedItem();StringstuClass=(String)classComboBox.getSelectedItem();/检测if(stuID.equals()|stuName.equals()JOptionPane.showMessageDialog(this,请填写完整);return;try/创建连接con=DBUtil.getConn();/创建执行对象,调用存储过程cstmt=con.prepareCall(callinsertData(?,?,?,?);/设置存储过程的参数,从1开始cstmt.setString(1,stuID);cstmt.setString(2,stuName);cstmt.setString(3,stuDepartment);cstmt.setString(4,stuClass);,/*执行存储过程*/增删改都使用executeUpdate()方法row=cstmt.executeUpdate();if(row!=0)JOptionPane.showMessageDialog(this,插入成功);stuIDTextField.setText();stuNameTextField.setText();catch(SQLExceptionex)JOptionPane.showMessageDialog(this,插入失败,错误,JOptionPane.ERROR_MESSAGE);catch(Exceptionex)ex.printStackTrace();finallyDBUtil.closeConn();,CallableStatement,常用方法,CallableStatement案例,根据姓名查找Connectioncon=null;CallableStatementcstmt=null;/注意添加的包sql包ResultSetrs=null;/结果集try/创建连接con=DBUtil.getConn();/创建执行对象cstmt=con.prepareCall(callqueryByNameProc(?);/设置参数值cstmt.setString(1,stuNameTextField.getText();/执行查询rs=cstmt.executeQuery();/*将结果集存放到集合中然后在表中显示-略*/,两层结构设计,数据库,应用程序,界面设计和数据访问在同一个类中,界面发生改动容易引起数据访问改动,三层结构设计,JFrameJDialog,表示层(view),业务逻辑层(bl),数据访问层(dao),数据库,用户界面类,业务逻辑类,数据访问类,xxxBL,xxxDao,对数据库的增删改查,调用Dao层的方法,调用bl层的方法,三层结构案例,正则表达式的应用,什么是正则表达式在编写处理字符串的程序或网页时,经常会有查找符合某些复杂规则的字符串的需要,例如:检测输入的身份证号是不是全部都是数字并且是18位,检测输入的Email地址是否符合要求等正则表达式描述了一种字符串匹配的模式,可以检查一个串是否含有某种子串、将匹配的字符串做替换或者从某个串中取出符合某个条件的字串等正则表达式常用的是数据验证,就是用某种模式去匹配一类字符串。实际就是使用特定的字符组成一个模式,然后将具体的字符串与该模式进行匹配,若符合模式要求返回true,否则返回false,字符串直接匹配正则表达式,publicbooleanmatches(Stringregex)告知此字符串是否匹配给定的正则表达式regex匹配正确时返回true,匹配错误时返回false例:匹配指定字符串要求:指定字符串必须是6-20位,只能由字母数字下划线组成,并且开头必须是字母Stringregex=a-zA-Z1a-zA-Z0-9_5,19$;booleanisMatch=指定字符串.matches(regex);,常用正则表达式,匹配用户名:由字母数字下划线组成且开头必须是字母a-zA-Z1a-zA-Z0-9_n,m$:匹配开始$:匹配结束:字符集中任意一个n,m:至少匹配n次,至多匹配m次,匹配数字字符串0-9+$:匹配一个数字或多个数字0-9n$:匹配n次数字字符身份证号:0-918$银行密码:0-96$匹配中文字
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年4月重庆市妇幼保健院部分岗位招聘模拟试卷附答案详解(模拟题)
- 2025江西吉安市吉水县吉瑞招商运营有限公司面向社会招聘1人模拟试卷含答案详解
- 2025贵州省文化和旅游厅所属事业单位第十三届人博会引进人才3人模拟试卷及完整答案详解1套
- 2025贵州惠水县公益性岗位招聘4人考前自测高频考点模拟试题有答案详解
- 2025标准车辆买卖合同模板
- 2025内蒙古鑫和资源投资集团有限责任公司招聘26名模拟试卷含答案详解
- 2025规范的劳动合同样本
- 2025江西九江市武宁县医疗卫生单位招聘劳务派遣人员3人考前自测高频考点模拟试题及1套参考答案详解
- 2025年河北石家庄海关技术中心公开招聘劳务派遣类工作人员2名模拟试卷及参考答案详解1套
- 2025年深圳房地产中介服务合同
- 煤矿掘进知识课件
- 《陆上风电场工程设计概算编制规定及费用标准》(NB-T 31011-2019)
- 创业投资免责声明范本
- (高清版)TDT 1001-2012 地籍调查规程
- 办案审讯员培训课件模板
- 内部审计管理系统建设需求
- 员工绩效汇报
- 环卫所内勤工作事迹
- 注塑设备维修培训课件模板
- 燃气输配课程设计说明书
- 应急预案管理中的法律风险与责任防控
评论
0/150
提交评论