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其实准确的内涵是:对象/关系数据库映射。
Global site tag (gtag.js) - Google Analytics