陕西建设厅网站windows7优化大师下载
web/
2025/10/4 21:47:47/
文章来源:
陕西建设厅网站,windows7优化大师下载,福州网站建设发布,新闻营销SpringData JPA
基本介绍
Spirng data jpa是spring提供的一套简化JPA开发的框架#xff0c;按照约定好的【方法命名规则】写dao层接口#xff0c;就可以在不写接口实现的情况下#xff0c;实现对数据库的访问和操作。 同时提供了很多除了CRUD之外的功能#xff0c;如分页…SpringData JPA
基本介绍
Spirng data jpa是spring提供的一套简化JPA开发的框架按照约定好的【方法命名规则】写dao层接口就可以在不写接口实现的情况下实现对数据库的访问和操作。 同时提供了很多除了CRUD之外的功能如分页、排序、复杂查询等等。
依赖 dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-data-jpa/artifactId
/dependencydependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactIdscoperuntime/scope
/dependencySpringboot配置
spring:# 数据源datasource:# mysql 驱动driver-class-name: com.mysql.jdbc.Driver# 数据库地址url: jdbc:mysql://localhost:3306/demo?useUnicodetruecharacterEncodingutf-8# 数据库用户名username: root# 数据库密码password: 123456jpa:hibernate:# 启动数据库创建新的表ddl-auto: update# 控制台显示SQLshow-sql: true配置文件 hibernate.hbm2ddl.auto 参数的作用主要用于自动创建、更新、验证数据库表结构有四个值。
参数名说明create每次加载 Hibernate 时都会删除上一次生成的表然后根据 model 类再重新来生成新表哪怕两次没有任何改变也要这样执行这就是导致数据库表数据丢失的一个重要原因。create-drop每次加载 Hibernate 时根据 model 类生成表但是 sessionFactory 一关闭表就自动删除。update最常用的属性第一次加载 Hibernate 时根据 model 类会自动建立起表的结构前提是先建立好数据库以后加载 Hibernate 时根据 model 类自动更新表结构即使表结构改变了但表中的行仍然存在不会删除以前的行。要注意的是当部署到服务器后表结构是不会被马上建立起来的是要等应用第一次运行起来后才会。validate每次加载 Hibernate 时验证创建数据库表结构只会和数据库中的表进行比较不会创建新表但是会插入新值。
JPA相关注解
注解解释Entity声明类为实体或表。Table声明表名。Basic指定非约束明确的各个字段。Embedded指定类或它的值是一个可嵌入的类的实例的实体的属性。Id指定的类的属性用于识别一个表中的主键。GeneratedValue 指定如何标识属性可以被初始化例如自动、手动、或从序列表中获得的值。Transient指定的属性它是不持久的即该值永远不会存储在数据库中。Column指定持久属性栏属性。SequenceGenerator指定在GeneratedValue注解中指定的属性的值。它创建了一个序列。TableGenerator指定持久属性栏属性。Column指定在GeneratedValue批注指定属性的值发生器。它创造了的值生成的表。AccessType指定持久属性栏属性。Column这种类型的注释用于设置访问类型。如果设置AccessTypeFIELD则可以直接访问变量并且不需要getter和setter但必须为public。如果设置AccessTypePROPERTY通过getter和setter方法访问Entity的变量。JoinColumn指定一个实体组织或实体的集合。这是用在多对一和一对多关联。UniqueConstraint指定的字段和用于主要或辅助表的唯一约束。ColumnResult参考使用select子句的SQL查询中的列名。ManyToMany定义了连接表之间的多对多一对多的关系。ManyToOne定义了连接表之间的多对一的关系。OneToMany定义了连接表之间存在一个一对多的关系。OneToOne定义了连接表之间有一个一对一的关系。NamedQueries指定命名查询的列表。NamedQuery指定使用静态名称的查询。
小栗子
新增、修改、删除、查询、分页查询等基础操作。 dao 层 Repository
public interface BookRepository extends JpaRepositoryBook, Long {
}实体类 Data
Entity
Table(name book)
public class Book {IdGeneratedValue(strategy GenerationType.IDENTITY)private Long id;Column(name book_name)private String bookName;Column(name author)private String author;Column(name create_time)private Date createTime;Overridepublic String toString() {return Book{ id id , bookName bookName \ , author author \ , createTime createTime };}
}新增 Test
public void saveBook(){Book booknew Book();book.setBookName(Helo);book.setAuthor(ddddd);book.setCreateTime(new Date());System.out.println(bookRepository.save(book));}修改 Test
public void updateBook(){Book booknew Book();book.setId(1L);book.setBookName(Helo222);book.setAuthor(ddddd222);book.setCreateTime(new Date());System.out.println(bookRepository.saveAndFlush(book));}删除 Test
public void deleteBookById(){bookRepository.deleteById(1L);System.out.println(bookRepository.findAll());}查询数量 /*** 统计数量*/
Test
public void getBookCount(){System.out.println(bookRepository.count());}查询所有 /*** 查询全部图书信息*/
Test
public void findAllBook(){System.out.println(bookRepository.findAll());}分页查询 /*** 分页查询*/
Test
public void findBookByPage(){Pageable pageablePageRequest.of(1,3,Sort.by(Sort.Order.desc(id)));//分页排序PageBook pagebookRepository.findAll(pageable);page.forEach(System.out::println);}
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/87001.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!