SpringData简介:SpringData是Spring 的一个子项目。用于简化数据库访问,支持NoSQL 和 关系数据存储。 其主要目标是使数据库的访问变得方便快捷。
注意设置: spring.jpa.database-platform=org.hibernate.dialect.MySQL8Dialect,自动生成表时数据库引擎为InnoDB,默认生成为MyISAM,MySQL8Dialect为MySQL版本为8.0,如果版本为5.7 则改为MySQL57Dialect。
spring.datasource.username=root spring.datasource.password=root spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.datasource.url=jdbc:mysql://192.168.1.11:3306/SpringData?characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true spring.jpa.show-sql=true spring.jpa.database=mysql spring.jpa.generate-ddl=true spring.jpa.hibernate.ddl-auto=update spring.jpa.database-platform=org.hibernate.dialect.MySQL8Dialectsave():执行保存过程
Hibernate: select article0_.id as id1_0_0_, article0_.create_date_time as create_d2_0_0_, article0_.name as name3_0_0_, article0_.title as title4_0_0_ from article article0_ where article0_.id=? Hibernate: insert into article (create_date_time, name, title) values (?, ?, ?)saveAll():执行保存过程
Hibernate: select article0_.id as id1_0_0_, article0_.create_date_time as create_d2_0_0_, article0_.name as name3_0_0_, article0_.title as title4_0_0_ from article article0_ where article0_.id=? Hibernate: insert into article (create_date_time, name, title) values (?, ?, ?) Hibernate: insert into article (create_date_time, name, title) values (?, ?, ?)saveAndFlush():执行保存过程
Hibernate: select article0_.id as id1_0_0_, article0_.create_date_time as create_d2_0_0_, article0_.name as name3_0_0_, article0_.title as title4_0_0_ from article article0_ where article0_.id=? Hibernate: insert into article (create_date_time, name, title) values (?, ?, ?)只要保存实体时主键不为空, save():执行保存过程
Hibernate: select article0_.id as id1_0_0_, article0_.create_date_time as create_d2_0_0_, article0_.name as name3_0_0_, article0_.title as title4_0_0_ from article article0_ where article0_.id=? Hibernate: update article set create_date_time=?, name=?, title=? where id=?saveAll():执行保存过程
Hibernate: select article0_.id as id1_0_0_, article0_.create_date_time as create_d2_0_0_, article0_.name as name3_0_0_, article0_.title as title4_0_0_ from article article0_ where article0_.id=? Hibernate: select article0_.id as id1_0_0_, article0_.create_date_time as create_d2_0_0_, article0_.name as name3_0_0_, article0_.title as title4_0_0_ from article article0_ where article0_.id=? Hibernate: update article set create_date_time=?, name=?, title=? where id=?saveAndFlush():执行保存过程
Hibernate: select article0_.id as id1_0_0_, article0_.create_date_time as create_d2_0_0_, article0_.name as name3_0_0_, article0_.title as title4_0_0_ from article article0_ where article0_.id=? Hibernate: update article set create_date_time=?, name=?, title=? where id=?如果Id不存在会出现异常org.springframework.dao.EmptyResultDataAccessException: No class com.felix.springdata.model.Article entity with id 1 exists!, 2. delete(S s) 根据实体删除,执行过程同deleteById ,先查询Id是否存在,存再删除,不存在不执行删除 3. deleteAllInBatch() 直接删除
Hibernate: delete from article4.deleteAll() 删除全部,先查询,再删除,没有数据,只执行查询语句
Hibernate: select article0_.id as id1_0_, article0_.create_date_time as create_d2_0_, article0_.name as name3_0_, article0_.title as title4_0_ from article article0_ Hibernate: delete from article where id=? Hibernate: delete from article where id=? Hibernate: delete from article where id=? Hibernate: delete from article where id=?5.deleteAll(S s) 删除全部, 先查询id是否存在,再删除
Hibernate: select article0_.id as id1_0_0_, article0_.create_date_time as create_d2_0_0_, article0_.name as name3_0_0_, article0_.title as title4_0_0_ from article article0_ where article0_.id=? Hibernate: delete from article where id=?6.deleteInBatch() 删除全部,主要是根据id删除
Hibernate: delete from article where id=? or id=?