3.给上述生成的那个name字段:更改数据库中的字段名,是否为空,字段长度的设定,只需要
  在Person.java文件中,加上
@Column(length=10,nullable=false,name="productname")
//设置字段的长度
public String getName() {
return name;
}
------------------------------------------------------------------
修改后的Person.java
package com.credream.bean;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;

@Entity
public class Person {
private Integer id;
private String name;
//默认构造函数
public Person() {
// TODO Auto-generated constructor stub
}
//构造方法:用来创建该对象时候给那么赋值
public Person(String name) {
this.name=name;
 
}
@Id @GeneratedValue(strategy=GenerationType.AUTO)//auto是设置的默认值,可

以不设置:
//@GeneratedValue(strategy=GenerationType.AUTO),5.auto:根据方言智能判断;
//@Id  @GeneratedValue
/*采用数据库的id自增长的时候用的这个注解;提供了多种策略:
1.GenerationType.IDENTITY使用数据库id自增长方式,生成主键
2.TABLE:一张表:一个字段:附一个值,另一个记录id,每次增加都自增一下;
3.SEQUENCE:序列的方式
4.table效率不高,mysql,不可以用序列自增长,oracle不可以用自增长
5.auto:根据方言智能判断;
6.auto是设置的默认值,可以不设置:@GeneratedValue(strategy=GenerationType.AUTO)
*/
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
@Column(length=10,nullable=false,name="productname")
//设置字段的长度
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
---------------------------------------------------------------------
4.如果需要修改表的名字不需要默认值的话,只需要修改Person.java
  @Table(name="persondb")
public class Person {
------------------------------------------
修改后的Person.java,可以修改生成表的名字,和字段的长度,名字,是否为空;
package com.credream.bean;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;

@Entity
@Table(name="persondb")
public class Person {
private Integer id;
private String name;
//默认构造函数
public Person() {
// TODO Auto-generated constructor stub
}
//构造方法:用来创建该对象时候给那么赋值
public Person(String name) {
this.name=name;
 
}
@Id @GeneratedValue(strategy=GenerationType.AUTO)//auto是设置的默认值,可

以不设置:
//@GeneratedValue(strategy=GenerationType.AUTO),5.auto:根据方言智能判断;
//@Id  @GeneratedValue
/*采用数据库的id自增长的时候用的这个注解;提供了多种策略:
1.GenerationType.IDENTITY使用数据库id自增长方式,生成主键
2.TABLE:一张表:一个字段:附一个值,另一个记录id,每次增加都自增一下;
3.SEQUENCE:序列的方式
4.table效率不高,mysql,不可以用序列自增长,oracle不可以用自增长
5.auto:根据方言智能判断;
6.auto是设置的默认值,可以不设置:@GeneratedValue(strategy=GenerationType.AUTO)
*/
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
@Column(length=10,nullable=false,name="productname")
//设置字段的长度
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}

}
-----------------------------------------------------------
5.用实体Bean:Person来存放date类型的数据:
 a.在hibernate中用xml文件是这样做的
   <property name="" length=10 type="date"/>//只保存到日期
   <property name="" length=10 type="datestam"/>//利用时间戳可以保存日期和时间
   datestamp:指的是时间戳
   <property name="" length=10 type="time"/>//只保存时间 
   时间戳是指文件属性里的创建、修改、访问时间
 b.JPA中保存date类型:
   1.在实体Bean:Person中声明date属性,注意用util包下的date
   2.利用注解:
      @Temporal(TemporalType.DATE)
public Date getBirthday() {
return birthday;
}
   这样可以像数据表中保存日期类型数据
----------------------------------------------
  修改后的Person.java,可以定义表的名字,字段的长度,是否为空,名字,插入日期类型
  package com.credream.bean;

import java.util.Date;

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 javax.persistence.Temporal;
import javax.persistence.TemporalType;

@Entity
@Table(name="person")
public class Person {
private Integer id;
private String name;
private Date birthday;
//默认构造函数
public Person() {
 
}
//构造方法:用来创建该对象时候给那么赋值
public Person(String name) {
this.name=name;
 
}
@Id @GeneratedValue(strategy=GenerationType.AUTO)//auto是设置的默认值,可

以不设置:
//@GeneratedValue(strategy=GenerationType.AUTO),5.auto:根据方言智能判断;
//@Id  @GeneratedValue
/*采用数据库的id自增长的时候用的这个注解;提供了多种策略:
1.GenerationType.IDENTITY使用数据库id自增长方式,生成主键
2.TABLE:一张表:一个字段:附一个值,另一个记录id,每次增加都自增一下;
3.SEQUENCE:序列的方式
4.table效率不高,mysql,不可以用序列自增长,oracle不可以用自增长
5.auto:根据方言智能判断;
6.auto是设置的默认值,可以不设置:@GeneratedValue(strategy=GenerationType.AUTO)
*/
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
@Column(length=10,nullable=false,name="name")
//设置字段的长度
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Temporal(TemporalType.DATE)
public Date getBirthday() {
return birthday;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
}

}
---------------------------------------------------------
6.像数据库中利用枚举类型保存性别:
 a.在com.credream.bean下新建;
   Gender.java
   package com.credream.bean;

public enum Gender {
MAN,WOMAN
}
 b.在Person.java中添加这个属性:
   private Gender gender=Gender.MAN;//设置数据库中的默认值
   在get方法前写注解:
   @Enumerated(EnumType.STRING) @Column(length=5,nullable=false)//保存的是字符串
   public Gender getGender() {
return gender;
}
  以上配置的话是以varchar的类型保存的,所以要设置这个字段的长度,注意保存枚举值的时

候,要设置成不允许为空
  @Enumerated(EnumType.ORDINAL):指的是通过保存,枚举的索引来输入数据库:就是,比如男

为0,女为1,哪个是0,1跟在enum枚举中的,书写顺序有关;
--------------------------------------------------------------------
修改后的Person.java
可以保存日期类型,设置字段的长度,名字,是否为空,可以声明枚举字段;
package com.credream.bean;

import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

@Entity
@Table(name="person")
public class Person {
private Integer id;
private String name;
private Date birthday;
private Gender gender=Gender.MAN;//设置数据库中的默认值
//默认构造函数
public Person() {
 
}
//构造方法:用来创建该对象时候给那么赋值
public Person(String name) {
this.name=name;
 
}
@Id @GeneratedValue(strategy=GenerationType.AUTO)//auto是设置的默认值,可

以不设置:
//@GeneratedValue(strategy=GenerationType.AUTO),5.auto:根据方言智能判断;
//@Id  @GeneratedValue
/*采用数据库的id自增长的时候用的这个注解;提供了多种策略:
1.GenerationType.IDENTITY使用数据库id自增长方式,生成主键
2.TABLE:一张表:一个字段:附一个值,另一个记录id,每次增加都自增一下;
3.SEQUENCE:序列的方式
4.table效率不高,mysql,不可以用序列自增长,oracle不可以用自增长
5.auto:根据方言智能判断;
6.auto是设置的默认值,可以不设置:@GeneratedValue(strategy=GenerationType.AUTO)
*/
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
@Column(length=10,nullable=false,name="name")
//设置字段的长度
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Temporal(TemporalType.DATE)
public Date getBirthday() {
return birthday;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
}
@Enumerated(EnumType.STRING) @Column(length=5,nullable=false)//保存的是字

符串
public Gender getGender() {
return gender;
}
public void setGender(Gender gender) {
this.gender = gender;
}

}
---------------------------------------------------------
7.存放大文本数据:LONGTEXT类型,存放文件进数据库,使用懒加载机制
  比如存放人员的简历;
 a.在Person.java中添加属性:
   private String info;
 b.@Lob//说明字段是大文本数据
public String getInfo() {
return info;
}
 c.在Person.java中添加属性:
   这个属性是用来存放二进制数据的:
   1.private Byte[] file;//用于存放2进制数据的
   2.@Lob @Basic(fetch=FetchType.LAZY)
//用于存放2进制数据的 , @Basic(fetch=FetchType.LAZY)懒加载,如果没有用到
//的话就不会加载,比如不使用file的时候,平常的话,如果查询姓名的时候
//会把所有的那一行的字段取出来,很占用内存,用这个注解后,只是在需要的时候
//才会取出来,这样的话可以节省内存,提高性能
public Byte[] getFile() {
return file;
}
----------------------------------------------
修改后的Person.java
  可以保存日期类型,设置字段的长度,名字,是否为空,可以声明枚举字段;可以存放二进制数

据,可以存放大文本数据,可以存放文件,可以使用懒加载机制
  package com.credream.bean;

import java.util.Date;

import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Lob;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

@Entity
@Table(name="person")
public class Person {
private Integer id;
private String name;
private Date birthday;
private Gender gender=Gender.MAN;//设置数据库中的默认值
private String info;
private Byte[] file;//用于存放2进制数据的
//默认构造函数
public Person() {
 
}
//构造方法:用来创建该对象时候给那么赋值
public Person(String name) {
this.name=name;
 
}
@Id @GeneratedValue(strategy=GenerationType.AUTO)//auto是设置的默认值,可

以不设置:
//@GeneratedValue(strategy=GenerationType.AUTO),5.auto:根据方言智能判断;
//@Id  @GeneratedValue
/*采用数据库的id自增长的时候用的这个注解;提供了多种策略:
1.GenerationType.IDENTITY使用数据库id自增长方式,生成主键
2.TABLE:一张表:一个字段:附一个值,另一个记录id,每次增加都自增一下;
3.SEQUENCE:序列的方式
4.table效率不高,mysql,不可以用序列自增长,oracle不可以用自增长
5.auto:根据方言智能判断;
6.auto是设置的默认值,可以不设置:@GeneratedValue(strategy=GenerationType.AUTO)
*/
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
@Column(length=10,nullable=false,name="name")
//设置字段的长度
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Temporal(TemporalType.DATE)
public Date getBirthday() {
return birthday;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
}
@Enumerated(EnumType.STRING) @Column(length=5,nullable=false)//保存的是字

符串
public Gender getGender() {
return gender;
}
public void setGender(Gender gender) {
this.gender = gender;
}
@Lob//说明字段是大文本数据
public String getInfo() {
return info;
}
public void setInfo(String info) {
this.info = info;
}
@Lob @Basic(fetch=FetchType.LAZY)
//用于存放2进制数据的 , @Basic(fetch=FetchType.LAZY)懒加载,如果没有用到
//的话就不会加载,比如不使用file的时候,平常的话,如果查询姓名的时候
//会把所有的那一行的字段取出来,很占用内存,用这个注解后,只是在需要的时候
//才会取出来,这样的话可以节省内存,提高性能
public Byte[] getFile() {
return file;
}
public void setFile(Byte[] file) {
this.file = file;
}

}
注意:一般如果数据超过了1m:就应该使用懒加载;
-------------------------------------------------------
8.不和数据库中的表中的字段相映射的属性创建:
  a.在Person.java中添加字段:这个字段将不会出现在数据库的表中
   private String imagepath;
  b.使用注解:
    @Transient //该属性不会映射到数据库中的字段
public String getImagepath() {
return imagepath;
}
-------------------------------------------------------

JPA学习笔记---JPA实体Bean的建立---链接上一个博文:对实体Bean中属性进行操作:保存日期类型,设置字段的长度,名字,是否为空,可以声明枚举字段;可以存放二进制数据,可以存放相关推荐

