Spring Boot整合Spring Data JPA过程解析
SpringBoot整合SpringDataJPA
1)加入依赖
org.springframework.boot spring-boot-starter-data-jpa mysql mysql-connector-java runtime
2)增加配置(application.properties)
server.port=8080 server.servlet.context-path=/ #databaseconfiguration spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.datasource.url=jdbc:mysql://localhost:3306/blog?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf-8 spring.datasource.username=root spring.datasource.password=123 #jpaconfiguration #更新或者创建数据库表结构 spring.jpa.hibernate.ddl-auto=update #控制台打印sql语句 spring.jpa.show-sql=true spring.jpa.open-in-view=false #logconfiguration logging.level.root=info
3)编写一个实体类(bean)和数据表进行映射,并且配置好映射关系
importjavax.persistence.Column; importjavax.persistence.Entity; importjavax.persistence.GeneratedValue; importjavax.persistence.GenerationType; importjavax.persistence.Id; importjavax.persistence.Table; importjavax.validation.constraints.NotBlank; /** *使用JPA注解配置映射关系 *Createdbyzxfon2019年9月30日 */ @Entity//告诉JPA这是一个实体类(和数据库映射的类) @Table(name="t_type")//@Table来指定和哪个数据表对应,如果省略默认表名就是类名首字母小写 publicclassType{ @Id//表明这是一个主键 @GeneratedValue(strategy=GenerationType.IDENTITY)//自增主键 privateLongid; @Column(name="last_name",length=50)//这是和数据表对应的一个列,省略默认列名就是属性名 privateStringname; }
4)编写一个Dao接口来操作实体类对应的数据表
importorg.springframework.data.jpa.repository.JpaRepository; /** *Createdbyzxfon2019年10月1日 */ //第一个泛型表示操作的类是Type,第二个泛型Long表示Type的主键id为Long类型 publicinterfaceTypeRepositoryextendsJpaRepository{ //定义自己的方法 TypefindTypeByName(Stringname); }
5)service层调用测试
importjava.util.List; importjava.util.Optional; importjavax.transaction.Transactional; importorg.springframework.beans.BeanUtils; importorg.springframework.beans.factory.annotation.Autowired; importorg.springframework.data.domain.Page; importorg.springframework.data.domain.Pageable; importorg.springframework.stereotype.Service; importcom.fei.NotFoundException; importcom.fei.po.Type; importcom.fei.repository.TypeRepository; importcom.fei.service.TypeService; /** *Createdbyzxfon2019年10月1日 */ @Service @Transactional publicclassTypeServiceImplimplementsTypeService{ @Autowired privateTypeRepositorytypeRepository; /** *保存一个分类 * *@paramtype *@return */ @Override publicTypesaveType(Typetype){ returntypeRepository.save(type); } /** *根据id获得一个分类对象 * *@paramid *@return */ @Override publicTypegetType(Longid){ returntypeRepository.findById(id).get(); } /** *根据分页参数查询一个分类列表 * *@parampageable *@return */ @Override publicPagelistType(Pageablepageable){ returntypeRepository.findAll(pageable); } /** *更新分类 * *@paramid *@paramtype *@return */ @Override publicTypeupdateType(Longid,Typetype){ Typet=typeRepository.findById(id).get(); if(t==null){ thrownewNotFoundException("类型不存在"); } BeanUtils.copyProperties(type,t); returntypeRepository.save(t); } /** *根据id删除一个分类 * *@paramid */ @Override publicvoiddeleteType(Longid){ typeRepository.deleteById(id); } /** *根据名字查询一个分类对象 * *@paramname *@return */ @Override publicTypegetTypeByName(Stringname){ returntypeRepository.findTypeByName(name); } /** *不带参数的查询所有分类 * *@return */ @Override publicList listType(){ returntypeRepository.findAll(); } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。