最近看到 tomcat数据源,JDBC连接的概念。以前都没有配置tomcat 数据源,直接在程序里写jdbc连接,突然看到tomcat数据源这个词,都么不着头脑了。
在网上搜了一片文章,讲两者的不同http://www.soidc.net/discuss/1/081120/00/604705_1.html。看完了还是有点迷糊。
我自己的程序都是不用tomcat数据源的,直接部署就运行了。请大家谈谈看法?

解决方案 »

  1.   

    网上的帖子都是配置 tomcat5 配数据源,很少有tomcat6的配置
      

  2.   

    好像是在server.xml文件中配置,再在web.xml中用resource-ref引用。
    程序中用jini查找数据源就可以用了。这样做tomcat会建立和管理连接池,也可以设置连接数等。网上很多入门文章,其实仅仅是演示而已。真正能用于生产的系统必须考虑连接池、事务。否则一点用也没有。
      

  3.   

    几乎没有商用jee应用直接写jdbc连接。
    1:JNDI DataSource提供了connection pool管理,提高了连接效率。
    2:JNDI DataSource提供了独立connection管理。也就是解耦合逻辑层,逻辑层不需要知道connection的管理。
    3:Jee server提供了方便的DataSource管理和配置,在这里是tomcat提供了DataSource管理,包括pool的配置,timeout等属性。
    4:可移植性。当移植应用或者移植数据库的时候,只需要配置DataSource,代码不需要动。
      

  4.   

    楼猪是没弄明白本地数据源和jndi数据源吧?
    这样理解吧,本地数据源相当于你自己写了一个connection的对象池,只不过你是用的第三方jar包罢了。
    比如dbcp,c3p0,proxool等吧。
    tomcat那个jndi数据源呢,你需要了解下j2ee的规范。简单点说。就是应用服务器上有颗树,上面挂着n多对象其中一个就是connection连接池。你既可以在本地访问,也可以远程通过Context.lookup访问。
      

  5.   

    tomcat那个严格意义上来说不能算是jndi数据源。不过是个玩具吧里。一般web应用最好使用本地数据源。除非你是分布式应用,否则完全没有这个必要
      

  6.   


    对。毕竟lookup也是费油的
      

  7.   


    <Resource
            name="jdbc/xinda"
            auth="Container"
            type="javax.sql.DataSource"
            maxActive="10"
            maxIdle="5"
            maxWait="10000"
            driverClassName="oracle.jdbc.driver.OracleDriver"
           url="jdbc:oracle:thin:@10.0.150.188:1521:orcl"
    username="username"
    password="123456"/>
      

  8.   

    像hibernate这样的框架,他们提供连接池吧,这样就不用配置tomcat吧?
      

  9.   

    说了半天还是没弄明白本地和jndi的区别。无奈。