**ERROR1:**Error creating bean with name ‘entityManagerFactory’ defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]:
突然明白一个道理,当发现错误时一定细心把错误看完,比如以上这个错误,百度后发现有不同个版本的解释,有JPA冲突啊,有XML文件配置错误啊,甚至有删除maven下的某些包让maven再从阿里云下载的,总之,这些解释肯定不能很好的解决这个问题,最好的办法还是自己思考首先一定要掌握hibernate和mybaties的知识,这样才能有效的分析问题,这里贴出当时学hibernate的知识
hibernate.cfg
<session-factory>
<!--数据库连接设置 -->
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="connection.url">jdbc:mysql://localhost:3306/hibernate</property>
<property name="connection.username">root</property>
<property name="connection.password">root</property>
<!-- 方言 -->
<property name="dialect">org.hibernate.dialect.MySQL5Dialect</property>
<!-- 控制台显示SQL -->
<property name="show_sql">true</property>
<!-- 自动更新表结构 -->
<property name="hbm2ddl.auto">update</property>
<!-- 最小连接数 -->
<property name="c3p0.min_size">7</property>
<!-- 最大连接数 -->
<property name="c3p0.max_size">42</property>
<!-- 获得连接的超时时间,如果超过这个时间,会抛出异常,单位毫秒 -->
<property name="c3p0.timeout">1800</property>
<!-- 最大的PreparedStatement的数量 -->
<property name="c3p0.max_statements">50</property>
</session-factory>
因为确定是spring boot 配置hibernate时出错了,就顺着hibernate的配置按上表一步步来,首先数据源配置,注意6.0往上驱动的配置变动以及xml文件里&这个符号是用&
;还是&(yml文件确定是用&),然后hibernate自带的一些配置,尤其是yml文件,一定别搞清楚级别,比如
| | |
|–|--|
| | |
虽然看着没什么区别,但比他高一级的配置变成平等的话就会出错。
后来,经过排查是数据源配置出错了,其实错误上也有提示,如果看到最后就会发现一个DataSource的bean也出问题了,其实,是后者的问题引发了前者的报错,其实如果看仔细错误原因也就能好解决了,不至于看着百度上好几种解决方式发呆
ERROER2:‘url’ attribute is not specified and no embedded datasource could be configured.
这个错误比较好解决,是你启动spring boot 时的java文件或者说是为了启动服务而设置的一个启动文件(HelloWordApplication.java)里面没有数据库层面的东西(说白了就是没有连接数据库的操作),因为spring boot好多东西都是自动加载的包括数据源,因为没用到数据源,所以可能没自动加载数据源,因为无法指定url,所以在启动的java文件中class上方加@SpringBootApplication(exclude = DataSourceAutoConfiguration.class),这样能保证数据源加载。
一般这个错误只是在spring boot创建初期遇到,一旦spring boot跑起来,就不会出现这个问题了。
本人小白,自学初期,通过写博客记录自己遇到的问题