hibernate注解开发——1.类级别注解

版权声明:知识本无差别,何必在意你我? https://blog.csdn.net/qq_33774822/article/details/62048408

在之前的开发过程中,都是使用xml配置文件来完成表之间的映射关系的,但是从现在开始,我们要使用hibernate的注解开发来完成这一效果。

JPA:全称为Java Persistence API,是JavaEE的规范和标准。

JPA是标准接口,hibernate是其实现,但是hibernate得功能是JPA的超集。

hibernate是如何实现与JPA的关系的尼?

通过hibernate-annotation,hibernate-entitymanager和hibernate-core三个组件来实现的。

hibernate注解的分类:

1.类级别注解:@Entity(表示实体类),@Table(表示数据库中的表名),@ Embeddable(表示是一个嵌入类)

2.属性级别注解

3.映射关系注解


hibernate的配置文件:(hibernate.cfg.xml)


三个重要的类级别注解:

1.@Entity:映射实体类

2.@Table:映射到数据库的名字,以及里面具体的表名

3.@Embeddable:表示其并不会生成具体的类,只是作为其一个属性


Students.java文件:(注意第12,13,42行)

import java.util.Date;

import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;

/**
 * @author chenchen
 * @Entity:实体类 @Table:对应的表的相关信息
 *name:对应到数据库中的表名字,schema:数据库的名称
 */
@Entity
@Table(name = "t_students",schema="school")
public class Students {
  
private int sid;//学号
private String sname;//姓名
private String gender;//性别
private Date birthday;//生日
private String major;//专业
private Address address;//地址
//无参构造
public Students() {
  super();
}

//有参构造
public Students(int sid, String sname, String gender, Date birthday, String major, Address address) {
  this.sid = sid;
  this.sname = sname;
  this.gender = gender;
  this.birthday = birthday;
  this.major = major;
  this.address = address;
}

//setter和getter方法
/**
 * @return Returns the sid.
 *设置其主键,一定要设置
 */
@Id
public int getSid() {
  return sid;
}

/**
 * @param sid The sid to set.
 */
public void setSid(int sid) {
  this.sid = sid;
}

/**
 * @return Returns the sname.
 */
public String getSname() {
  return sname;
}

/**
 * @param sname The sname to set.
 */
public void setSname(String sname) {
  this.sname = sname;
}

/**
 * @return Returns the gender.
 */
public String getGender() {
  return gender;
}

/**
 * @param gender The gender to set.
 */
public void setGender(String gender) {
  this.gender = gender;
}

/**
 * @return Returns the birthday.
 */
public Date getBirthday() {
  return birthday;
}

/**
 * @param birthday The birthday to set.
 */
public void setBirthday(Date birthday) {
  this.birthday = birthday;
}

/**
 * @return Returns the major.
 */
public String getMajor() {
  return major;
}

/**
 * @param major The major to set.
 */
public void setMajor(String major) {
  this.major = major;
}

/**
 * @return Returns the address.
 */
public Address getAddress() {
  return address;
}

/**
 * @param address The address to set.
 */
public void setAddress(Address address) {
  this.address = address;
}



}

Address.java文件: (注意第6行)

import javax.persistence.Embeddable;

/**
 * 他本身并不会映射为一张表,只是嵌入类,只是在另一个类中充当一个属性
 */
@Embeddable
public class Address {
private String postCode;//邮编
private String address;//地址
private String phone;//联系电话

public Address(){
  
}
/**
 * @return Returns the postCode.
 */
public String getPostCode() {
  return postCode;
}
/**
 * @param postCode The postCode to set.
 */
public void setPostCode(String postCode) {
  this.postCode = postCode;
}
/**
 * @return Returns the address.
 */
public String getAddress() {
  return address;
}
/**
 * @param address The address to set.
 */
public void setAddress(String address) {
  this.address = address;
}
/**
 * @return Returns the phone.
 */
public String getPhone() {
  return phone;
}
/**
 * @param phone The phone to set.
 */
public void setPhone(String phone) {
  this.phone = phone;
}

}


猜你喜欢

转载自blog.csdn.net/qq_33774822/article/details/62048408