刚做了如下实验
实验1:
新建people类,并用hibernate生成表
@Entity
public class People {
@Id
@GeneratedValue
private int id;
private 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;
}
}
在数据库中将name字段的长度改为3再向数据库中插入一条记录
public class Test {
public static void main(String[] args) {
Configuration cfg = new AnnotationConfiguration().configure();
// new SchemaExport(cfg).create(false, true);
People p=new People();
p.setName("fhqiwcw");
HibernateUtil helper=new HibernateUtil();
Session session=helper.getSession();
session.beginTransaction();
session.save(p);
session.getTransaction().commit();
}
}
提示:
Data truncation: Data too long for column 'name' at row 1
这次在程序中注解将name的长度设为3,数据库中的设为255
@Entity
public class People {
@Id
@GeneratedValue
private int id;
Column(length = 3)//在这里将长度设为3
private 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;
}
}
正常执行,查看数据库记录已经添加成功。
由此看来@column的注解只是在建表的时候起作用
所以以后在做项目的时候可可以不用@Column注解字符长度或者是not null,这些在用hibernate生成表后直接在数据中改方便很多(当然也可以先有表再写hibernate)
分享到:
相关推荐
在Java编程中,注解(Annotation)是一种元数据,它提供了在代码中插入信息的方式,这些信息可以被编译器或运行时环境用来执行某些操作。在Hibernate中,注解用于将Java类与数据库表关联,以及将类的属性与表的列...
JPA注解和Hibernate建表 一、JPA概述 Java Persistence API(JPA)是Sun官方提出的Java持久化规范,它只是一个规范不是一个产品。JPA的主要目标是提供一种简洁、易用的方式来访问、操作和管理Java应用程序中的数据...
兼容hibernate @Table、@Column、@Id、@Transient注解 兼容hibernate @GeneratedValue注解设置自增 兼容swagger @ApiModel、@ApiModelProperty注解设置(表、字段)备注 字段上没有任何注解,支持属性名转数据库列名...
"Hibernate动态建表"指的是在应用运行时根据实体类自动生成对应的数据库表结构,这种特性在开发过程中特别有用,尤其是当数据模型频繁变化或者需要快速原型设计时。 **动态表映射原理** Hibernate的动态建表功能...
在实际建表操作中,开发者首先需要定义实体类(Entity),并使用Hibernate注解(如@Entity、@Table、@Column等)来指定数据库映射关系。接着,配置Hibernate的SessionFactory,最后通过Session对象执行DDL(Data ...
4. **配置自动建表**:在Hibernate的配置文件中,启用`hbm2ddl.auto`属性,如设置为`create`或`create-drop`,Hibernate将在启动时创建表(或每次启动时删除并重新创建)。如果希望更新已有表结构,可以设置为`...
总的来说,通过使用Hibernate的注解和自动建表功能,我们可以轻松地在Java应用中建立数据库模型,并在运行时自动创建数据库表。这极大地提高了开发效率,降低了出错的可能性,并使得数据库与Java代码之间的关系更加...
- 字段名与属性名不同时,使用@Column注解或XML指定映射。 四、对象映射 1. XML映射: - `Student.hbm.xml`和`Teacher.hbm.xml`分别定义了Student和Teacher类与数据库表的映射。 - `…/>`用于添加映射文件。 2....
在本项目中,注解可能被用来标记实体类及其属性,模拟Hibernate的@Entity和@Column等注解,以便自动识别哪些类和字段对应数据库表和列。 3. **JDBC封装**: JDBC(Java Database Connectivity)是Java连接数据库的...
在Java的持久化框架中,Hibernate是一个非常流行的ORM(对象关系映射)工具,它能够将Java类映射到数据库中的表,实现数据的透明访问。"hibernate根据类生成表"这一主题主要涉及Hibernate的自动建表功能,即...
在本实例中,我们将使用全注解的方式,通过@Entity、@Table、@Column等注解来定义实体类,省去了传统的Hibernate XML配置文件。Hibernate的Session接口和Criteria API可以方便地进行数据的增删改查操作。此外,...
接着,他们会定义Java实体类,这些类代表了数据库中的表,并使用Hibernate的注解(如`@Entity`、`@Table`、`@Column`等)来描述它们与数据库表的关系。实体类的实例可以通过Hibernate的Session接口进行持久化操作,...
在Java开发中,将Java实体类转换为MySQL数据库的建表语句是一项常见的任务,它有助于快速构建数据库模型,尤其在使用ORM(对象关系映射)框架如Hibernate、MyBatis时更为便捷。本篇文章将深入探讨这个过程,并提供...
在整合S2SH时,数据库配置通常在Spring的配置文件中完成,通过DataSource和SessionFactory的配置,使Hibernate能够与数据库建立连接并执行CRUD操作。 **标签** "Struts2 Spring Hibernate demo 注解" 指出了这个...
在实体类中,我们还需要使用@Column 注解来标注字段名。 在配置文件中,我们需要配置数据源、MyBatis 的会话工厂和事务管理器。我们可以使用 Druid 数据源来管理数据库连接,并使用 MyBatis 的 ...
这种做法在快速开发和迭代中非常有用,避免了手动编写SQL建表语句的工作,同时使得代码和数据模型保持同步。记住,尽管ORM带来了便利,但在处理复杂的SQL查询或性能调优时,可能需要直接编写SQL语句。在享受ORM带来...
在 Hibernate 中,对象的 ID(主键)可以通过多种策略生成,包括: 1. **Identity**:依赖于数据库的自动增长机制,如 MySQL 的 AUTO_INCREMENT。 2. **Sequence**:使用数据库序列来生成 ID,适用于 Oracle 和 ...
2. **注解映射**: 使用Hibernate注解(如`@Entity`、`@Table`、`@Column`等)来标记实体类和属性,简化配置。 3. **主键生成策略**: 设置主键生成策略,如`@GeneratedValue`配合`GenerationType.AUTO`,让Hibernate...
4. **实体类(Entities)**:创建Java类来表示数据库中的表,使用Hibernate的注解(如`@Entity`, `@Table`, `@Id`, `@Column`等)来标记这些类和字段,以便Hibernate自动管理它们。 5. **DAO(数据访问对象)**:...