精华内容
下载资源
问答
  • 1.实体类创建 1.1创建user实体类,因为使用了springboot,所以表会自动创建,user类包含众多属性,如用户名,密码,别称,类型,时间等等。同时,user类会与新闻有一对多关系,属性中需标明。 代码如下: @Entity @...

    1.实体类创建
    1.1创建user实体类,因为使用了springboot,所以表会自动创建,user类包含众多属性,如用户名,密码,别称,类型,时间等等。同时,user类会与新闻有一对多关系,属性中需标明。
    代码如下:

    @Entity
    @Table(name = "t_user")
    public class User {
        @Id     //主键标识
        @GeneratedValue(strategy = GenerationType.IDENTITY)
        private Long id;
        private String nickname;
        private String username;
        private String password;
        private String email;
        private String avatar;
        private Integer type;
    
        @Temporal(TemporalType.TIMESTAMP)
        private Date creatTime;
    
        @Temporal(TemporalType.TIMESTAMP)
        private Date updateTime;
    
        @OneToMany(mappedBy = "user")
        private List<News> newsList = new ArrayList<>();
    
        public Long getId() {
            return id;
        }
    
        public void setId(Long id) {
            this.id = id;
        }
    
        public String getNickname() {
            return nickname;
        }
    
        public void setNickname(String nickname) {
            this.nickname = nickname;
        }
    
        public String getUsername() {
            return username;
        }
    
        public void setUsername(String username) {
            this.username = username;
        }
    
        public String getPassword() {
            return password;
        }
    
        public void setPassword(String password) {
            this.password = password;
        }
    
        public String getEmail() {
            return email;
        }
    
        public void setEmail(String email) {
            this.email = email;
        }
    
        public String getAvatar() {
            return avatar;
        }
    
        public void setAvatar(String avatar) {
            this.avatar = avatar;
        }
    
        public Integer getType() {
            return type;
        }
    
        public void setType(Integer type) {
            this.type = type;
        }
    
        public Date getCreatTime() {
            return creatTime;
        }
    
        public void setCreatTime(Date creatTime) {
            this.creatTime = creatTime;
        }
    
        public Date getUpdateTime() {
            return updateTime;
        }
    
        public void setUpdateTime(Date updateTime) {
            this.updateTime = updateTime;
        }
    
        public List<News> getNewsList() {
            return newsList;
        }
    
        public void setNewsList(List<News> newsList) {
            this.newsList = newsList;
        }
    
        @Override
        public String toString() {
            return "User{" +
                    "id=" + id +
                    ", nickname='" + nickname + '\'' +
                    ", username='" + username + '\'' +
                    ", password='" + password + '\'' +
                    ", email='" + email + '\'' +
                    ", avatar='" + avatar + '\'' +
                    ", type=" + type +
                    ", creatTime=" + creatTime +
                    ", updateTime=" + updateTime +
                    ", newsList=" + newsList +
                    '}';
        }
    }
    
    

    1.2建立news实体类,与user类相同,会自动建表
    代码如下:

    @Entity
    @Table(name = "t_news")
    public class News {
    
        @Id
        @GeneratedValue(strategy = GenerationType.IDENTITY)
        private Long id;
        private String title;
        @Basic(fetch = FetchType.LAZY)
        @Lob
        private String content;
        private String firstPicture;
        private String flag;
        private String views;
        private boolean appreciation;
        private boolean shareStatement;
        private boolean commentabled;
        private boolean published;
        private boolean recommend;
    
        @Temporal(TemporalType.TIMESTAMP)
        private Date creatTime;
    
        @Temporal(TemporalType.TIMESTAMP)
        private Date updateTime;
    
        @ManyToOne
        private Type type;
    
        @ManyToOne
        private User user;
    
        public News() {
        }
    
        public Long getId() {
            return id;
        }
    
        public void setId(Long id) {
            this.id = id;
        }
    
        public String getTitle() {
            return title;
        }
    
        public void setTitle(String title) {
            this.title = title;
        }
    
        public String getContent() {
            return content;
        }
    
        public void setContent(String content) {
            this.content = content;
        }
    
        public String getFirstPicture() {
            return firstPicture;
        }
    
        public void setFirstPicture(String firstPicture) {
            this.firstPicture = firstPicture;
        }
    
        public String getFlag() {
            return flag;
        }
    
        public void setFlag(String flag) {
            this.flag = flag;
        }
    
        public String getViews() {
            return views;
        }
    
        public void setViews(String views) {
            this.views = views;
        }
    
        public boolean isAppreciation() {
            return appreciation;
        }
    
        public void setAppreciation(boolean appreciation) {
            this.appreciation = appreciation;
        }
    
        public boolean isShareStatement() {
            return shareStatement;
        }
    
        public void setShareStatement(boolean shareStatement) {
            this.shareStatement = shareStatement;
        }
    
        public boolean isCommentabled() {
            return commentabled;
        }
    
        public void setCommentabled(boolean commentabled) {
            this.commentabled = commentabled;
        }
    
        public boolean isPublished() {
            return published;
        }
    
        public void setPublished(boolean published) {
            this.published = published;
        }
    
        public boolean isRecommend() {
            return recommend;
        }
    
        public void setRecommend(boolean recommend) {
            this.recommend = recommend;
        }
    
        public Date getCreatTime() {
            return creatTime;
        }
    
        public void setCreatTime(Date creatTime) {
            this.creatTime = creatTime;
        }
    
        public Date getUpdateTime() {
            return updateTime;
        }
    
        public void setUpdateTime(Date updateTime) {
            this.updateTime = updateTime;
        }
    
        public Type getType() {
            return type;
        }
    
        public void setType(Type type) {
            this.type = type;
        }
    
        public User getUser() {
            return user;
        }
    
        public void setUser(User user) {
            this.user = user;
        }
    
        @Override
        public String toString() {
            return "News{" +
                    "id=" + id +
                    ", title='" + title + '\'' +
                    ", content='" + content + '\'' +
                    ", firstPicture='" + firstPicture + '\'' +
                    ", flag='" + flag + '\'' +
                    ", views='" + views + '\'' +
                    ", appreciation=" + appreciation +
                    ", shareStatement=" + shareStatement +
                    ", commentabled=" + commentabled +
                    ", published=" + published +
                    ", recommend=" + recommend +
                    ", creatTime=" + creatTime +
                    ", updateTime=" + updateTime +
                    ", type=" + type +
                    ", user=" + user +
                    '}';
        }
    }
    

    1.3创建Type实体类
    代码如下:

    
    @Entity
    @Table(name = "t_type")
    public class Type {
    
        @Id     //主键标识
        @GeneratedValue(strategy = GenerationType.IDENTITY)
        private Long id;
        @NotBlank(message = "分类名称不能为空")
        private String name;
    
        @OneToMany(mappedBy = "type")
        private List<News> news = new ArrayList<>();
    
        public Type(){
    
        }
    
        public Long getId() {
            return id;
        }
    
        public void setId(Long id) {
            this.id = id;
        }
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public List<News> getNews() {
            return news;
        }
    
        public void setNews(List<News> news) {
            this.news = news;
        }
    
        @Override
        public String toString() {
            return "Type{" +
                    "id=" + id +
                    ", name='" + name + '\'' +
                    '}';
        }
    }
    
    

    2在dao包下创建相应与数据库连接接口(注意,方法名不可写错,必须符合规范)
    创建与user相关的数据库连接接口UserRepository
    代码如下:

    public interface UserRepository extends JpaRepository<User,Long> {
        User findByUsernameAndPassword(String username,String password);
    
    }
    

    3.在service包下创建UserService接口
    UserService接口代码如下:

    public interface UserService {
        User checkUsers(String username, String password);
    }
    

    4在service.Impl包下实现上面接口
    UserServiceImpl类代码如下:

    @Service
    public class UserServiceImpl implements UserService {
    
        @Autowired
        private UserRepository userRepository;
    
        @Override
        public User checkUsers(String username, String password) {
            return userRepository.findByUsernameAndPassword(username,password);
        }
    }
    
    

    5.在web.admin包下创建管理员登陆前后端连接类LoginController,写入登陆和注销用户两个函数。
    代码如下:

    @Controller
    @RequestMapping("/admin")
    public class LoginController {
    
        @Autowired
        private UserService userService;
    
        @GetMapping
        public String loginPage(){
            return "admin/login";
        }
    
        @PostMapping("/login")
        public String login(@RequestParam String username, @RequestParam String password,
                            HttpSession session, RedirectAttributes attributes){
            User user = userService.checkUsers(username,password);
            if (user!=null){
                user.setPassword(null);
                session.setAttribute("user",user);
                return "admin/index";
            }else {
                attributes.addFlashAttribute("message","用户名或密码错误");
                return "redirect:/admin";
            }
        }
    
        @GetMapping("/logout")
        public String logout(HttpSession session){
            session.removeAttribute("user");
            return "redirect:/admin";
        }
    
    }
    

    6.在存放数据库连接时的配置文件application.yml中进行补充jpa配置
    在这里插入图片描述

    至此,用户登陆已经完成,运行结果如下:
    1自动创建的表:
    在这里插入图片描述2.登陆界面:
    在这里插入图片描述

    7创建与Type相关的数据库连接接口TypeRepository
    代码如下:

    public interface TypeRepository extends JpaRepository<Type,Long> {
        Type findByName(String name);
    
    }
    

    8创建TypeService接口
    代码如下:

    public interface TypeService {
        Page<Type> listType(Pageable pageable);
    
    }
    

    9实现TypeService接口,创建TypeServiceImpl类
    代码如下:

    public class TypeServiceImpl implements TypeService {
    
        @Autowired
        private TypeRepository typeRepository;
    
        @Override
        public Page<Type> listType(Pageable pageable) {
            return typeRepository.findAll(pageable);
        }
    
    }
    

    9.创建TypeController类,连接分页操作时的前后端
    代码如下:

    @Controller
    @RequestMapping("/admin")
    public class TypeController {
    
        @Autowired
        private TypeService typeService;
    
        @RequestMapping("/types")
        public String type(@PageableDefault(size = 3,sort = {"id"},direction = Sort.Direction.DESC)
                                   Pageable pageable, Model model){
            model.addAttribute("page",typeService.listType(pageable));
            return "admin/types";
    
        }
    
    
    }
    
    

    至此分页展示完成,运行结果如下:
    在这里插入图片描述

    展开全文
  •   实体类ZTreeNode中创建了pId,但前端在接收时却变成了pid,大小写居然不一致。   查了下才知道是Lombok的@Data注解的坑。Lombok 生成的get/set方法 与实际上get/set方法生成的规则不一致,Lombok生成的是...

      在springboot中遇到前后端大小写不一致的问题,问题详情如下:
      实体类ZTreeNode中创建了pId,但前端在接收时却变成了pid,大小写居然不一致。
      查了下才知道是Lombok的@Data注解的坑。Lombok 生成的get/set方法 与实际上get/set方法生成的规则不一致,Lombok生成的是getPId、setPId,导致拿到的就是小写了,实际上应该是getpId、setpId。
      至此,我们可以去掉@Data注解,自己生成get/set方法,也可以在ztree中修改pIdKey为pid。


    备注:JavaBean的生成规则

    private String getepath  --> getGetepath()
    private String getEpath  --> getGetEpath()
    private String epath     --> getEpath()     
    private String ePath     --> getePath() // 首字母不用大写
    private String Epath     --> getEpath() //和epath的getter方法是一样的
    private String EPath     --> getEPath()
     
    private boolean isenable   --> isIsenable()
    private boolean isEnable   --> isEnable() // 不是把首字母大写并在前面加is
    private boolean enable     --> isEnable()
    private boolean eNable     --> iseNable()    // 首字母不用大写
    private boolean Enable     --> isEnable()    // 和enable的getter方法相同
    private boolean ENable     --> isENable()    //
    
    展开全文
  • SpringBoot创建实体类Entity

    千次阅读 2020-08-11 10:19:21
    1创建时需要在com.example.demo项目下新建一个 domain 包 一般用来存放实体类 然后在该包下 新建实体类Company.class * 知识点 1)@开头表示注解 但IDEA约定大于配置 所以也相当于声明(应该是这样) // @Entity 声明...

    src/main/java :主程序入口Application,可以通过直接运行该类来启动 Spring Boot 应用。
    *

    1创建时需要在com.example.demo项目下新建一个 domain 包 一般用来存放实体类

    然后在该包下 新建实体类Company.class
    *
    在这里插入图片描述
    知识点
    1)@开头表示注解 但IDEA约定大于配置 所以也相当于声明(应该是这样)
    // @Entity 声明这是一个实体类
    //@Table(name = “company”) 表示要创建的表 叫company 一般与类名保持一致 IDEA 就会自动在mariaDB 里面进行配置 创建一个叫mariaDB的表
    //因为已经再配置文件yml里面 配置好了 jap和 数据库(数据源)(类型是update 所以 在实体类中再次加入字段 跑一次之后 数据库也会跟新 但如果在实体类里面加了之后 再从
    // 实体类中删掉 并不会把这个字段再删掉) 所以他会自动生成数据表

    /**

    • 公司实体类
      */
      @Entity
      @Table(name = “company”)

    // @Entity 声明这是一个实体类
    //@Table(name = “company”) 表示要创建的表 叫company 一般与类名保持一致 IDEA 就会自动在mariaDB 里面进行配置
    //因为已经再配置文件yml里面 配置好了 数据库对应 和 类型(类型是update 所以 在实体类中再次加入字段 跑一次之后 数据库也会跟新 但如果在实体类里面加了之后 再从
    // 实体类中删掉 并不会把这个字段再删掉) 所以他会自动生成数据表
    // 导入包快捷键 alt+ Enter
    public class Company {
    @Id
    // @Id 注解 表明此字段 为主键
    @GeneratedValue(generator = “myuuid”)
    // 这个是JPA的主键生成器注解 下面这个是hibernate 的主键生成器注解 因为Jpa并没有uuid主键生成策略 而Hibernate是Jpa的扩展
    // 里面有丰富的主键生成策略 所以可以用Hibernate
    @GenericGenerator(name = “myuuid”, strategy = “uuid”)
    // myuuid 前后两个一定要保持一致 至于名字是什么 都无所谓 只要一致就可以 后面的uuid 必须得是uuid 表示是uuid主键类型
    // uuid采用128位uuid算法生成主键 被编码为一个32位16进制数字的字符串 占用空间大(字符串类型)
    // 也可以用identity 自增主键 虽然不能用到Oracle中,但MySQL和SQLServer 中很常用
    @Column(length = 32)
    // 表示下面的属性字段 和数据库字段一一对应
    private String uuid;
    // 如果只是单纯的 private String uuid 数据库表中 并不会出现与之一一对应的字段

    @Column(length = 60)
    private String comname;
    @Column(name = “aa”,length = 120)
    private String comaddress;
    // 实体里面的属性是comaddress 对应到表里的字段名称 是aa 一般通用的做法是 不再单独命名字段的名称
    @Column(length = 30)
    private String comurl;
    @Column(length = 30)
    private String comtelephone;
    @Column(columnDefinition = “char(7)”)
    // 万能定义语句 直接按数据库里面定义类型输入即可

    private String establishdate;
    @Column
    // 整型直接不用指定长度 直接注解跟数据库字段一一对应即可
    private int employeenumber;
    @Column(columnDefinition = “float(20,4) default’0.0000’”)
    // 万能定义语句 直接按数据库里面定义类型输入即可 后面的是默认值这个必须得输入 因为浮点型 没有默认值报错

    private float totaloutput;
    @Column(columnDefinition = “text”)
    private String comdesc;
    @Column(columnDefinition = “char(4)”)
    private String comstatus;
    @Column(length = 20)
    private String contactname;
    @Column(columnDefinition = “char(11)”)
    private String contactmobile;
    @Column(length = 30)
    private String contactemail;

    //
    IDENTITY自增列主键
    // @Id
    // // @Id 注解 表明此字段 为主键
    // @GeneratedValue(strategy = GenerationType.IDENTITY)
    用JPA生成器 标明主键类型是IDENTITY 因为IDENTITY 再Jpa里面就有 所以不用再调用Hibernate扩展
    // @Column
    表示下面的属性字段 和数据库字段一一对应 IDENTITY主键类型 int类型 直接表名即可 因为整型只有是三十二位的整型
    // private int uuid

    //  因为是实体类 所以还需要一件生成 get set 方法
    

    // 右键 generate -》 set get … -》 然后 全部选中 点击生成
    public String getUuid() {
    return uuid;
    }

    public void setUuid(String uuid) {
        this.uuid = uuid;
    }
    
    public String getComname() {
        return comname;
    }
    
    public void setComname(String comname) {
        this.comname = comname;
    }
    
    public String getComaddress() {
        return comaddress;
    }
    
    public void setComaddress(String comaddress) {
        this.comaddress = comaddress;
    }
    
    public String getComurl() {
        return comurl;
    }
    
    public void setComurl(String comurl) {
        this.comurl = comurl;
    }
    
    public String getComtelephone() {
        return comtelephone;
    }
    
    public void setComtelephone(String comtelephone) {
        this.comtelephone = comtelephone;
    }
    
    public String getEstablishdate() {
        return establishdate;
    }
    
    public void setEstablishdate(String establishdate) {
        this.establishdate = establishdate;
    }
    
    public int getEmployeenumber() {
        return employeenumber;
    }
    
    public void setEmployeenumber(int employeenumber) {
        this.employeenumber = employeenumber;
    }
    
    public float getTotaloutput() {
        return totaloutput;
    }
    
    public void setTotaloutput(float totaloutput) {
        this.totaloutput = totaloutput;
    }
    
    public String getComdesc() {
        return comdesc;
    }
    
    public void setComdesc(String comdesc) {
        this.comdesc = comdesc;
    }
    
    public String getComstatus() {
        return comstatus;
    }
    
    public void setComstatus(String comstatus) {
        this.comstatus = comstatus;
    }
    
    public String getContactname() {
        return contactname;
    }
    
    public void setContactname(String contactname) {
        this.contactname = contactname;
    }
    
    public String getContactmobile() {
        return contactmobile;
    }
    
    public void setContactmobile(String contactmobile) {
        this.contactmobile = contactmobile;
    }
    
    public String getContactemail() {
        return contactemail;
    }
    
    public void setContactemail(String contactemail) {
        this.contactemail = contactemail;
    }
    

    }

    展开全文
  • 实体类需要标注@Entity 表示实体类 @Table(name = “t_tag”) 表示生成的表名称为 t_tag @Id 表示主键 @GeneratedValue 表示主键自动递增 这两个注解都需要标注在主键id上 如何表示对象之间的联系呢? 例如博客与...
    1. 实体类需要标注@Entity 表示实体类
    2. @Table(name = “t_tag”) 表示生成的表名称为 t_tag
    3. @Id 表示主键
      @GeneratedValue 表示主键自动递增
      这两个注解都需要标注在主键id上
    4. 如何表示对象之间的联系呢?
      例如博客与博客分类是之间是 多对一的关系
      1).需要在博客类中添加
      @ManyToOne()
      private Type type;
      2).需要在博客分类中添加
      @OneToMany(mappedBy = “type”)
      private List blogs = new ArrayList<>();
      3).注意:
      mappedBy = “type” 需要写转载一的这端,表示关系被…维持
    5. 需要转载实体类中添加无参数的构造函数、get、set方法、toStriing 方法(toString 方法用于方便输出信息到日志中)
    6. 在application.yml 文件中添加如下信息
      jpa:
        hibernate:
          #      每次启动项目的时候 自动判断 
          # 项目中的实体类与数据库中的表结构是否一样,如果不一样的时候 
          # 需要重新创建 实体生产环境中 将下面的 ddl-auto设置为none
          ddl-auto: update
      	  #      将sql语句显示在控制台
      	  show-sql: true
    	  #    配置日志
    
    
    1. 最终会生成实体类表跟另外一些根据对象关系生成的表
      在这里插入图片描述
    展开全文
  • 1. 实体类 博客 Blog 博客分类 Type 博客标签 Tag 博客评论 Comment 用户 User 2. 实体关系 2.1 实体关系图 实体关系中, Blog与Type存在多对一的关系,即多篇博客只能有一个分类 Blog与Comment存在一对多关系,...
  • 表设计与实体类创建 使用navicat 连接MySQL创建对应的表单 mysql> create database demo; Query OK, 1 row affected (0.42 sec) mysql> use demo -> ; Database changed mysql> use demo; Database ...
  • 牢记检查以下四步,我们就可以通过注解的形式配置实体类,来自动创建数据库表。 1. pom.xml中引入jpa的包 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>...
  • 一:建立以下实体类 //点击菜单 public class ClickButton extends Button{ private String key; public String getKey() { return key; } public void setKey(String key) { this.key = key; } } ...
  • idea快捷键、springboot项目实体类@ConfigurationProperties注解报红处理 1.对于刚刚从eclipse转到idea的新手用户来说最大的问题就是快捷键的使用了,这里我也是百度了一下发现可以设置成eclipse的快捷键方式: 步骤...
  • 3.编写实体类 import javax.persistence.*; import java.io.Serializable; import java.util.Objects; @Entity //声明实体类 public class User implements Serializable { @Id //声明了实体唯一标识对应的...
  • 用注解构建实体类 1.用注解构建实体类 形如用户与博客类:用户与博客一对多则 @NoArgsConstructor @AllArgsConstructor @Data @Component @Entity //声明实体类 @Table(name = "t_user") //表名 public class User...
  • 2、创建Entity,中的成员变量要和数据库中的字段对应,还要加上@TableName("数据表名”)注解 @TableId(type = IdType.UUID) private String id; // 主键 主键要这样定义 3、创建mapper的xml配置文件,创建mapper...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,164
精华内容 465
关键字:

springboot实体类创建

spring 订阅