  1. JPA学习笔记---JPA数据的操作:增加,删除,修改,获取,使用JPQL进行查询

    JPA学习笔记---JPA数据的操作:增加,删除,修改,获取,使用JPOL进行查询 创梦技术交流平台:资源下载,技术交流,网络赚钱: 交流qq群:1群:248318056 2群:251572072 技 ...

  2. JPA学习笔记---JPA理解---第一个JPA程序

    1. a.JPA和Hibernate是sun提出的java持久化的规范.JPA是Hibernate,和TopLink,JDO等ORM框架 基础上发展而来的. b.和jdbc类似,比如刚刚没有jdbc的 ...

  3. JPA学习笔记---JPA实体Bean的建立+配置文件+junit测试+自动生成(对应实体Bean的)数据库表+插入数据

    2013-02-03 1.第一个JPA:JPA的配置文件的配置 a.新建web项目:JPATest b.在src目录下新建META-INF文件夹 c.在META-INF文件夹下:新建   persis ...

  4. string来存放二进制数据

    在操作mysql数据库类型blob数据时,因为blob是二进制数据,将其存放时要注意,可以使用string来存储数据,然后放入数据库中,特别是在用protobuf序列化后 代码如下: #include ...

  5. SAS学习笔记之《SAS编程与数据挖掘商业案例》(2)数据获取与数据集操作

