我正在学习hibernate / spring mvc,启动服务器时出现异常。我在intellij工作,这个数据库连接到我的IDE并且工作正常(也是"测试连接"没关系),但是当我尝试在配置文件中创建一个bean时,它不是工作在一起。 可能有什么问题?
@Configuration
@EnableTransactionManagement
@ComponentScan("com.packt.webstore")
public class RootApplicationContextConfig {
@Bean
public DataSource getDataSource() {
BasicDataSource dataSource = new BasicDataSource();
dataSource.setUsername("root");
dataSource.setPassword("root");
dataSource.setUrl("jdbc:mysql://localhost:3306/shop");
dataSource.setDriverClassName("com.mysql.jdbc.Driver");
return dataSource;
}
@Bean
public LocalSessionFactoryBean getSessionFactory() {
LocalSessionFactoryBean factoryBean = new
LocalSessionFactoryBean();
factoryBean.setDataSource(getDataSource());
Properties props = new Properties();
props.put("hibernate.show_sql", "true");
props.put("hibernate.hbm2ddl.auto", "update");
props.put("hibernate.dialect",
"org.hibernate.dialect.MySQLDialect");
factoryBean.setHibernateProperties(props);
factoryBean.setPackagesToScan("com.packt.webstore");
return factoryBean;
}
@Bean
public HibernateTransactionManager getTransactionalManager() {
HibernateTransactionManager transactionManager = new
HibernateTransactionManager();
transactionManager.setSessionFactory(getSessionFactory()
.getObject());
return transactionManager;
}
}
异常日志:
Error creating bean with name 'productController': Unsatisfied
dependency expressed through field 'productService': Error creating
bean with name 'productServiceImpl': Unsatisfied dependency expressed
through field 'products': Error creating bean with name
'productDaoImpl': Unsatisfied dependency expressed through field
'factory': Error creating bean with name 'getSessionFactory' defined in
com.packt.webstore.config.RootApplicationContextConfig: Invocation of
init method failed; nested exception is
org.hibernate.exception.GenericJDBCException: Unable to open JDBC
Connection for DDL execution;
答案 0 :(得分:2)
无法为DDL执行打开JDBC连接
告诉您在代码执行的那一刻,不能为配置的数据库建立Connection
。这可能是由许多原因造成的,因此我只列出最可能的原因:
root
。
root
?使用这些凭据通过mysql CLI本地连接。如果这样做,您可以排除密码不匹配。root
缺少使用名称shop
连接到数据库的权限。
root
数据库的用户shop
的权限?如果是,请检查和/或更改此用户的本地连接权限(GRANT)。 希望这份清单有所帮助。
根据mysql-connector.jar
的驱动程序版本,您必须仔细检查/选择驱动程序类的名称:
com.mysql.jdbc.Driver
com.mysql.cj.jdbc.Driver
答案 1 :(得分:0)
更改为Hibernate 5和mysql 5.1.39