使用 jdbc 到 MySQL 连接时出错 |命名异常
Error while using jdbc to MySQL connection | Naming Exception
我完全是个初学者,我正在使用 Tomcat 9.0、MySQL 和 jdbc 做一个简单的 jee 项目。
在尝试连接到数据库时,我得到:
javax.naming.NameNotFoundException: Name [jdbc/city2] is not bound in this Context. Unable to find [jdbc].
我已经尝试将配置文件添加到 Tomcat 文件夹 apache-tomcat-9.0.24\conf\Catalina\localhost,但确实如此没有什么。
这就是我的 ConnectionProvider class 的样子:;
private static DataSource dataSource;
public static Connection getConnection() throws SQLException {
return getDSInstance().getConnection();
}
private static DataSource getDSInstance() {
if (dataSource == null) {
try {
Context initContext = new InitialContext();
dataSource = (DataSource) initContext.lookup("java:comp/env/jdbc/city2");
} catch (NamingException e) {
e.printStackTrace();
}
}
return dataSource;
}
我的 context.xml 文件如下所示:
<Context>
<Resource name="jdbc/city2"
auth="Container"
type="javax.sql.DataSource"
initialSize="10"
maxTotal="100"
maxIdle="30"
maxWaitMillis="10000"
username="root"
password="admin"
driverClassName="com.mysql.cj.jdbc.Driver"
url="jdbc:mysql://localhost:3306/city2?useSSL=false&serverTimezone=UTC" />
</Context>
在web.xml中声明数据源:
<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/city2</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
查看更多详情here。
我完全是个初学者,我正在使用 Tomcat 9.0、MySQL 和 jdbc 做一个简单的 jee 项目。
在尝试连接到数据库时,我得到:
javax.naming.NameNotFoundException: Name [jdbc/city2] is not bound in this Context. Unable to find [jdbc].
我已经尝试将配置文件添加到 Tomcat 文件夹 apache-tomcat-9.0.24\conf\Catalina\localhost,但确实如此没有什么。 这就是我的 ConnectionProvider class 的样子:;
private static DataSource dataSource;
public static Connection getConnection() throws SQLException {
return getDSInstance().getConnection();
}
private static DataSource getDSInstance() {
if (dataSource == null) {
try {
Context initContext = new InitialContext();
dataSource = (DataSource) initContext.lookup("java:comp/env/jdbc/city2");
} catch (NamingException e) {
e.printStackTrace();
}
}
return dataSource;
}
我的 context.xml 文件如下所示:
<Context>
<Resource name="jdbc/city2"
auth="Container"
type="javax.sql.DataSource"
initialSize="10"
maxTotal="100"
maxIdle="30"
maxWaitMillis="10000"
username="root"
password="admin"
driverClassName="com.mysql.cj.jdbc.Driver"
url="jdbc:mysql://localhost:3306/city2?useSSL=false&serverTimezone=UTC" />
</Context>
在web.xml中声明数据源:
<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/city2</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
查看更多详情here。