如何把数据库连接放到tomcat

如何把数据库连接放到tomcat,第1张

1、 将mysql-connector-java-5.1.6-bin.jar,也在%Tomcat_Home%\common\lib\下,

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

%>


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9916467.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-03
下一篇 2023-05-03

发表评论

登录后才能评论

评论列表(0条)

保存