maven 休眠 SqlServer 无法加载 Class
maven hibernate SqlServer unable to load Class
当我尝试使用 Maven 连接到 SQL 服务器时,我有:
Caused by: org.hibernate.boot.registry.classloading.spi.ClassLoadingException: Unable to load class [com.microsoft.sqlserver.jdbc.SQLServerDriver]
在我的 POM.xml 中,存在 SQL 服务器和 Hibernate 的驱动程序:
<dependencies>
<dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>mssql-jdbc</artifactId>
<version>9.2.1.jre15</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>5.4.30.Final</version>
</dependency>
</dependencies>
这是我的内容 persistence.xml :
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<persistence xmlns="http://xmlns.jcp.org/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.2"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence
http://xmlns.jcp.org/xml/ns/persistence/persistence_2_2.xsd">
<persistence-unit name="connect" >
<properties>
<property name="javax.persistence.jdbc.driver" value="com.microsoft.sqlserver.jdbc.SQLServerDriver" />
<property name="javax.persistence.jdbc.url" value="jdbc:sqlserver://localhost:1433;databasename=warehouse"/>
<property name="javax.persistence.jdbc.user" value="user" />
<property name="javax.persistence.jdbc.password" value="password" />
<property name="hibernate.dialect" value="org.hibernate.dialect.SQLServerDialect" />
<property name="hibernate.show_sql" value= "true"/>
<property name="hibernate.hbm2ddl.auto" value="update"/>
</properties>
</persistence-unit>
</persistence>
当我查看“Maven 依赖项”树时,我有 mssql-jdbc-9.2.1.jre15.jar。当我打开它时,我看到 SQLServerDriver.class :它存在...
我不明白为什么,当我 运行 我的应用程序时,它告诉我无法加载 class SQLServerDriver
public class MainApp {
public static void main(String[] args) {
EntityManagerFactory emf = Persistence.createEntityManagerFactory("connect");
}
}
将依赖项添加到您的 pom.xml 只会使 JAR 可用于您的构建过程,但不一定可用于 运行 时间。你如何运行这个主要方法?如果你使用 java -jar
那么你必须明白 JDBC 驱动程序不会被重新打包到你的 JAR 文件中,所以你必须将它添加到 class 路径中。如果你想 运行 主方法与你的 pom.xml 的依赖关系,你可以使用 exec-maven-plugin。有关示例,请参见此处:https://www.mojohaus.org/exec-maven-plugin/usage.html#Java_goal
当我尝试使用 Maven 连接到 SQL 服务器时,我有:
Caused by: org.hibernate.boot.registry.classloading.spi.ClassLoadingException: Unable to load class [com.microsoft.sqlserver.jdbc.SQLServerDriver]
在我的 POM.xml 中,存在 SQL 服务器和 Hibernate 的驱动程序:
<dependencies>
<dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>mssql-jdbc</artifactId>
<version>9.2.1.jre15</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>5.4.30.Final</version>
</dependency>
</dependencies>
这是我的内容 persistence.xml :
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<persistence xmlns="http://xmlns.jcp.org/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.2"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence
http://xmlns.jcp.org/xml/ns/persistence/persistence_2_2.xsd">
<persistence-unit name="connect" >
<properties>
<property name="javax.persistence.jdbc.driver" value="com.microsoft.sqlserver.jdbc.SQLServerDriver" />
<property name="javax.persistence.jdbc.url" value="jdbc:sqlserver://localhost:1433;databasename=warehouse"/>
<property name="javax.persistence.jdbc.user" value="user" />
<property name="javax.persistence.jdbc.password" value="password" />
<property name="hibernate.dialect" value="org.hibernate.dialect.SQLServerDialect" />
<property name="hibernate.show_sql" value= "true"/>
<property name="hibernate.hbm2ddl.auto" value="update"/>
</properties>
</persistence-unit>
</persistence>
当我查看“Maven 依赖项”树时,我有 mssql-jdbc-9.2.1.jre15.jar。当我打开它时,我看到 SQLServerDriver.class :它存在...
我不明白为什么,当我 运行 我的应用程序时,它告诉我无法加载 class SQLServerDriver
public class MainApp {
public static void main(String[] args) {
EntityManagerFactory emf = Persistence.createEntityManagerFactory("connect");
}
}
将依赖项添加到您的 pom.xml 只会使 JAR 可用于您的构建过程,但不一定可用于 运行 时间。你如何运行这个主要方法?如果你使用 java -jar
那么你必须明白 JDBC 驱动程序不会被重新打包到你的 JAR 文件中,所以你必须将它添加到 class 路径中。如果你想 运行 主方法与你的 pom.xml 的依赖关系,你可以使用 exec-maven-plugin。有关示例,请参见此处:https://www.mojohaus.org/exec-maven-plugin/usage.html#Java_goal