1.用JNDI连接数据库时说的数据源是什么概念啊,配置文件放置目录及编写方法?
2.它跟JDBC连接数据库的根本的区别是什么(JDBC也可以用配置文件吧)?
3.JPA(Java Persistence Api)是什么,跟JDBC有什么区别?说明:没道问题选一个最优的给10分

解决方案 »

  1.   


    1.用JNDI连接数据库时说的数据源是什么概念啊,配置文件放置目录及编写方法? 
    JNDI和数据源是不是一个概念,JNDI即java name&Directory interface,是j2ee框架技术里的一个,是为j2ee里lookup定义的标准,例如
    Context ctx=new InitialContext();
    Object datasourceRef=ctx.lookup("java:comp/env/jdbc/mydatasource");
    这里就是用jndi来查找的。 
    他的配置是根据j2ee的规范来的,可以把database描述在web.xml或者ebj-jar.xml等地方。这个建议你看看有关的j2ee,JNDI的一些介绍和例子。
    2.它跟JDBC连接数据库的根本的区别是什么(JDBC也可以用配置文件吧)? 
    是不同的概念,其实最终JNDI找出来的datasource也是用JDBC来封装的,不过是提供了一种装载方式,把有关jdbc的一些信息配置在j2ee的描述文件里,然后通过jndi把datasource查出来用而已。所以jndi和jdbc是不同的角色,jdbc是访问数据库的具体实现,而jndi是可以看作是对象和名称的映射池,datasource是这个映射池中的一个映射的一个对象。3.JPA(Java Persistence Api)是什么,跟JDBC有什么区别? 
    JPA是persistence layer的一个高级框架,和hibernate一样,用来简化我们对持久层操作的, 不过和hibernate还不一样,hibernate是一个persistence layer的具体实现,而JPA仅是高级抽象。  而JDBC是这些技术框架都需要的底层技术。 我们即可以直接来替你通过jdbc来操作数据库,也可以通过JPA,hibnerate等来操作。不过用jdbc要麻烦一些。还要自己去操作statement,connection,resultset对象。
      

  2.   


    数据源指的是连接数据库的方式
    将以下代码放置到tomcat 服务器配置文件中
    <Resource name="jdbc/orcldb" auth="Container"
                  type="javax.sql.DataSource"
           description="User database that can be updated and saved">
        </Resource>
        <ResourceParams name="jdbc/orcldb">
          <parameter>
            <name>factory</name>
            <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
          </parameter>
          <parameter>
            <name>driverClassName</name>
            <value>oracle.jdbc.driver.OracleDriver</value>
          </parameter>
    <parameter>
            <name>url</name>
            <value>jdbc:oracle:thin:@192.168.0.64:1521:orcl</value>
          </parameter>
    <parameter>
            <name>username</name>
            <value>hbdba</value>
          </parameter>
    <parameter>
            <name>password</name>
            <value>fan</value>
          </parameter>
    <parameter>
            <name>maxActive</name>
            <value>20</value>
          </parameter>
        </ResourceParams>
     <parameter>
            <name>maxIdle</name>
            <value>10</value>
          </parameter>
    <parameter>
            <name>maxwait</name>
            <value>10000</value>
          </parameter>
    <Context path="/jdbc" doBase="jdbc" debug="1" reloadable="true" classContext="true">
    <ResourceLink name="jdbc/orcldb" global="jdbc/orcldb" type="javax.sql.DataSouce"/> </Context>
    2: 他跟jdbc的区别是 他是服务器端定义了连接,直接在代码中调用就可以了,而且他是个连接池,定义了许多jdbc不能定义的连接属性 如最大等待时间 空间时间 ,每次连接的最大访问人数等。
      

  3.   

    跟人感觉JNDI连接数据库跟jdbc是一样的,因为java跟数据库连接本质上还得靠jdbc。JPA是数据持久化的一个概念,大致上就是当数据量太多时,分批读取的意思
      

  4.   

    jpa是java persistense api的缩写,是java推出的持久化规范,它不是一套产品,而是一套规范,
    它的出现时为了终止现在hibernate,toplink等持久化产品各自为盈的局面。这样我们就可以再
    不更新代码的情况下对持久层进行更换,比如现在是hibernate,更换成toplink而不用修改代码,
    修改下配置就可以了
      

  5.   

    JDNI 是一种技术 就好象JDBC  也是种技术
      

  6.   

    感谢各位的回答
    我个人感觉JNDI和JDBC的最大的区别是JNDI有连接池,JDBC则没有
      

  7.   

    JDNI连接数据库应该是更高级一些,为用户做了很多JDBC的细节任务,比如说数据连接的初始化、释放。
    http://www.ibm.com/developerworks/cn/java/j-jndi/