Spring Data JPA – @Column 注解的属性及示例
Spring Boot 建立在 Spring 之上,包含了 Spring 的所有特性。 Spring 还提供了 JPA 和 hibernate 来提高 Spring 应用程序和数据库之间的数据操作效率。简单来说,我们可以说 JPA(Java持久性 API)就像一个接口,而休眠是接口方法的实现,就像在休眠的帮助下已经定义了插入的方式一样。在本文中,我们将通过示例讨论@Column 注解的以下最重要和最常用的属性。
- @Column(length=”varchar(255)/Integer 23″):添加MySQL表中特定列的列大小
- @Column(columnDefinition = “varchar(22) default 'Aayush'”):在列中添加默认值
- @Column(nullable=false):给表的列添加非空约束
让我们一一讨论每个操作。
例子
第 1 步:转到此链接。根据要求填写详细信息。对于此应用程序:
Project: Maven
Language: Java
Spring Boot: 2.5.6
Packaging: JAR
Java: 11
Dependencies: Spring Web,Spring Data JPA, MySql Driver
单击生成将下载启动项目。
第 2 步:解压缩 zip 文件。现在打开一个合适的 IDE,然后转到 File > New > Project from existing sources > Mapping 并选择 pom.xml。点击提示导入更改,等待项目同步,如下图所示:
第 3 步:在 application.properties 文件中添加必要的属性。 (映射是数据库名称)
spring.datasource.username=root
spring.datasource.password=Aayush
spring.datasource.url=jdbc:mysql://localhost:3306/mapping
spring.jpa.hibernate.ddl-auto=update
第四步:在项目文件夹中创建模型文件夹,制作StudentInformation类。
项目结构:
1.增加列的大小
@Column(length=”varchar(255)/Integer 23″) annotation is used for adding the column size of MySQL column using SpringBoot
学生信息。Java
Java
@Entity
@Table(name = "Student")
public class StudentInformation {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int rollno;
@Column(name = "Student_name" ,length = 30)
private String name;
public int getRollno() { return rollno; }
public StudentInformation() {}
public StudentInformation(int rollno, String name)
{
this.rollno = rollno;
this.name = name;
}
public void setRollno(int rollno)
{
this.rollno = rollno;
}
public String getName() { return name; }
public void setName(String name) { this.name = name; }
}
Java
@Entity
@Table(name = "Student")
public class StudentInformation {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int rollno;
@Column(columnDefinition = "varchar(22) default 'Aayush'")
private String name;
public int getRollno() { return rollno; }
public StudentInformation() {}
public StudentInformation(int rollno, String name)
{
this.rollno = rollno;
this.name = name;
}
public void setRollno(int rollno)
{
this.rollno = rollno;
}
public String getName() { return name; }
public void setName(String name) { this.name = name; }
}
Java
@Entity
@Table(name = "Student")
public class StudentInformation {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int rollno;
@Column(nullable=false)
private String name;
public int getRollno() { return rollno; }
public StudentInformation() {}
public StudentInformation(int rollno, String name)
{
this.rollno = rollno;
this.name = name;
}
public void setRollno(int rollno)
{
this.rollno = rollno;
}
public String getName() { return name; }
public void setName(String name) { this.name = name; }
}
运行主应用程序:
数据库输出:
2.在列中添加默认值
@Column(columnDefinition = “varchar(22) default ‘Aayush'”)
学生信息。Java
Java
@Entity
@Table(name = "Student")
public class StudentInformation {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int rollno;
@Column(columnDefinition = "varchar(22) default 'Aayush'")
private String name;
public int getRollno() { return rollno; }
public StudentInformation() {}
public StudentInformation(int rollno, String name)
{
this.rollno = rollno;
this.name = name;
}
public void setRollno(int rollno)
{
this.rollno = rollno;
}
public String getName() { return name; }
public void setName(String name) { this.name = name; }
}
运行主应用程序:
数据库输出:
3. 给列添加非空约束
@Column(nullable=false) annotation is used for adding the not null constraint on the particular column of the table.
学生信息。Java
Java
@Entity
@Table(name = "Student")
public class StudentInformation {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int rollno;
@Column(nullable=false)
private String name;
public int getRollno() { return rollno; }
public StudentInformation() {}
public StudentInformation(int rollno, String name)
{
this.rollno = rollno;
this.name = name;
}
public void setRollno(int rollno)
{
this.rollno = rollno;
}
public String getName() { return name; }
public void setName(String name) { this.name = name; }
}
运行主应用程序:
终端输出:
数据库输出: