lclcsmart 2020-03-26
hibernate配置文件
spring.datasource.driverClassName=com.mysql.jdbc.Driverspring.datasource.url=jdbc:mysql://localhost:3306/ZHPLUS?serverTimezone=UTCspring.datasource.username=rootspring.datasource.password=admin
spring.jpa.database = MYSQLspring.jpa.show-sql= truespring.jpa.properties.hibernate.hbm2ddl.auto= updatespring.jpa.database-platform=org.hibernate.dialect.MySQL5Dialectspring.jpa.hibernate.use-new-id-generator-mappings=false
1.使用新版本mysql驱动启动报错
注:java.sql.SQLException:
The server time zone value ‘Öйú±ê׼ʱ¼ä’ is unrecognized or represents more than one time zone.
You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc time zone value if you want to utilize time zone support.
解决办法:
MySQL jdbc 6.0 版本以上必须配置“serverTimezone”参数;UTC代表的是全球标准时间,Asia/Shangha代表的是中国标准时间,领先UTC八个小时。
2.启动报错hibernate.dialect‘ not set
解决办法:
Hibernate SQL方言没有设置导致的,在properties文件中增加
spring.jpa.database-platform=org.hibernate.dialect.MySQLDialect(低版本)
spring.jpa.database-platform=org.hibernate.dialect.MySQL5Dialect(高版本)
3.intellij idea Entity类报错“Cannot resolve table”
解决办法:idea的Database配置一下数据库
4. 没有根据实体类生成表
解决方法
注解的使用
@Entity@Table(name = "t_user")
application.properties中需配置:spring.jpa.properties.hibernate.hbm2ddl.auto=update
有四个值:
create: 每次加载 hibernate 时都会删除上一次的生成的表,然后根据你的 model 类再重新来生成新表,哪怕两次没有任何改变也要这样执行,这就是导致数据库表数据丢失的一个重要原因。
create-drop :每次加载 hibernate 时根据 model 类生成表,但是 sessionFactory 一关闭,表就自动删除。
update:最常用的属性,第一次加载 hibernate 时根据 model 类会自动建立起表的结构(前提是先建立好数据库),以后加载 hibernate 时根据 model 类自动更新表结构,即使表结构改变了但表中的行仍然存在不会删除以前的行。要注意的是当部署到服器 后,表结构是不会被马上建立起来的,是要等 应用第一次运行起来后才会。
validate :每次加载 hibernate 时,验证创建数据库表结构,只会和数据库中的表进行比较,不会创建新表,但是会插入新值。
@Id@GeneratedValue(strategy = GenerationType.AUTO)主键的注解
5.Mysql创建实体类后生成序列了
解决办法:
方法一:
将@GeneratedValue(strategy = GenerationType.AUTO)改为@GeneratedValue(strategy = GenerationType.IDENTITY)
方法二:
在application.properties文件中,增加spring.jpa.hibernate.use-new-id-generator-mappings= false
是一个替代hibernate的一个作用于数据库的框架。 这里整合后不需要写一些简单的sql语句。 2、在resources下创建templates文件夹,在其下就可以书写页面了,和HTML的风格相似。