在Tomcat中配置数据源

系统 1865 0

使用工具: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文件里加上如下代码:

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


      
      %>
    

 

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

 

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

 

在Tomcat中配置数据源


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论