在线商城项目开发笔记(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  不同策略

posted @ 2020-05-20 09:51  Parachute黑喵  阅读(759)  评论(0编辑  收藏  举报