- 1、本文档共34页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
09上--第11章II数据库深入应用
第11章II 数据库深入应用 主讲:曲美霞 涉及内容 Java数据库操作优化 主要内容: 1 使用设计模式封装连接 2 使用预编译SQL 语句提高效率 3 使用OO思想封装记录 4 使用Java Collection Framework API 5 资源的积极回收 6 关于属性文件的使用 1 使用设计模式封装连接 问题来源: DriverManager.getConnection(String url); DriverManager.getConnection(String url,String user,String password); ?此处需要根据不同的数据库的连接信息才能创建和不同数据库的连接实例 ?考虑使用最简单的简单工厂设计模式来封装此段代码。 习惯的解决方案: 定义一个ConnectFactory类,同时定义一个static方法,用来封装不同数据库的连接 2 使用预编译SQL 语句提高效率 问题来源: Statement st=con.createStatement(); st.execute(String sql); st.executeQuery(String sql); st.executeUpdate(String sql); ? 请考虑一下DBMS端作了什么? ?有没有提高执行速度和执行效率的JDBC API 解决方案: 位于java.sql包中的2个接口 PreparedStatement CallableStatement PreparedStatement 格式: PreparedStatement ps=con.prepareStatement(String sql); ps.setXXX(1,value); //?设置占位符值 ps.setXXX(n,value); ps.executeQuery(); CallableStatement 格式: CallableStatement cls=con.prepareCall (“{ call storedprocdure(?,?)}”); cls.setXXX(1,value); cls.setXXX(2,value); …….. cls.execute(); CallableStatement 说明: 可以接收输入参数; 可以接收输出参数; 还可以输入输出同时接收。 3 使用OO思想封装记录 OO思想? 在此即指:数据库表中每一条记录(行信息)看作是一个对象 解决方案: 使用JavaBeans来进行封装 JavaBeans规范 是一个遵循特定规范定义的Java类 规范如下: 是一个公共类 public class MyBean 拥有公共的无参构造方法 public MyBean() 只使用私有数据域 private String name; 为其私有的数据域提供公共的可读/可写方法 应用场合和优势: JSP(MVC1,2)中作Model 存储数据 4 使用Java Collection Framework API 问题描述: 将表中的记录(对象)存储到一个数据结构中,如何实现? 解决方案: 1 使用数组 2 使用collection API (java.util) 例如 Vector ,ArrayList,……… Generic programming之Generics 范型: Generics 又称Template(C++) 程序设计语言提供的将数据类型参数化 可以提高程序的可复用性,可抽象性等 范型--1 范型出现位置: 类或者方法定义中 类定义----范型类(接口)定义 class className E [,T][,K] { ………. } 方法定义----范型 public static Elem void swap (Elem[ ] a, int i, int j) Elem temp=a[i]; a[i]=a[j] ; a[j]=temp; } 5 资源的积极回收 使用相应的JDBC API中提供的close()即可 原则: 最先打开的最后关闭 connection.close()可以强制关闭其他
文档评论(0)