    SAS学习笔记之<SAS编程与数据挖掘商业案例>(2)数据获取与数据集操作 1. SET/SET效率高,建立的主表和建表索引的查询表一般不排序, 2. BY语句,DATA步中,BY语句规定 ...

  6. 【学习笔记】有向无环图上的DP

    [学习笔记]有向无环图上的DP 手动博客搬家: 本文发表于20180716 10:49:04, 原地址https://blog.csdn.net/suncongbo/article/details/8 ...

  7. 吴恩达《机器学习》学习笔记十四——应用机器学习的建议实现一个机器学习模型的改进

    吴恩达<机器学习>学习笔记十四--应用机器学习的建议实现一个机器学习模型的改进 一.任务介绍 二.代码实现 1.准备数据 2.代价函数 3.梯度计算 4.带有正则化的代价函数和梯度计算 5 ...

  8. 菜鸟学习笔记:Java提升篇12(Java动态性2——动态编译、javassist字节码操作)

    菜鸟学习笔记:Java提升篇12(Java动态性2--动态编译.javassist字节码操作) Java的动态编译 通过脚本引擎执行代码 Java字节码操作 JAVAssist的简单使用 常用API ...

  9. SpringMVC:学习笔记(10)——整合Ckeditor且实现图片上传

    SpringMVC:学习笔记(10)--整合Ckeditor且实现图片上传 配置CKEDITOR 精简文件 解压之后可以看到ckeditor/lang下面有很多语言的js,如果不需要那么多种语言的,可 ...

最新文章

