springBoot + JPA整合

一 :加入依赖

二 :配置.properties文件

三 :代码实现

四 :启动配置

五 :总结


一:加入依赖

        本依赖实在基础springBoot的依赖上添加

 <dependency>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
 <groupId>mysql</groupId>
 <artifactId>mysql-connector-java</artifactId>
</dependency>

二 :application.properties 配置

spring.datasource.url=jdbc:mysql://localhost:3306/test?useSSL=false
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.tomcat.max-active=100
spring.datasource.tomcat.max-idle=200
spring.datasource.tomcat.initialSize=20
spring.jpa.database-platform=org.hibernate.dialect.MySQL5Dialect

三 代码:

    实体类如下:

      @Entity会被spring扫描并加载,
      @Id注解在主键上
     @Column name="name" 指该字段对应的数据库的字段名,如果相同就不需要定义。数据库下划线间隔和代码中的驼峰法       视为相同。

@Entity
public class User implements Serializable {
   
   @Id
   @GeneratedValue
   //@ApiModelProperty(name = "ID", value = "用户ID", dataType = "Long")
   public long id;
   @Column(name = "name")
   //@ApiModelProperty(name = "name", value = "用户名", dataType = "String")
   public String name;
   //@ApiModelProperty(name = "name", value = "用户名", dataType = "String")
   public String phone;

}

Repository如下:

@Repository
@Transactional
public interface UserRepos extends JpaRepository<User, Long> {
    /**
     * 通过用户名相等查询
     *
     * @param name 用户名
     * @return
     */
    List<User> findByName(String name);
    /**
     * 通过名字like查询
     *
     * @param name 用户名
     * @return
     */
    List<User> findByNameLike(String name);
}

调用如下:

@Service
public class UserServiceImple  implements IUserService,Serializable {

    @Autowired
    private UserRepos userRepos;

    public List<User> JPA_findAll() {
        return userRepos.findAll();
    

}

启动配置

    

  @EnableJpaRepositories({"test.repository"})//扫描repository
  @EntityScan("test.**")//扫描实体
@ComponentScan(basePackages ="test.**")//扫描bean

总结:

      1.如果项目中添加了JPA的依赖,但是没有配置数据源,启动项目会抛出异常。

        解决方式: 排除启动加载

    @SpringBootApplication(exclude={DataSourceAutoConfiguration.class,HibernateJpaAutoConfiguration.class})//TODO 启动 排除JPA和DATASourc
    2. spring boot 默认扫描类是 在启动类的当前包和下级包,如果不在默认扫描范围内,则需要添加注解扫描对应路径。否则无法扫描到controller,service等一些bean。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章