使用jndi技术在jsp中打印Connection对象

  • Post author:
  • Post category:其他


1、修改tomcat/conf目录下的context.xml,将以下信息复制进去

<Resource name="jdbc/shop"                
    <!--名字可随意取,该name值为通过上下文获取数据源的name参数后缀-->
              auth="Container"
              type="javax.sql.DataSource"
              maxActive="100"
              maxIdle="30"
              maxWait="10000"
              username="root"    <!--mysql 用户名-->
              password="123456"    <!--mysql 密码-->
              driverClassName="com.mysql.jdbc.Driver"
              url="jdbc:mysql://localhost:3306/shop?useUnicode=true&amp;characterEncoding=utf8"/>
              <!--localhost:3306/shop 表示本机中库名为shop的数据库-->

将以上文本信息加到</Context> 标签上面

2、创建BaseDao类通过上下文获取数据源,以下的获取连接的方法

public Connection getConnection() {
        try {
            // 初始化上下文
            Context context = new InitialContext();
            //获取数据源
            DataSource dataSource = (DataSource) context.lookup("java:comp/env/jdbc/shop");
            // 获取连接
            connection = dataSource.getConnection();
        } catch (NamingException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    return connection; }

3、检查tomcat/lib目录中是否有包含mysql连接驱动Driver的jar包,没有百度下一个放进去,如果你的jar包是8以上的版本,

context.xml

中的

driverClassName

值改成”

com.mysql.cj.jdbc.Driver

“,

最后运行并在网页中打印Connection对象,且每次刷新,前面9位数字都会发生改变

因为每次返回的对象都不一样,且如果你一直刷新页面,Connection对象还一直不关闭,再次刷新或重新打开网页时将发现浏览器一直在尝试打开状况

即使重新打开网页也是如此,除非你重新启动Tomcat服务才能打开网页

我觉得原因的Connection每次刷新页面都创建了一个对象,占用了很多资源,导致网页打不开;

解决办法,只生成一个connection对象

转载于:https://www.cnblogs.com/zeng1997/p/11603340.html