关于IDEA连接tomcat 连接池的一些问题
基本操作
点击红框按钮添加context.xml
<?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource name="jdbc/mysqlds"
auth="Container"
type="javax.sql.DataSource"
username="root"
password=""
maxIdle="30"
maxWait="10000"
maxActive="100"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://127.0.0.1:3306/book?useUnicode=true&characterEncoding=utf8"
logAbandoned="true"
/>
</Context>
修改如下,其中useUnicode=true&characterEncoding=utf8
是为了解决Unknown initial character set index ‘255’ received from server. 的问题,然而失败,原因是在连接池中要修改编码必须要修改tomcat中的context.xml文件,但是修改会导致tomcat服务无法顺利启动,唯一的办法就是安装旧版本的mysql(8.0之前)
关于字符集支持
重要更改:
默认字符集已从latin1变成utf8mb4。
因而系统变量受到影响:
字符集的默认值 character_set_database ,其系统变量由 latin1 变成 utf8mb4 。
而这个系统默认 collation_server 和 collocation_database 系统变量由 latin1_swedish_ci 变为 utf8mb4_0900_ai_ci
再修改web.xml,添加
<resource-ref>
<res-ref-name>jdbc/mysqlds</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
<res-sharing-scope>Shareable</res-sharing-scope>
</resource-ref>
把mysql-connector
放到WEB-INF的lib下,并在library中添加,项目中导入的jar包必须放在lib目录下,否则即使添加到library中也无法使用
点加号选择Java,然后选择本项目lib下的mysql-connector,然后就可以测试是否连接成功了,代码如下
<%@ page language="java" pageEncoding="UTF-8" contentType="text/html; charset=UTF-8"%>
<%@ page import="java.sql.*" %>
<%@ page import="javax.naming.*" %>
<%@ page import="javax.sql.DataSource" %>
<html>
<head>
<title>Tomcat6.0 JNDI!</title>
</head>
<body>
Tomcat连接池测试,获取数据源 <br>
<%
try {
//初始化查找命名空间
Context ctx = new InitialContext();
//参数java:/comp/env为固定路径
Context envContext = (Context)ctx.lookup("java:/comp/env");
//参数jdbc/mysqlds为数据源和JNDI绑定的名字
DataSource ds = (DataSource)envContext.lookup("jdbc/mysqlds");
Connection conn = ds.getConnection();
conn.close();
out.println("<span style='color:red;'>JNDI测试成功<span>");
} catch (NamingException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
%>
</body>
</html>
我不想安装旧版本mysql,还是放弃连接池,用Class.forName()
来启动服务好了
相关的网址:
https://blog.csdn.net/TJtulong/article/details/82223535
https://www.cnblogs.com/pikaqiucode/p/8277313.html
http://www.3lian.com/edu/2013/04-06/63816.html (这个有用)
上一篇: 线程安全性问题的解决:
下一篇: 在hdp中使用hive往数据库中插入数据
推荐阅读