使用工具:TOMCAT 7.0.52、IntelliJ IDEA 13.0.2、JSF 2.0+、SqlServer、jtds-1.2.5.jar

搞了好久都没成功,开始使用注解引入DataSource,可是一直不成功,后来使用lookup方式,写了一个本地主类(包含main方法)测试,也是不成功,艹,都快崩溃了,后来经过各种测试,终于搞定了,本地主类测试是无效的,必须通过web访问才能成功,真尼玛蛋疼。注解估计跟版本有关,没精力去弄了。

以下是配置步骤(相应的路径换成自己的):

1、把jtds-1.2.5.jar放到Tomcat目录里的lib目录下。如:D:\IntelliJ\tomcat7\lib

2、在D:\IntelliJ\tomcat7\conf目录里的context.xml文件里加上如下代码:

 <Context>
<WatchedResource>WEB-INF/web.xml</WatchedResource>
<Resource name="jdbc/sqlserver" auth="Container" type="javax.sql.DataSource"
driverClassName="net.sourceforge.jtds.jdbc.Driver"
url="jdbc:jtds:sqlserver://localhost:1433/yourDatabaseName"
username="username" password="password" maxActive="100" maxIdle="30"/>
</Context>

3、在你项目里的web.xml文件里加入如下内容:

     <!--配置数据源-->
<resource-ref>
<description>Sqlserver Datasource</description>
<res-ref-name>jdbc/sqlserver</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>

4、在你的代码里引用数据源:

     private DataSource ds;

     public LoginBean() {

         try {
// 初始化查找命名空间
Context ctx = new InitialContext();
ds = (DataSource)ctx.lookup("java:comp/env/jdbc/sqlserver") ;
} catch (NamingException e) {
System.out.println("使用lookup找不到数据源.");
e.printStackTrace();
} }

5、测试test.jsp:

<%@ page language="java" import="java.util.*" pageEncoding="utf-8" %>
<%@ page import="java.sql.*"%>
<%@ page import="javax.sql.*"%>
<%@ page import="javax.naming.*"%>
<%!
final String JNDINAME = "java:comp/env/jdbc/sqlserver" ;
%>
<%
Connection conn = null ;
try
{
// 初始化查找命名空间
Context ctx = new InitialContext() ;
// 找到DataSource
DataSource ds = (DataSource)ctx.lookup(JNDINAME) ;
conn = ds.getConnection() ;
String sql="select passwd,logincount from credential where username=?";
PreparedStatement pwdQuery=conn.prepareStatement(sql);
pwdQuery.setString(1,"admin");
ResultSet result= pwdQuery.executeQuery();
if(!result.next()){
return;
}
System.out.println(result.getString("passwd")) ;
}
catch(Exception e)
{
System.out.println(e) ;
}
%>
<%=conn%>
<%
// 将连接重新放回到池中
conn.close() ;
%>

只要能输出数据库的连接信息就没问题了。

如果注解不能使用,就不要纠结了,换种方式。

最新文章

  1. LinQ C#防注入式攻击实例代码
  2. Android项目实战(二十七):数据交互(信息编辑)填写总结
  3. C++ Pointer-to-Member Selector
  4. Node.js Web 开发框架大全《静态文件服务器篇》
  5. Netsharp快速入门(之5) 基础档案(之D 实体建模 生成实体代码、同步数据库、配置插件运行时)
  6. 图解TCP/IP读书笔记(四)
  7. loading-show-hide
  8. Hibernate4.x之入门篇
  9. poj3278 BFS入门
  10. 仿微博——MJExtension之字典转模型
  11. spring项目中监听器作用-ContextLoaderListener(项目启动时,加载一些东西到缓存中)
  12. do循环的100米自由落体
  13. 伽罗瓦域(有限域)GFq^12上元素的1→2→4→12塔式扩张(2)------第二次扩张
  14. Linux信号实践(1) --Linux信号编程概述
  15. 2018-12-14 JavaScript实现ZLOGO: 前进方向和速度
  16. zepto.js
  17. python强大的数据类型转换
  18. RedHat7.0更新yum源
  19. BeautifulSoup的find()和findAll()
  20. java知识回顾

热门文章

  1. (转)Android Support Percent百分比布局
  2. linux c 实现大数相乘
  3. Java 网络编程(转)
  4. WPF-控件-ListView
  5. ArcGIS For JavaScript API 默认参数
  6. php获取指定日期所在星期的开始时间与结束时间
  7. 多态&amp;&amp;父类调用子类特有的方法
  8. linux 错误总结
  9. android开发 更新升级安装到一半自动闪退
  10. Android-Empty-Layout:展示不同类型的页面布局,用于视图是空的时候