pom.xmlhtml
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency>
還須要一個根據實際狀況的 mysql connecter前端
application.propertiesmysql
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/detectx?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai spring.datasource.username=root spring.datasource.password=root spring.datasource.driver-class-name=com.mysql.jdbc.Driver spring.jpa.hibernate.ddl-auto=update spring.jpa.show-sql=true spring.jpa.properties.hibernate.format_sql=true spring.jpa.open-in-view=false
這裏 ?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai 必需要加上,能解決中文編碼問題和springboot 2.0 以上版本的報錯問題nginx
spring.jpa.properties.hibernate.format_sql=true 這裏的這個key雖然找不到,可是實際上是有效的,參考 https://cloud.tencent.com/developer/ask/55788web
SpringBoot將容許您使用如下方法設置任何可用的Hibernate屬性:
spring.jpa.properties.*
因此spring.jpa.properties.hibernate.format_sql=true也會起做用的。
springboot 2.0 以上須要注意的:spring
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/project?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.datasource.username=root spring.datasource.password=root 必需要這個 否則會報各類錯 參考: https://www.cnblogs.com/EasonJim/p/6906713.html https://www.jianshu.com/p/836d455663da
springboot 設置不須要設置項目名的方式(更加方便了前端對於資源的引用和nginx的解析)sql
server.servlet.context-path=/
便可不須要以項目名做爲web目錄
hibernate 相關:數據庫
org.hibernate.LazyInitializationException: could not initialize proxy - no Session
getOne換成findOne便可
hibernate 解決詭異的mysql存入中文亂碼:
使用hibernate查詢mysql,經過bean的get方法拿到字符串再寫入mysql中的字段會亂碼,須要String string = xxx.get(),把get方法拿到的值傳入到新的string中,在存入數據庫就不會中文亂碼了。
jpa的具體搭建狀況能夠參考項目 detectx 和 project(女僕管理系統),rm只是單純地集成了hibernate4,由於已經集成了mybatis,又由於是個ssm項目,因此沒法再集成jpa了。springboot
關於 jpa/hibernate 的有選擇性的更新這個功能,只能經過手動設定的方式實現,目前沒有方法實現自動有選擇性的更新,mybatis支持。mybatis
參考: