数据库连接(二)JNDI应用

数据库连接(二)JNDI应用,第1张

数据库连接(二)JNDI应用 Tomcat下通过资源获取连接数据库
package com.jess;


import javax.annotation.Resource;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.sql.DataSource;
import java.io.IOException;




@WebServlet("/")

public class MyServlet extends HttpServlet {
    
    // 可以通过lookup获取
    @Resource(lookup = "java:comp/env/dataSource/mysql/jzy2")
    DataSource dataSource2;
    //也可以通过name属性获取
    @Resource(name = "java:comp/env/dataSource/mysql/jzy1")
    DataSource dataSource3;
    @Resource(lookup = "java:comp/env/dataSource/mysql/jzy1")
    DataSource dataSource4;

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        Context ctx = null;
        try {
            ctx = new InitialContext();
            DataSource dataSource1 =
                    (DataSource) ctx.lookup("java:comp/env/dataSource/mysql/jzy2");
            System.out.println("手动获取资源1");
            System.out.println("dataSource = " + dataSource1);
            System.out.println(dataSource1.getConnection());
            System.out.println("webServlet+Resource注解获取资源2");
            System.out.println("dataSource2 = " + dataSource2);
            System.out.println(dataSource2.getConnection());
            System.out.println("webServlet+Resource注解获取资源3");
            System.out.println("dataSource3 = " + dataSource3);
            System.out.println(dataSource3.getConnection());
            System.out.println("webServlet+Resource注解获取资源4");
            System.out.println("dataSource4 = " + dataSource4);
            System.out.println(dataSource4.getConnection());
            System.out.println("数据库连接成功!");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

由资源1和资源2可见手动获取的资源数据库和通过注解反射获取的资源是同一个资源数据库,由资源3和资源4可以看到通过name和lookup获取的资源相同,由资源2和资源3可以看到在一个工程或一个文件或一个类可以引用不同的数据库资源。 配置文件context.xml


    
    


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

原文地址:https://54852.com/zaji/4670307.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-11-06
下一篇2022-11-06

发表评论

登录后才能评论

评论列表(0条)

    保存