精华内容
参与话题
问答
  • 一、entity层 别名: model层 ,domain层 用途: 用于存放我们的实体类,与数据库中的属性值基本保持一致,实现set和get的方法。 例子:user表的实体user public class User { /** * 用户id */ @Id @...

    一、entity层

    别名: model层 ,domain层
    用途: 实体层,用于存放我们的实体类,与数据库中的属性值基本保持一致,实现set和get的方法。
    例子:user表的实体User

    public class User {
        /**
         * 用户id
         */
        @Id
        @GeneratedValue(strategy = GenerationType.IDENTITY)
        private Long id;
    
        /**
         * 用户昵称
         */
        private String nick;
    
        /**
         * 手机号
         */
        private String mobile;
    
        /**
         * 头像地址
         */
        @Column(name = "head_image_url")
        private String headImageUrl;
    
      
        /**
         * 获取用户id
         *
         * @return id - 用户id
         */
        public Long getId() {
            return id;
        }
    
        /**
         * 设置用户id
         *
         * @param id 用户id
         */
        public void setId(Long id) {
            this.id = id;
        }
    
        /**
         * 获取用户昵称
         *
         * @return nick - 用户昵称
         */
        public String getNick() {
            return nick;
        }
    
        /**
         * 设置用户昵称
         *
         * @param nick 用户昵称
         */
        public void setNick(String nick) {
            this.nick = nick;
        }
    
        /**
         * 获取手机号
         *
         * @return mobile - 手机号
         */
        public String getMobile() {
            return mobile;
        }
    
        /**
         * 设置手机号
         *
         * @param mobile 手机号
         */
        public void setMobile(String mobile) {
            this.mobile = mobile;
        }
    
        /**
         * 获取头像地址
         *
         * @return head_image_url - 头像地址
         */
        public String getHeadImageUrl() {
            return headImageUrl;
        }
    
        /**
         * 设置头像地址
         *
         * @param headImageUrl 头像地址
         */
        public void setHeadImageUrl(String headImageUrl) {
            this.headImageUrl = headImageUrl;
        }
    
        
    }
    

    二、mapper层

    别名: dao层
    用途: 对数据库进行数据持久化操作,他的方法语句是直接针对数据库操作的,主要实现一些增删改查操作,在mybatis中方法主要与与xxx.xml内相互一一映射。
    示例:userMapper

    public interface userMapper {
        int deleteByPrimaryKey(Long id);
    
        int insert(user record);
    
        int insertSelective(user record);
    
        user selectByPrimaryKey(Long id);
    
        int updateByPrimaryKeySelective(user record);
    
        int updateByPrimaryKey(user record);
    }
    

    三、service层

    用途:业务service层,给controller层的类提供接口进行调用。一般就是自己写的方法封装起来,就是声明一下,具体实现在serviceImpl中。
    示例:UserService

    public interface UserService extends Service<User> {
    
    }
    
    

    四、controller层

    别名:web 层
    用途: 控制层,负责具体模块的业务流程控制,需要调用service逻辑设计层的接口来控制业务流程。因为service中的方法是我们使用到的,controller通过接收前端H5或者App传过来的参数进行业务操作,再将处理结果返回到前端。
    示例:UserController

    @RestController
    @RequestMapping("/user")
    public class UserController {
        @Resource
        private UserService userService;
    
        @PostMapping("/add")
        public Result add(User user) {
            userService.save(user);
            return ResultGenerator.genSuccessResult();
        }
    
        @PostMapping("/delete")
        public Result delete(@RequestParam Integer id) {
            userService.deleteById(id);
            return ResultGenerator.genSuccessResult();
        }
    
        @PostMapping("/update")
        public Result update(User user) {
            userService.update(user);
            return ResultGenerator.genSuccessResult();
        }
    
        @PostMapping("/detail")
        public Result detail(@RequestParam Integer id) {
            User user = userService.findById(id);
            return ResultGenerator.genSuccessResult(user);
        }
    
        @PostMapping("/list")
        public Result list(@RequestParam(defaultValue = "0") Integer page, @RequestParam(defaultValue = "0") Integer size) {
            PageHelper.startPage(page, size);
            List<User> list = userService.findAll();
            PageInfo pageInfo = new PageInfo(list);
            return ResultGenerator.genSuccessResult(pageInfo);
        }
    }
    
    展开全文
  • @Entity注解

    万次阅读 2018-06-23 14:04:38
    [@Entity] 必须与@Id注解 结合使用 否则 No identifier specified for entity: name 属性 (可选)实体名称。 缺省为实体类的非限定名称。 该名称用于引用查询中的实体。 该名称不能是Java持久性查询语言...
    [@Entity]  
       必须与@Id注解 结合使用  
         否则  No identifier specified for entity:   
       name 属性  
        (可选)实体名称。 缺省为实体类的非限定名称。   
            该名称用于引用查询中的实体。  
            该名称不能是Java持久性查询语言中的保留字面值。  
       
       不与@Table结合的话 表名 默认为 SnakeCaseStrategy(命名策略 )为表名  
        若使用 name属性 且没有与@Table结合 则表名为 name值的SnakeCaseStrategy(命名策略 )  
        例如:  
            @Entity  
                public class UserEntity{...} 表名 user_entity  
            @Entity(name="UE")  
                public class UserEntity{...} 表名 ue  
            @Entity(name="UsEntity")  
                public class UserEntity{...} 表名 us_entity  

    package sun.rain.amazing.javax.anno.domain;
    
    import lombok.Data;
    
    import javax.persistence.Entity;
    import javax.persistence.Id;
    
    /**
     * @author   sunRainAmazing
     */
    @Entity
    @Data
    public class UserEntity {
        /**
         *  No identifier specified for entity: sun.rain.amazing.javax.anno.domain.UserEntity
         */
        @Id
        private int id;
        private String username;
        private String email;
    
        public UserEntity(String username, String email) {
            this.username = username;
            this.email = email;
        }
    
        public UserEntity() {
        }
    }
    CREATE TABLE `user_entity` (
      `id` int(11) NOT NULL,
      `email` varchar(255) DEFAULT NULL,
      `name` varchar(255) DEFAULT NULL,
      `username` varchar(255) DEFAULT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8
    
    
    
    
    package sun.rain.amazing.javax.anno.domain;
    
    import lombok.AllArgsConstructor;
    import lombok.Data;
    import lombok.NoArgsConstructor;
    import org.springframework.beans.factory.annotation.Autowired;
    
    import javax.persistence.Entity;
    import javax.persistence.GeneratedValue;
    import javax.persistence.GenerationType;
    import javax.persistence.Id;
    
    /**
     *
     * @author sunRainAmazing
     */
    @Data
    @AllArgsConstructor
    @Entity(name="UePro")
    public class UserEntityProperty {
        /**
         *  No identifier specified for entity: sun.rain.amazing.javax.anno.domain.UserEntity
         */
        @Id
        @GeneratedValue(strategy = GenerationType.IDENTITY)
        private int id;
        private String username;
        private String email;
        private String mobile;
    
        public UserEntityProperty(String username, String email, String mobile) {
            this.username = username;
            this.email = email;
            this.mobile = mobile;
        }
    
        public UserEntityProperty() {
        }
    }
    
    


    CREATE TABLE `ue_pro` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `email` varchar(255) DEFAULT NULL,
      `mobile` varchar(255) DEFAULT NULL,
      `username` varchar(255) DEFAULT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8
    




    展开全文
  • Java实体类(entity)作用

    万次阅读 多人点赞 2018-05-17 17:17:10
    对java实体类的众多理解:A .就是属性类,通常定义在model层里面 B. 一般的实体类对应一个数据表,其中的属性对应数据表中的字段。好处:1.对对象实体的封装,体现OO思想。2.属性可以对字段定义和状态进行判断和...

    对java实体类的众多理解:

    A .就是属性类,通常定义在model层里面 

    B. 一般的实体类对应一个数据表,其中的属性对应数据表中的字段。
    好处:
    1.对对象实体的封装,体现OO思想。
    2.属性可以对字段定义和状态进行判断和过滤
    3.把相关信息用一个实体类封装后,我们在程序中可以把实体类作为参数传递,更加方便

    C. 说白了就是为了让程序员在对数据库操作的时候不用写SQL语句 

    D. 就是一个数据库表生成一个类
    这样做对数据库操作起来方便
    编写代码较少 提高效率 可以使程序员专注逻辑关系 

    E. 实体类就是把对某一个表的操作全写在一个类中.

    F. 在Java开发中经常要定义一些实体类,这些类的定义的好坏会直接影响,编写代码的质量和难易程度,以下是别人总结的一些经验。

    一、实体类的名字尽量和数据库的表的名字对应相同。

    二、实体类应该实现java.io.Serializable接口

    三、实体类应该有个无参的构造方法。

    四、实体类应该有个有参(所有的参数)的构造方法。

    五、实体类有属性和方法,属性对应数据库中表的字段,主要有getter和setter方法。

    六、实体类还应该有个属性serialVersionUID。例如:private static final long serialVersionUID = -6125297654796395674L;

    七、属性一般是private类型,方法位public类型,对于数据库自动生成的ID字段对应的属性的set方法应为private。

    G. 实体类中都是实例对象,实例对象在jvm的堆区中开辟了一个该对象引用空间,并且让该引用指向某个实例,类声明只是在jvm的栈去中开辟了一个该对象引用,没有让该引用做任何指向.

    例如 :
    1.String str;
    2.String str = new String ("dgfgg");
    1中的只是一个引用,说明str应该指向一个String 类型的实例,但还没对str和堆区的实例做具体的指向.也就是说它还没有指向某个实例.
    而2中的即定义了一个引用(str)又对str做了具体的指向,它指向的内容就是后面new出来的String 实例.


    实体类中的构造方法+set方法+get方法:
    构造函数:初始化成员变量


    get,set方法,获取和改变成员变量的值,JavaBean规范规定只使用get/set访问成员变量

    构造函数:你每次写一个Java文件,实际上都写了一个类(创建一个类,jvm就会自动为这个类开辟一块内存空间)。有了类就需要有类对象,要产生类对象就需要构造函数对这个刚刚申请的内存空间做一点事,赋属性值之类的工作。当然,如果你不写,它就默认有一个Class(){}的构造方法出现,当然它什么活也不干。

    你的属性是什么样的?public?private?默认?还是protected?这四种你找教材务必弄懂分清,很有用。如果是private,这种属性不许别的对象改和读,但有时候需要改/读,怎么办?写一个public void setAbc(xxx){}和一个public xxx getAbc(){}就实现外部读写属性的功能了

    set ,get完全是自我规定的,就是设置初值和获得值的意思.你也可以修改成其他字符.但是用set ,get还是要好些,因为你能通过单词理解你写的代码的意思,方便阅读而已。

     

    总结:实体是就是Java中的O/R Mapping映射,即数据库中的一个表映射成对应的一个Java类,其中还有一个映射文件。给定一个较复杂的实体关系(如一对一,一对多,多对多),应该熟练地写出实体类!!


    java 实体类其实就是俗称的POJO,这种类一般不实现特殊框架下的接口,在程序中仅作为数据容器用来持久化存储数据用的。

      POJO(PlainOldJavaObjects)简单的Java对象

      它的一般格式就是

      publicclassA{

          privateStringid;

          publicStringgetId{

          returnthis.id;

          }

      publicvoidsetId(Stringid){

          this.id=id;

          }

      }

      其实这样写的意义就在于封装,id作为类A的成员变量,也称属性,一般情况下拥有读和写的能力,我们将id设为private,则外部无法对其直接进行操作,同时通过set方法提供了外部更改其value的方法,又通过get方法使外界能读取该成员变量的值。

      序列化的必要性

      Java中,一切都是对象,在分布式环境中经常需要将Object从这一端网络或设备传递到另一端。这就需要有一种可以在两端传输数据的协议。Java序列化机制就是为了解决这个问题而产生。

      Java对象序列化不仅保留一个对象的数据,而且递归保存对象引用的每个对象的数据。

      Java串行化技术可以使你将一个对象的状态写入一个Byte流里,并且可以从其它地方把该Byte流里的数据读出来,重新构造一个相同的对象。这种机制允许你将对象通过网络进行传播,并可以随时把对象持久化到数据库、文件等系统里。Java的串行化机制是RMI、EJB等技术的技术基础。用途:利用对象的串行化实现保存应用程序的当前工作状态,下次再启动的时候将自动地恢复到上次执行的状态。

      序列化就是一种用来处理对象流的机制,所谓对象流也就是将对象的内容进行流化。可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之间。序列化是为了解决在对对象流进行读写操作时所引发的问题。

      对于一个存在于Java虚拟机中的对象来说,其内部的状态只保持在内存中。JVM停止之后,这些状态就丢失了。在很多情况下,对象的内部状态是需要被持久化下来的。提到持久化,最直接的做法是保存到文件系统或是数据库之中。这种做法一般涉及到自定义存储格式以及繁琐的数据转换。对象关系映射(Object-relationalmapping)是一种典型的用关系数据库来持久化对象的方式,也存在很多直接存储对象的对象数据库。对象序列化机制(objectserialization)是Java语言内建的一种对象持久化方式,可以很容易的在JVM中的活动对象和字节数组(流)之间进行转换。除了可以很简单的实现持久化之外,序列化机制的另外一个重要用途是在远程方法调用中,用来对开发人员屏蔽底层实现细节。


    展开全文
  • @Entity

    2019-06-21 16:12:00
    实体类映射加注解@Entity 转载于:https://www.cnblogs.com/wiming/p/11065242.html

    实体类映射加注解@Entity

    转载于:https://www.cnblogs.com/wiming/p/11065242.html

    展开全文
  • Entity 实例

    2020-02-28 18:41:10
    1.省去get()、 set()、 toString()、构造等方法 参考链接:...@Data注解 与 lombok 在maven中添加依赖 <dependency> <groupId>org.projectlombok<...artifactId...
  • HttpEntity的使用

    万次阅读 2018-08-13 17:18:42
    HttpEntity实体即可以使流也可以使字符串形式。 具体有什么用法看他的方法解释: package com.scl.base;    import java.io.IOException;  import java.io.UnsupportedEncodingException;    import ...
  • Entity Framework微软官方教程,800多页,含EF Core,EF 6等
  • HttpEntity的类型及其使用

    万次阅读 2018-11-23 12:21:00
    一 HttpEntity的类型   1 BasicHttpEntity  代表底层流的基本实体。通常是在http报文中获取的实体。他只有一个空参的构造方法。刚创建时没有内容,长度为负值。需要通过两个方法,把值赋进去。   /** ...
  • Entity Framework 全面教程详解 转

    万次阅读 2018-11-06 17:46:56
    Entity Framework 全面教程详解 转
  • java中model与entity(实体类)的区别

    万次阅读 2018-06-15 12:35:59
    entity的字段,并且model的字段属性可以与entity不一致,model是用于前端页面数据展示的,而entity则是与数据库进行交互做存储用途。举个例子: 比如在存储时间的类型时,数据库中存的是datetime类型,entity获取时...
  • JPA之Entity注解说明

    千次阅读 2015-12-23 15:06:14
    1、基本注解:  例子: @Entity(name = "T_TOPIC") ① public class Topic implements Serializable ...{ @Id ② -1 @GeneratedValue(strategy = GenerationType.TABLE) ② -2 @Column(name = "TOPIC_ID...
  • 项目中@entity报错是因为项目可能创建表的时候没有设置主键造成的可以去项目工程中的window-->preferences-->java persistence-->JPA-->Errors/Warnings-->Type中设置
  • Hibernate中的@Entity注解

    千次阅读 2017-10-02 14:56:14
    1.新建一个java project项目,里面新建一个lib文件夹,lib文件夹里面放置要用的一些jar文件,然后全部选中导入到项目中去。...package entity; import java.util.Date; import javax.persistence.Entity; import j
  • mybatis-generator是一个很好的数据库逆向生成Java实体的插件,可以很方便的生成JavaEntity,不过注释注解没有太好的解决办法,例如如果我们想生成下面这样一个UserEntity,那么就需要自己动手生成一个扩展一下...
  • 1.首先检查pom.xml配置中有没有添加相关依赖(如果没有复制粘贴以下依赖到pom.xml文件中) &lt;dependency&gt; &lt;groupId&gt;org.springframework.boot&lt;/groupId&...
  • Hibernate: insert into users (username) values (?) 数据库中的表名为users-->对应java...或者使用注解@table(name=“users”) 列名username-->对应实体类Users中的属性username 实体Users类的代码:(Users.
  • springboot中@Entity注解无法使用的解决

    千次阅读 2019-08-13 14:41:21
  • @Entity常用注解@Entity:@Table@Id@IdClass@GeneratedValue@Basic@Transient@Column@Temporal@Enumberated其他大字段注解@Lob @Blob 曾在2012年用过一段时间Hibernate,对这种框架着实有些抵触,这类框架屏蔽了太多...
  • @Entity注解不同来源

    2018-02-06 17:58:00
    javax.persistence.Entity 和 org.hibernate.annotations.Entity 的不同 在@Entity时很容易顺手导入@org.hibernate.annotations.Entity这个包,结果导致了异常。其实应该导入的是@javax.persistence....
  • 使用Spring Initializr快速创建maven项目,其中选择了添加springdatajpa的依赖,但是项目创建好后,在创建实体类时,要添加@Entity注解,但是直接写会报错,于是选择了看提示,结果提示里面并没有找到对应的类,这时...
  • JDK1.8 环境下,使用SpringBoot + SpringDataJPA+Mysql时,使用@Entity注解的实体类中,日期时间跟预期不符;//活动日期 private LocalDate activityDate; @Column(nullable = false) private LocalTime startTime; ...
  • springboot中entity注解

    2020-05-20 10:07:46
    entity常用的注解做个记录 package com.qzp.code.entity; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import sun.security.util.Length; import javax.persistence.*; import javax....
  • 这个情况是由于导入错了Entity包所导致的。 按住Alt+T时,会有两个关于@Entity的提示 org.hibernate.annotations.Entity 和 javax.persistence.Entity,我们应该使用javax.persistence.Entity。此时就不会出现过时...
  • @Entity等基本注解

    千次阅读 2019-05-17 17:56:46
    1. @Entity :表明是一个实体类 2. @Table :对应的数据表名 3. @Id :主键 4. @GeneratedValue:主键生成策略 5. @Column : 映射表对应的字段名 6. @Basic : 表示该属性是表字段的映射。如果实体的字段...
  • entity实体类,是和数据表一一对应的,一个实体一张表 涉及lombok,下面先介绍lombok中4个基本注解的使用 @Data注解: 基于lombok,主要作用是提高代码的简洁,此注解在类上,提供类所有属性的get和set方法,同时...
  • //Emp为实体 @RequestMapping(value="/*.do" ,method=RequestMethod.GET) public void controller(Emp testEmp,HttpServletRequest request,HttpServletResponse response) throws Exception{ ...
  • @Entity @Table注解

    千次阅读 2018-09-09 16:54:27
    JavaPersistence API中定义了两个注解@Entity与@Table @Entity表明这是一个实体类,要与数据库做orm映射,默认表的名字就是类名,表中的字段就是类中的属性。它的定义如下:其中name属性表示用JPQL语句时写的表的...
  • 如题所示 如果不用hibernate,那么是否仍然可以用@id,@Entity注解.
  • 实体类定义了注解@Entity 有什么作用

    千次阅读 2019-04-01 11:49:19
    @entity是指这个类映射有数据库表,那么你不使用这个类时,后台应该不会对其进行处理吧,只有当你从数据库读取数据时,由于你要读取的表映射有实体类(@entity注释的),那么后台应该会自动帮你实例化一个对象,然后...
  • 今天在使用hibernate3实体全注解时,

空空如也

1 2 3 4 5 ... 20
收藏数 462,241
精华内容 184,896
关键字:

entity