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

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

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

  • 相关阅读:
    SpringBoot-Mysql模板多数据源加载
    SpringCloud-动态配置变化监控-获取变化(支持Config、Nacos)
    SpringBoot-ElasticJob封装快速上手使用(分布式定时器)
    关键字(标签)提示组件——拼音、汉字混合搜索
    写一个高性能的敏感词检测组件
    一个文件搞定Asp.net core 3.1动态页面转静态页面
    浅谈C#在网络波动时防重复提交
    对RC4算法进行改写,新的加密算法RCX。
    【ToolGood.Words】之【StringSearch】字符串搜索——基于BFS算法
    万能解决方案之彻底解决macOS cocoapods环境的所有问题
  • 原文地址:https://www.cnblogs.com/yanyd/p/4231815.html
Copyright © 2011-2022 走看看