在Tomcat中配置数据源
使用工具: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() ;
%>
只要能输出数据库的连接信息就没问题了。
如果注解不能使用,就不要纠结了,换种方式。
最新文章
- javascript动画系列第二篇——磁性吸附
- HTML之DocType的几种类型 -转载
- 从零开始山寨Caffe&#183;捌:IO系统(二)
- scala的面向对象编程
- 基于Flask的Web应用部署到SAE上遇到的问题
- C#事件快捷设置
- ArrayList实现线程的几种方法
- Session案例:简易的购物车
- WebSocket能干啥
- C++程序设计实践指导1.14字符串交叉插入改写要求实现
- [Java]使用队列求解josephus问题
- MVC应用程序使用Web Services(asmx)
- 企业架构研究总结(36)——TOGAF企业连续体和工具之企业连续体构成及架构划分
- Java环境变量详解
- [转]Node.js 应用:Koa2 使用 JWT 进行鉴权
- django实现SSO
- iPhone照片格式heic图片怎么打开
- hihocoder#1333 : 平衡树&#183;Splay2 (区间操作)
- MySQL5.7 的新特点
- redis客户端windows版中文乱码解决方案
热门文章
- Jquery LigerUI框架学习(一)
- WPF学习05:2D绘图 使用Transform进行控件变形
- phonegap ios插件开发及无限后台运行解决
- ASP.NET 运行机制续(完结)
- matlab实现共轭梯度法、多元牛顿法、broyden方法
- JAVA equals, ==
- Notes of the scrum meeting(10/30)
- eclipse不能创建java虚拟机-解决方法
- notifyDataSetChanged listview内容没更新的问题
- 使用Putty连接VirtualBox的Ubuntu