Springboot与jpa

1环境:jdk1.8IDEA;mysql5.7;springboot2.0

1、创建相关工程

  创建工程部分省略---使用IDEA

2、引入相关依赖包

 <!--jpa相关jar-->

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-data-jpa</artifactId>

</dependency>

<!--mysql驱动-->

<dependency>

<groupId>mysql</groupId>

<artifactId>mysql-connector-java</artifactId>

<scope>runtime</scope>

</dependency>

 

 

 

3、创建application.yml并配置

spring:

datasource:

driver-class-name:com.mysql.jdbc.Driver

username:root

password:123456

url:jdbc:mysql://192.168.25.143:3306/sell?characterEncoding=utf8&useSSL=true

jpa:

show-sql:true

 

4、创建实体类,引入相关注解

packagecom.immoc.dataobject;

 

importlombok.Data;

 

importjavax.persistence.Entity;

importjavax.persistence.Id;

importjava.math.BigDecimal;

importjava.util.Date;

 

/**

*商品信息

*/

@Entity//实体与数据库对应

@Data//lombok注解,可省set、get等相关,提高代码简洁程度

publicclassProductInfo{

/**

*主键

*/

@Id//其为主键

Private String productId;

/**

*商品名称

*/

Private String productName;

/**

*商品价格

*/

Private BigDecimal productPrice;

/**

*商品库存

*/

Private Integer productStock;

/**

*商品描述

*/

Private Stringproduct Description;

/**

*商品照片

*/

Private String productIcon;

/**

*类目编号

*/

Private Integer categoryType;

/**

*

*/

Private Date createTime;

/**

*

*/

Private Date updateTime;

 

}

5、创建sell数据库和product_info表(sql例子)

 

SET FOREIGN_KEY_CHECKS=0;

 

-- ----------------------------

-- Table structure for product_info

-- ----------------------------

DROP TABLE IF EXISTS `product_info`;

CREATE TABLE `product_info` (

  `product_id` varchar(32) NOT NULL,

  `product_name` varchar(64) NOT NULL COMMENT '商品名称',

  `product_price` decimal(8,2) NOT NULL COMMENT '单价',

  `product_stock` int(11) NOT NULL COMMENT '库存',

  `product_description` varchar(64) DEFAULT NULL COMMENT '描述',

  `product_icon` varchar(512) DEFAULT NULL COMMENT '小图',

  `product_status` tinyint(3) DEFAULT '0' COMMENT '商品状态,0正常1下架',

  `category_type` int(11) NOT NULL COMMENT '类目编号',

  `create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',

  `update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',

  PRIMARY KEY (`product_id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

 

6、创建接口Repository 继承JpaRepository<实体类,主键类型>

/**

*基本的增删改查可直接使用

*复杂方法必须重写

*

*/

packagecom.immoc.repository;

 

importcom.immoc.dataobject.ProductInfo;

importorg.springframework.data.jpa.repository.JpaRepository;

 

publicinterfaceProductInfoRepositoryextendsJpaRepository<ProductInfo,String>{

}

 

5、测试相关类

packagecom.immoc.repository;

 

importcom.immoc.dataobject.ProductInfo;

importorg.junit.Assert;

importorg.junit.Test;

importorg.junit.runner.RunWith;

importorg.springframework.beans.factory.annotation.Autowired;

importorg.springframework.boot.test.context.SpringBootTest;

importorg.springframework.test.context.junit4.SpringRunner;

 

importjava.util.List;

importjava.util.Optional;

 

@SpringBootTest

@RunWith(SpringRunner.class)

publicclassProductInfoRepositpryTest{

@Autowired

ProductInfoRepositoryinfoRepositpry;

 

@Test

publicvoidfindOne(){

StringproductId="1";

ProductInfoproductInfo=newProductInfo();

Optional<ProductInfo>infoOptional=infoRepositpry.findById(productId);

if(infoOptional.isPresent()){

productInfo=infoOptional.get();

}

Assert.assertNotNull(productInfo);

}

 

@Test

publicvoidfindByCategoryType(){

IntegercategoryTYpe=1;

List<ProductInfo>infos=infoRepositpry.findByCategoryType(categoryTYpe);

Assert.assertNotNull(infos);

}

}

 

猜你喜欢

转载自blog.csdn.net/weixin_36276193/article/details/82468696