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&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对象