添加JPA pom依賴
Demo使用的是mysql數據庫,添加mysql連接pom依賴
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
配置mysql連接信息,
寫jpa接口,需繼承JpaRepository添加泛型,需要添加註解@Repository,可以使用其中繼承的方法,也可以按照jpa方法的規則,添加新方法
package ppc.product.jpa;
import java.util.List;
import java.lang.annotation.Repeatable;
import java.util.List;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
import ppc.product.entity.Product;
@Repository
public interface ProductJpa extends JpaRepository<Product,String> {
List<Product> findByProductStatus(Integer status);
}
寫測試類:
package ppc.product.jpa;
import java.lang.management.RuntimeMXBean;
import org.junit.jupiter.api.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import ppc.product.entity.Product;
import java.util.List;
import static org.junit.jupiter.api.Assertions.*;
@RunWith(SpringRunner.class)
@SpringBootTest
class ProductJpaTest {
@Autowired
ProductJpa productJpa;
@Test
public void list(){
List<Product> list = productJpa.findAll();
for (Product product : list) {
System.out.println(product);
}
}
@Test
public void findByProductStatus(){
List<Product> list = productJpa.findByProductStatus(0);
System.out.println(list.size());
}
}
查看測試結果
自帶方法
Hibernate: select product0_.product_id as product_1_1_, product0_.category_type as category2_1_, product0_.create_time as create_t3_1_, product0_.product_description as product_4_1_, product0_.product_icon as product_5_1_, product0_.product_name as product_6_1_, product0_.product_price as product_7_1_, product0_.product_status as product_8_1_, product0_.product_stock as product_9_1_, product0_.update_time as update_10_1_ from product_info product0_
Product(productId=157875196366160022, productName=皮蛋粥, productPrice=0.01, productStock=20, productDescription=好喫的皮蛋粥, productIcon=//fuss10.elemecdn.com/0/49/65d10ef215d3c770ebb2b5ea962a7jpeg.jpeg, productStatus=0, categoryType=11, createTime=2017-03-29 08:39:15.0, updateTime=2019-05-21 11:01:21.0)
Product(productId=157875227953464068, productName=慕斯蛋糕, productPrice=10.9, productStock=196, productDescription=美味爽口, productIcon=//fuss10.elemecdn.com/9/93/91994e8456818dfe7b0bd95f10a50jpeg.jpeg, productStatus=1, categoryType=1, createTime=2017-03-29 08:35:54.0, updateTime=2017-04-21 23:05:57.0)
Product(productId=164103465734242707, productName=蜜汁雞翅, productPrice=0.02, productStock=982, productDescription=好喫, productIcon=//fuss10.elemecdn.com/7/4a/f307f56216b03f067155aec8b124ejpeg.jpeg, productStatus=0, categoryType=22, createTime=2017-03-31 06:11:56.0, updateTime=2019-05-21 11:01:26.0)
新增加方法
Hibernate: select product0_.product_id as product_1_1_, product0_.category_type as category2_1_, product0_.create_time as create_t3_1_, product0_.product_description as product_4_1_, product0_.product_icon as product_5_1_, product0_.product_name as product_6_1_, product0_.product_price as product_7_1_, product0_.product_status as product_8_1_, product0_.product_stock as product_9_1_, product0_.update_time as update_10_1_ from product_info product0_ where product0_.product_status=?
2
ok