springboot中service:
我這里底層用的jpa,有一種通過模板映射的方式讀取sql,還在學習中。
添加依賴
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
這個是實體bean User 的定義方式
springboot 采用orm 關系映射,添加注解@Table(name=“”) 啟動的時候springboot會自動去數據庫中查找是否存在該表,如果表不存在則新建,如果表有改動會改動。
@ManyToOne 是 多對一的注解
添加外鍵@JoinColumn 名稱為did
repo的實現:
@Repository
public interface UserRepository extends JpaRepository<User, Long> {
User findByNameLike(String name);
User readByName(String name);
List<User> getByCreateDateLessThan(Date star);
// Page<User> findByPage(Pageable pageable);
@Query("select t from User t where t.name like %:name%")
User findByName(@Param(value="name") String name);
@Query("select t from User t where t.name like %:name%")
public Page<User> findPageByName( @Param("name") String name,Pageable pageable);
}
JPA需要配置。告訴jpa去掃描repo的路徑
@Order(Ordered.HIGHEST_PRECEDENCE) //設定優先級,最高級
@Configuration
@EnableTransactionManagement(proxyTargetClass = true) //開啟事務支持
@EnableJpaRepositories(basePackages = "com.gzh.youth.repository") //指定jpa資源庫
@EntityScan(basePackages = "com.gzh.youth.entity")
public class JpaConfiguration {
@Bean
PersistenceExceptionTranslationPostProcessor persistenceExceptionTranslationPostProcessor(){
return new PersistenceExceptionTranslationPostProcessor();
}
}