1环境:jdk1.8;IDEA;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);
}
}