zoukankan      html  css  js  c++  java
  • 在线商城项目开发笔记(1)--- javax.persistence 的注解配置实践(实体类,DAO,服务层)

    最近想将之前学的springboot框架及相关知识赋予实践,于是便开了这个自学笔记,将开发过程中的知识点总结规整,以便日后参考。

    1.实体类用于映射:

    import javax.persistence.Column;
    import javax.persistence.Entity;
    import javax.persistence.GeneratedValue;
    import javax.persistence.GenerationType;
    import javax.persistence.Id;
    import javax.persistence.Table;
    import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
    
    @Entity  //通过@Entity注解将一个类声明为一个实体bean
    @Table(name = "category")   //@Table注解可以为实体bean映射指定表,name属性表示实体所对应表的名称,如果没有定义 ,那么系统自动使用默认值:实体的类名(不带包名)
    @JsonIgnoreProperties({ "handler","hibernateLazyInitializer" })
    //因为是前后端分离,所以传输使用的是Json格式,如果jpa来做实体类的持久化,jpa 默认会使用 hibernate,所以我们要忽视掉着两个无须 json 化的属性。
    public class Category {
        @Id   //用于标记属性的主键
        @GeneratedValue(strategy = GenerationType.IDENTITY)  //表示主键是自动生成策略,一般该注释和 @Id一起使用,这里用IDENTITY,具体区别可以看资料(3)
        @Column(name = "id")  //声明数据库字段和类属性对应关系
        int id;  //对应数据库里的主键id
        String name;//对应分类名
    
        public int getId() {
            return id;
        }
        public void setId(int id) {
            this.id = id;
        }
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
    }

    2.DAO:

    import carl.tmall.pojo.Category;
    import org.springframework.data.jpa.repository.JpaRepository;
    
    public interface CategoryDAO extends JpaRepository<Category,Integer> { //第一个参是要映射的类名,第二个是主键类型,我们是int,但是这里写Integer(自动拆装)
    }

    CategoryDAO 类集成了 JpaRepository,提供CRUD和分页的各种常见功能。

    3.服务层

    import carl.tmall.dao.CategoryDAO;
    import carl.tmall.pojo.Category;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.data.domain.Sort;
    import org.springframework.stereotype.Service;
    
    import java.util.List;
    
    @Service  //标记为service层
    public class CategoryService {
        @Autowired CategoryDAO categoryDAO;  //自动装配CategoryDAO对象
        public List<Category> list(){
            Sort sort = new Sort(Sort.Direction.ASC,"id"); //以升序来排表,然后通过categoryDAO进行查询。
            return categoryDAO.findAll(sort);
        }
    }

    参考资料:

    1.https://spring.io/blog/2011/02/10/getting-started-with-spring-data-jpa/ 官方教程,很详细!

    2.https://www.cnblogs.com/zjdxr-up/p/9737433.html    JPA浅谈

    3.https://www.objectdb.com/java/jpa/entity/generated#The_Auto_Strategy  不同策略

  • 相关阅读:
    Hive学习笔记记录
    Hadoop学习笔记记录
    python学习笔记记录
    2018高级软件工程——助教总结
    Week3 第二次结对编程
    Week2 第一次结对编程
    Week1 博客作业
    最后一周总结
    阅读和提问3
    个人项目 案例分析
  • 原文地址:https://www.cnblogs.com/cptCarlvon/p/12921421.html
Copyright © 2011-2022 走看看