Springboot续之Data JPA

  1、pom.xml中添加依赖:

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

  2、application.properties中添加配置:

spring.datasource.url=jdbc:mysql://localhost:3306/springboot?serverTimezone=UTC          
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.jpa.properties.hibernate.hbm2ddl.auto=update
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect
spring.jpa.show-sql=true    //显示查询语句

  3、实体类中:3个注解

    @Entity
    public class Product {
        @Id
        @GeneratedValue(strategy=GenerationType.AUTO) //策略
        private Integer produceId;  
        private String produceName;   
        private Double producePrice;

  4、Reponsity基本使用

  a、service层

接口:

  public interface IProductService {

      List<Product>findAll();
  }
接口的实现类:

  @Service
  public class ProductService implements IProductService{   
    @Resource
    private ProductRepository productRepository;
    @Override
    public List<Product> findAll() {
        // TODO Auto-generated method stub
        return productRepository.findAll();
    }
}

  b、domain层中:

  @Repository
public interface ProductRepository extends JpaRepository<Product, Integer> {
}

  b、控制器中

@Controller //相当于@Controller和@Responsebody
@RequestMapping(value={"","/index"})
public class IndexController {
    @Resource
    private ProductService productService;
    @RequestMapping(value="/demo02")
    public String demo02(Model model){
        List<Product>list= new ArrayList<Product>();
        model.addAttribute("productList", productService.findAll());
        return "index/demo02";
    }
}
  c、复制demo01为demo02。运行,查找所有数据,测试成功。

 

 

  不需要创建数据库表,数据库表会直接直接创建。只需要填写数据就好。

  domain层中继承的JpaRepository接口中,已经有好几个数据库操作方法,JpaRepository又继承PagingAndSortingRepository,PagingAndSortingRepository又继承CrudRepository,这几个接口有好多操作数据库方法,直接用就可以了。常用的方法有:

  List<Entity>findAll();

  Optional<Entity> findOne(ID);

  void save(Entity);

  void delete(Entity);

  Long count();

  boolean exists(ID);

  分页查询:

  Page<Product>findAll(Pageable pageable);

  控制器中:

  

  自定义查询:

  ProductRespository中:

  @Modifying

  @Query("from Product p where p.productId=5")

  List<Product>myProduct();

    

 

posted @ 2018-11-22 09:35  牛牛11  阅读(198)  评论(0编辑  收藏  举报