  1. CSS2020聚焦新基建 腾讯发布云原生安全体系 助力客户备战云上“主战场”
  2. 轻松几步搞定SSH连接Git配置
  3. 北斗三号b1c频点带宽_北斗三号导航信号的创新设计(一)
  4. ASP.NET 未被授权访问所请求的资源。请考虑授予 ASP.NET 请求标识访问此资源的?...
  5. 【Redis】Redis替代方案
  6. Java(37)_FlowLayout布局一
  7. 为ESP8266编译时出错
  8. vscode ubuntu18.04安装失败
  9. 基于SmartQQ协议的QQ自动回复机器人-1
  10. 数据之美(五):美不胜收的数据图(上)
  11. \t\t让米饭更好吃
  12. Apsara Clouder云计算专项技能认证:云服务器ECS
  13. ops电脑属于微型计算机吗,泽创触摸一体机OPS电脑是什么?
  14. 力扣1705——吃苹果的最大数目(贪心+优先队列)
  15. 网络同步在游戏历史中的发展变化(三)—— 状态同步的发展历程与基本原理(上)...
  16. (LInux)network网卡重启失败原因及解决方法
  17. 关键词推广:如何选择更精准的关键词?
  18. 使用深度优先搜索算法解决迷宫问题
  19. PostgreSQL索引膨胀
  20. zedboard第九课(LWIP standalone)

热门文章

  1. 毕设日志——pytorch版本faster rcnn运行代码前的环境配置2019.4.9
  2. (轉貼) C Standard Library (初級) (C/C++)
  3. 十面阿里Java程序员终拿下阿里P6offer
  4. 计算机程序的思维逻辑 (47) - 堆和PriorityQueue的应用
  5. [考试]20150903
  6. Exchange2010 SP1部署边缘服务器
  7. sql server 2005下开启xp_cmdshell的办法
  8. Google搜索语法
  9. DSL 系列(1) - 扩展点的论述与实现
  10. Arduino抢答器