JDBC 相关知识(六)
lgl669
2009-06-15
六、JDBC对标准的扩展(JNDI):1.0中所没有的东西哦!
JNDI编程: ----------> Servlet JNDI:java naming and directory interface. client JNDI Service server client logic name------>logic name------> data source server:将逻辑名与具体资源进行绑定 client:通过逻辑名查询具体资源 放在javax.naming.*,最常用的是Context.其实就是配置一些相关的信息; 1) 获得上下文; 上 下 文:网络上多个资源的集合 获得上下文:定位到网络上资源所处的位置; Context ctx = new InitialContext(); Context ctx = new InitialContext(Properties pro); 2) 查找 根据资源在上下文中唯一的名字到上下文中查找; Object o = ctx.lookup("jdbc/oracle"); Connection conn = (Connection)o; 3) 绑定 将资源以一个唯一的名字存放在上下文的过程; ctx.bind("jdbc/oracle", conn); ctx.bind("jdbc/oracle", driverManager); ctx.bind("companyName", "abc有限公司"); DriverManager.getConnection(url,user,password); dataSource.getConnection(); DataSource: -------------> Servlet 和driverManager类似,也能获取Connection,但这时用户无需关心和数据库连接的细节, 一般结合JNDI一起使用,有三种类型的实现: 34 J2EE @ zxw 普通实现:每次调用getConnection()临时创建Connection对象; * 连接池实现:配套使用连接池,每次获取的Connection,是从池中取出的,已经实例化好的连接对象; 分布式事务实现:支持分布式事务; 面向接口的编程:多人编程时,可以在工作未完成之间协同开发,因为每个人的具体细节,对他人可以回避.这 就是接口的特点. Connection pooling:连接池; -----------> Servlet 它的作用:提高性能,多用户共享少量的数据物理连接数; 写连接池: 1.在应用启动时,创建一定量的连接放到池中; 2.从连接池中获取一个连接; 3.使用后,将连接重新放到池中; 4.应用关闭时,释放所有连接; 分布式事务: ---------------->EJB 一个事务可能跨越多个数据库,需要由事务管理器帮助我们同一地管理事务。使用两阶段提交协议。 应用服务器:Tomcat,Jboss,IBM websphere,BEA weblogic... RowSet:有一些数据库驱动不支持结果集的可滚动性和可更新性,这时候可以使用行集;但是目前主流的 数据库都支持结果集的可滚动性和可更新性; ------------------------------------------------------------------------------------------------------------------------ DAO:data access Object DAO模式=Data Accessor模式+Active Domain Object模式 1.Data Accessor模式:实现数据访问和业务逻辑的分离,使用接口进行降低耦合;就是我们的DAO类; 使用接口: Customer-> CustomerDAO -> CustomerDAOImpl(JDBC / Hibernate) 2.Active Domain Object模式:实现业务数据的对象化封装;用JavaBean封装和传输数据; JavaBean: 1) 属性; 封装数据; 2) 使用getter/setter方法访问修改属性; 使用统一的形式访问属性,便于程序员间的沟通; 3) 无参的构造方法; 方便实例化; 4) 实现java.io.Serializable接口; 便于序列化; O/R Mapping===>Object Relation Mapping其实准确的内涵是:对象/关系数据库映射。 |