我正在为我的项目开发 JPA 应用程序。我正在使用eclipselink。我找到了本教程,但它不适合我的应用程序 链接的复杂性。
我想为数据库的用户名、密码和 url 创建一个外部文件,这样我就不会在每次更改用户名和密码或数据库的主机名时更改persistence.xml 文件。
这是我正在使用的代码
Map map = new HashMap();
map.put(PersistenceUnitProperties.JDBC_USER, "root");
map.put(PersistenceUnitProperties.JDBC_PASSWORD, "toor");
map.put(PersistenceUnitProperties.JDBC_URL, "jdbc:mysql://localhost:3306/sad?zeroDateTimeBehavior=convertToNull");
map.put(PersistenceUnitProperties.JDBC_DRIVER, "com.mysql.jdbc.Driver");
上面的代码抛出异常
这是我的persistence.xml
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
<persistence-unit name="SADPU" transaction-type="RESOURCE_LOCAL">
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
<class>sad.entity.Credential</class>
<class>sad.entity.Customer</class>
<class>sad.entity.Employee</class>
<class>sad.entity.HourlyRate</class>
<class>sad.entity.Item</class>
<class>sad.entity.Product</class>
<class>sad.entity.ProductTransaction</class>
<class>sad.entity.Province</class>
<class>sad.entity.Tax</class>
<class>sad.entity.TransactionParticular</class>
<class>sad.entity.WorkingHours</class>
<class>sad.entity.Zero</class>
</persistence-unit>
设置持久性单元后,我创建了实体管理器
Persistence.createEntityManagerFactory("SADPU", map);
我删除了属性标签以测试我是否可以实现我想要的,但它会引发异常
异常描述:无法从驱动程序 [null]、用户 [null] 和 URL [null] 获取连接。验证您是否已设置预期的驱动程序类和 URL。检查您的登录、persistence.xml 或 sessions.xml 资源。jdbc.driver 属性应设置为与您的数据库平台兼容的类
我做错了吗?