Maven+Java环境下如何让Hibernate自动创建数据库
Hibernate运行提示找不到数据库的解决方案
hibernate.hbm2ddl.auto配置项仅支持自动创建/更新/删除数据表,无法自动创建数据库本身,这是你遇到问题的核心原因,可按以下步骤逐一排查修复:
- 先手动创建空数据库,不需要提前建表。登录MySQL后执行SQL命令:
CREATE DATABASE 你配置的数据库名 DEFAULT CHARACTER SET utf8mb4; - 检查hibernate.cfg.xml中的数据库连接URL配置是否正确,必须明确指定要连接的数据库名称,高版本MySQL需要补充时区等参数,参考配置:
<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/你的数据库名?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true</property>注意如果XML文件中&符号报错,可转义为
&使用 - 确认数据库账号密码配置正确,且该账号对目标数据库有读写权限,参考配置:
<property name="hibernate.connection.username">你的MySQL账号</property> <property name="hibernate.connection.password">你的MySQL密码</property> - 注解开发也需要在hibernate.cfg.xml中注册实体类,否则Hibernate无法识别到要映射的表结构,配置示例:
<mapping class="com.yourpackage.entity.YourEntity"/> - 检查pom.xml依赖版本是否匹配:MySQL8.x版本需要对应8.x版本的mysql-connector-java依赖,避免版本不兼容导致的连接异常。
- 开发阶段可将
hibernate.hbm2ddl.auto参数值调整为update,后续修改实体字段时不会清空已有表数据,调试更方便。
内容的提问来源于stack exchange,提问作者Leopoldo Todisco
相关产品推荐
相关产品推荐

