springboot中jpa+lombok
1.依赖
<!--jpa相关--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </dependency>
yml配置文件
spring: datasource: url: jdbc:mysql://127.0.0.1:3306/wxdd?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf-8&useSSL=false driver-class-name: com.mysql.cj.jdbc.Driver username: root password: 123456 jpa: show-sql: true
2.pojo
@Entity @DynamicUpdate//若是数据库有默认的字段,会根据数据库默认字段进行修改 @Data //lombok 他可以创建set、get方法以及toString public class ProductInfo { @Id @GeneratedValue(strategy= GenerationType.IDENTITY) private Integer productId; private String productName;//名称 private Integer productPrice;//加个 private Integer productType;//类目 }
3.mapper文件
public interface ProductInfoMapper extends JpaRepository<ProductInfo,Integer> {
//方法名有格式的
List<ProductInfo> findByProductIdIn(List<Integer> list);
}
4.测试类
@SpringBootTest @RunWith(SpringRunner.class) public class ProductInfoMapperTest { @Autowired private ProductInfoMapper product; @Test @Transactional public void getOne(){ ProductInfo productInfo=product.getOne(1232); System.out.println(productInfo); } @Test // @Transactional public void savMsg(){ ProductInfo productInfo = new ProductInfo(); productInfo.setProductName("张三"); productInfo.setProductPrice(123456); productInfo.setProductType(2); ProductInfo pr = product.save(productInfo); Assert.assertNotNull(pr); // Assert.assertNotEquals(null,pr); } @Test public void findByProductIdInTest(){ List<Integer> list = Arrays.asList(1234,1235); List<ProductInfo> result = product.findByProductIdIn(list); System.out.println(result.toString()); Assert.assertNotEquals(0,result.size()); } }
@Modifying:可以使用该注解来实现通过JPQL修改和删除(JPQL不支持添加)
@Modifying
@Query(value = "update Person p set p.name = ?1, p.age = ?2 where p.id = ?3")
void updatePerson(String name, Integer age, Long id);