Tomcat下简单的说配置context.xml文件就可以context.xml 的 Context加入
<Resource name="jdbc/SQLserver2k" auth="Container" type="javax.sql.DataSource" driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver" url="jdbc:microsoft:sqlserver://localhost:1433" username="sa" password="123" maxActive="20" maxIdle="10" maxWait="-1"/>
在server.xml下配置Resource也行,如果是tomcat5以上就得在/conf/Catalina/localhost配置相应用户的XML文件
web.xml 的 web-app下加入
<resource-ref>
<res-ref-name>jdbc/SQLserver2k</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
按照Tomcat配置文档的说明这样也行:
<DefaultContext ...>
...
<Resource name="jdbc/SQLserver2k" auth="Container" type="javax.sql.DataSource" description="Employees Database for HR Applications"/>
...
</DefaultContext>
WebLogic更简单只要使用向导就可以,驱动推荐使用BEN自带的
调用JNDI
DAO中引用如下代码就可以获得Connection了
参考代码:
Context ctx = new InitialContext();
Context envctx = (Context) ctx.lookup("java:comp/env");
DataSource ds = (DataSource) envctx.lookup("jdbc/TestDB");
Connection conn=ds.getConnection();
如果使用hibernate的话session-factory中只需要配置connection.datasource一项即可
参考代码:
<session-factory>
<property name="connection.datasource">java:comp/env/jdbc/SQLserver2k</property>
<!-- mapping -->
</session-factory>
使用Spring的话可以使用Spring的JndiObjectFactoryBean来建立dataSource参考代码:
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName">
<value>JDBCsqlserver2K</value>
</property>
</bean>
我配制的时候总结的问题如下:
1.使用Tomcat配置的话一定要把驱动考到Tomcat/lib下,只放在web-inf/lib是不行的
2.使用Tomcat的dataSource,需要到Apache网站上下载commons-dbcp.jar和commons-pool.jar。Tomcat默认不携带这两个jar包,程序会报一个找不到找不到类的异常。
3.使用Tomcat的dataSource在实用的时候jndiName一定要带上java:comp/env/,不然找不到。
4.Sqlserver一定要打SP3以上的补丁,不然死也连不上。
<Resource name="jdbc/SQLserver2k" auth="Container" type="javax.sql.DataSource" driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver" url="jdbc:microsoft:sqlserver://localhost:1433" username="sa" password="123" maxActive="20" maxIdle="10" maxWait="-1"/>
在server.xml下配置Resource也行,如果是tomcat5以上就得在/conf/Catalina/localhost配置相应用户的XML文件
web.xml 的 web-app下加入
<resource-ref>
<res-ref-name>jdbc/SQLserver2k</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
按照Tomcat配置文档的说明这样也行:
<DefaultContext ...>
...
<Resource name="jdbc/SQLserver2k" auth="Container" type="javax.sql.DataSource" description="Employees Database for HR Applications"/>
...
</DefaultContext>
WebLogic更简单只要使用向导就可以,驱动推荐使用BEN自带的
调用JNDI
DAO中引用如下代码就可以获得Connection了
参考代码:
Context ctx = new InitialContext();
Context envctx = (Context) ctx.lookup("java:comp/env");
DataSource ds = (DataSource) envctx.lookup("jdbc/TestDB");
Connection conn=ds.getConnection();
如果使用hibernate的话session-factory中只需要配置connection.datasource一项即可
参考代码:
<session-factory>
<property name="connection.datasource">java:comp/env/jdbc/SQLserver2k</property>
<!-- mapping -->
</session-factory>
使用Spring的话可以使用Spring的JndiObjectFactoryBean来建立dataSource参考代码:
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName">
<value>JDBCsqlserver2K</value>
</property>
</bean>
我配制的时候总结的问题如下:
1.使用Tomcat配置的话一定要把驱动考到Tomcat/lib下,只放在web-inf/lib是不行的
2.使用Tomcat的dataSource,需要到Apache网站上下载commons-dbcp.jar和commons-pool.jar。Tomcat默认不携带这两个jar包,程序会报一个找不到找不到类的异常。
3.使用Tomcat的dataSource在实用的时候jndiName一定要带上java:comp/env/,不然找不到。
4.Sqlserver一定要打SP3以上的补丁,不然死也连不上。