2、 在tomcat中manager中配置数据源名,配置完后内容自动放在conf\server.xml中。
3、 在conf\catalina\localhost\下建你应用程序的xml文件,例wei2.xml中,内容为<Context docBase="wei2" path="/wei2">
<ResourceLink global="jdbc/mysql" name="jdbc/mysql" type="javax.sql.DataSource"/>
</Context>
其中jdbc/mysql为配置的JNDI
下面说下JNDI与DataSource
JNDI java naming directory interface命名和目录接口命名服务来使组件定位到其它组件和资源(数据库资源),JNDI所有名应该以字符串java:comp/env开始;
要定位JDBC资源中,这时就可以编写代码使用JNDI的lookup()方法来定位到这个资源了。
JNDI命名服务有一组将名称与对象联系在一起的绑定。JNDI中的lookup()方法传递一个JNDI参数(java:comp/env/myjdbc,前面java:comp/env是必要的。),返回相应的对象(返回类型为DataSource,若为数据库,则可用DataSource中的getConnection()方法获取数据库连接).
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 dspublic 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()
%>
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)