【J2EE】idea创建Web工程时引入JDBC包的区分

idea创建Web工程时引入JDBC包的区分

idea的数据库视窗

很多连接数据库的博客都描述了idea数据库视窗连接数据库的方法。使用这个数据库视窗的主要目的是为了方便程序员对数据库进行可视化编辑,与项目连接数据库无关。不连这个也没啥关系,工程是通过别的方式连接数据库的。

你会发现使用idea数据库视窗这个功能时,依然需要JDBC驱动,很明显这个JDBC只是视窗用来连接数据库的。

你可以在下图中看到idea帮你下好的jar包,把鼠标悬浮在版本号上能看到下载好的驱动包的位置。

装好jar包后,输入用户名和密码,测试连接,连接成功。(关于severTimezone问题,可以按照提示为把时区设置为Hongkong或者Asia/Shanghai)

工程中引入JDBC包

假设我在工程下创建了一个lib文件,并将我所需要的JDBC包放进去。(或者我直接把JDBC包放在桌面上,效果一样)

随后在idea的项目结构中添加该JDBC包对应路径依赖。

接下来用如下Java代码测试数据库的连接。

package cn.edu.*;

//导入包
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

/*
 * 数据库连接
 */
public class conn {
    public static void main(String[] args) {
        Connection con;
        //jdbc驱动
        String driver="com.mysql.cj.jdbc.Driver";
        //这里我的数据库是cxxt
        String url="jdbc:mysql://localhost:3306/mydb?&useSSL=false&serverTimezone=UTC";
        String user="dbuser";
        String password="dbpassword";
        try {
            //注册JDBC驱动程序
            Class.forName(driver);
            //建立连接
            con = DriverManager.getConnection(url, user, password);
            if (!con.isClosed()) {
                System.out.println("数据库连接成功");
            }
            con.close();
        } catch (ClassNotFoundException e) {
            System.out.println("数据库驱动没有安装");

        } catch (SQLException e) {
            e.printStackTrace();
            System.out.println("数据库连接失败");
        }
    }
}

如果数据库配置正确,结果当然是“数据库连接成功”。

表面上看起来好像web工程的驱动包加载成功了,但是一将工程部署在Tomcat上,项目运行起来后却怎么也连不上数据库,原因还是因为驱动包没有部署在服务器上。

解决方法有两个。

  • 把jar包放在WEB-INF/lib目录下,然后在idea的项目结构中添加路径。(这样本地java项目和部署在服务器上的java项目都可以访问数据库)
  • 把jar包放在Tomcat的lib目录下(因为服务器的库是必加的)(这样只有部署在服务器上的Java项目可以访问数据库)

一般为了保险一点,可以两种方法同时使用,这样不管怎么样都能连上数据库了从ψ(`∇´)ψ![]

posted @ 2020-10-17 20:11  吃土poQAQ  阅读(303)  评论(0)    收藏  举报