第四章 企业级微信点餐项目(买家商品)

买家商品

标签(空格分隔): java springboot wechat


买家商品点单页面

DAO层设计与开发

项目配置文件设置

  • 项目依赖
<!-- 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>
</dependency>
  • 项目参数配置文件applocation.yml
spring:
    datasource:
        driver-class-name: com.mysql.jdbc.Driver
        username: root
        password: 123456
        url: jdbc:mysql://192.168.1.148:3306//wehcat_order?characterEncoding=utf-8&useSSL=false
    jpa:
        show-sql: true
  • 实体类对象dataobject,买家类目功能。记得加无参的构造方法。
  • 创建买家类目类(其中字段与数据库一致)
@Entity                     /** 实体类注解 */
@Table(name="tablename")    /** 实体类对应数据库表 */
@DynamicUpdate              /** 自动更新 */
@Id                         /** 主键注解 */
@GeneratedValue             /** 主键自增 */

备注:SpringJpa,采用骆驼式变量命名方式,第一种是不用@Table注解;例如数据库中命名为product_category则实体类用ProductCategory;第二种需要注解@Table(name="表名")则命名方式随便。@DynamicUpdate注解使用时,表明数据库中有自动更新字段例如时间,其中实体类中添加了时间变量,不添加自动更新字段,则数据库自动更新会被抵消。

  • lombok工具使用,lombok是一个可以通过简单的注解的形式来帮助我们简化消除一些必须有但显得很臃肿的 Java 代码的工具;比如我们新建了一个类,然后在其中写了几个字段,然后通常情况下我们需要手动去建立getter和setter方法啊,构造函数啊之类的,lombok的作用就是为了省去我们手动创建这些代码的麻烦,它能够在我们编译源码的时候自动帮我们生成这些方法。

  • 添加依赖

<!-- lombok工具包 -->
<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
</dependency>
  • 工具类注解说明
@Data           /** getter setter 方法都存在 */
@Getter         /** 只存在getter 方法 */
@Setter         /** 只存在setter 方法 */
  • 数据库映射对象repository,需要继承于JpaRepository,该类为一个接口
JpaRepository<对象,主键>
  • 单元测试。其中我们使用的是JpaRepository,单元测试注解和jpa增删改查说明如下。
@RunWith(SpringRunner.class) /** 运行方法类库注解 */
@SpringBootTest              /** 测试类声明 */
@Test                        /** 测试方法 */
Assert                       /** 测试值验证类,具体方法可查看类 */
@Transactional               /** 测试后保证数据库干净 */
save(对象);                  /** 表示添加和更新,会返回一个对象 */
findOne(id);                 /** 根据id查询一个对象 */
delete(id);                  /** 根据id删除 */

备注: 说明一下@Transactional注解在service中和在test中的回滚应用是不一样的,其中在service中表示如果方法抛出异常会回滚,错误数据会被删除,不存数据库。在test中表示做一些事情,做完后回滚。

这里会问如果根据某个字段增删改查而非id怎么办?

  • 这里则需要在映射类中添加具体的查询方法了,比如下面的通过集合查询。同时也有个规范就是其中的方法名必须按照要求;具体如下:
List<ProductCtegory> findByCategoryType(List<Integer> list);

"findByCategoryType",方法名一定要注意,这里我就被提示给坑了,报错了,找了几分钟。同时,关于具体查询可关注博客JpaRepository

Service层设计与开发

  • Service看到这个词就知道是业务了,一个公司的一个产品的核心模块。很多公司提供Api就是采用黑盒的方式,让别人不知道他的业务,同时也保证了部分保密的数据。

  • Service我们一般采用新建一个接口,在通过一个实现类实现业务的处理,业务的数据则调用映射层完成。实现类则需要添加@Service注解。别忘了单元测试。

以上就是本章的讲解的内容解析,至于具体代码提取请至百度云。
SpringBootWechat-1 提取码:dl5o


  • 原视频UP主慕课网(SpringBoot企业级微信点餐项目)
  • 本篇博客撰写人: XiaoJinZi 转载请注明出处
  • 学生能力有限 附上邮箱: 986209501@qq.com 不足以及误处请大佬指责
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容