1.MappingNotFoundException: Mapping (RESOURCE) not found:***
1.1 错误概述
该错误属于映射文件找不到的错误,其中 “***” 表示的是在hibernate配置文件中(hibernate.cfg.xml)mapping标签中的映射文件地址,如果没有根据地址找到对应的映射文件,则会报MappingNotFoundException异常。异常如下图所示。
主要是由于,根据mapping的地址没有找到对应的映射文件。
1.2 解决方法
(1) 检查resource地址是不是写错了,一个比较好的检查的办法是按住ctrl键,然后鼠标放在User.hbm.xml上,如果地址没有书写问题,地址会变蓝,并且点击后会跳转到对应的文件页面。
(2) 除了书写问题,还有可能是User.hbm.xml文件位置放的不对,
如果是普通工程的话,需要将配置文件存放在java文件下,可以将映射文件放到实体类所在的包中,例如下图所示,存放的地址就是 “com/sw/bean/User.hbm.xml”。或者我们创建resource目录,将文件存放在resource目录中。否则,如果存放位置不正确,则会找不到文件。
如果是maven工程的话,我们需要注意,idea中的maven项目会自动生成一个resource目录,配置文件必须要存放在resource目录中,不能放在java文件下,否则会报MappingNotFoundException异常。
2.UnsupportedOperationException: The application must supply JDBC connections
2.1 错误概述
该错误是不支持操作异常,会提示“应用程序必须提供JDBC连接”。是由于用户没有提供jdbc链接url而导致hibernate无法进行数据库链接。
2.2 解决方法
(1)在hibernate.cfg.xml文件中没有配置数据库链接地址,需要加入以下配置项:
<property name="hibernate.connection.url">【数据库链接地址】</property>
(2)property的name书写错误,有可能是存在空格。例如下图所示name中末尾的空格。
3.SQLException: Access denied for user ''@'localhost'
3.1错误概述
在链接数据库时发生SQL异常,并提示拒绝访问。
3.2解决方法
通过报错信息我们可以看到,用户名部分是空的,说明hibernate并没有接受到用户名。和上一个错误很像,
(1)一种情况是hibernate.cfg.xml配置文件中没有写用户名的配置项,则需要加上:
<property name="hibernate.connection.username">root</property>
(2)第二种情况就是property的name属性拼写错误或者加入了多余的空格,需要仔细检查并更改。
4.SQLException: Access denied for user 'root'@'localhost'
4.1错误概述
在链接数据库时发生SQL异常,并提示拒绝访问。
4.2解决方法
通过报错信息我们可以看到,用户名部分是正确的,但是依然拒绝访问,很有可能是密码没有配置成功,和上一种错误类似,
(1)hibernate.cfg.xml中没有密码的配置项,需要加上:
<property name="hibernate.connection.password ">【密码】</property>
(2)检查property是否有拼写错误或者多余空格。