部署后找不到jdbc mysql驱动程序

时间:2015-11-21 10:49:55

标签: java mysql eclipse tomcat jdbc

我使用jersey开发了一个REST应用程序,在那里连接到数据库(mysql)我使用jdbc连接。以下是配置。

static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
static final String DB_URL = "jdbc:mysql://localhost:3306/DBNAME";

static final String USER = "root";
static final String PASS = "********";

public List<Item> getAll() {
        List<Item> results = new ArrayList<>();

try (Connection conn = (Connection) DriverManager.getConnection(DB_URL,
                USER, PASS);
                Statement stmt = (Statement) conn.createStatement();
                ResultSet rs = stmt.executeQuery("SELECT * FROM items");) {

            while (rs.next()) {
                // Retrieve by column name
                System.out.println(rs.getInt("ID"));
                System.out.println(rs.getString("FormerCode"));
                System.out.println(rs.getString("NewCode"));
                results.add(new Item(rs.getInt("ID"), rs
                        .getString("FormerCode"), rs.getString("NewCode")));

            }

        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        return results;

    }

通过Eclipse部署时,一切正常。但是当我创建war文件并在tomcat服务器上手动部署它时会得到一个异常,说没有合适的驱动程序。

No suitable driver found for 'jdbc:mysql://localhost:3306/DBNAME

我已将mysql-connector jar文件包含在WEB-INF / lib文件夹和TOMCAT_HOME / lib文件夹中。但我仍然得到这个错误。服务器在Ubuntu Server 14.04上运行。

添加jar的路径。

src/main/webapp/WEB-INF/lib 
usr/share/tomcat7/lib

似乎是什么问题,因此我将jar文件添加到必要的位置?

2 个答案:

答案 0 :(得分:1)

有时java类无法从lib文件夹中选择驱动程序(mysql java connector jar file)路径。要删除此问题,您可以在项目的以下目录中提取连接器jar。

  

的src /主/ web应用/ WEB-INF /类

OR

您也可以使用mysql_java_connector.jar的类路径引用编译java文件。

答案 1 :(得分:0)

答案是在使用DriverManager接口创建JDBC连接时,始终首先创建JDBC驱动程序的实例,以便将其加载到类加载器中。

try {
    // The newInstance() call is a work around for some
    // broken Java implementations

    Class.forName("com.mysql.jdbc.Driver").newInstance();
} catch (Exception ex) {
    // handle the error
}

谢谢大家。