zoukankan      html  css  js  c++  java
  • 在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 omcat7lib

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

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

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

    1     <!--配置数据源-->
    2     <resource-ref>
    3         <description>Sqlserver Datasource</description>
    4         <res-ref-name>jdbc/sqlserver</res-ref-name>
    5         <res-type>javax.sql.DataSource</res-type>
    6         <res-auth>Container</res-auth>
    7     </resource-ref>

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

     1     private DataSource ds;
     2 
     3     public LoginBean() {
     4 
     5         try {
     6             // 初始化查找命名空间
     7             Context ctx = new InitialContext();
     8             ds = (DataSource)ctx.lookup("java:comp/env/jdbc/sqlserver") ;
     9         } catch (NamingException e) {
    10             System.out.println("使用lookup找不到数据源.");
    11             e.printStackTrace();
    12         }
    13 
    14     }

    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() ;
    %>

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

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

  • 相关阅读:
    java怎样将一组对象传入Oracle存储过程
    android webview内容压线问题解决方法
    BS和CS对比
    【OpenCV-Python】Python Extension Packages for Windows
    hdu4462 Scaring the Birds
    tomcat安全配置之证书密码加密存储
    UVA 10714 Ants 蚂蚁 贪心+模拟 水题
    一个不喜欢读书的Javaer的读书单
    二叉树可视化--Graphviz
    [置顶] mmog游戏开发之业务篇
  • 原文地址:https://www.cnblogs.com/yanyd/p/4231815.html
Copyright © 2011-2022 走看看