java中的映射是怎样实现的?
答案:5 悬赏:60 手机版
解决时间 2021-04-03 17:15
- 提问者网友:战魂
- 2021-04-03 10:00
java中的映射是怎样实现的?
最佳答案
- 五星知识达人网友:洒脱疯子
- 2021-04-03 11:31
建议做法如下:
第一,写一个符合javaBean标准的实体类,类的属性名称和类型分别与数据库的字段对应,并加上无参构造方法和get、set方法;
第二,使用注解配置映射关系,用@Entity注解该类是一个实体类,用@Table(name = "表名")注解该实体类映射的表名,通过在每一个属性的get方法上添加@Column(name = "列名")注解该属性映射的列;
第三,配置主键,找出表主键映射的那个属性,用@Id在该属性的get方法上注解该属性为Id。(根据具体需要,可能还要做一些更详细的配置)
参考代码如下:
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
import org.hibernate.annotations.Parameter;
@Entity //说明该类是实体类
@Table(name = "USER")//说明该类映射的是表USER
public class TUser implements java.io.Serializable {
private String userID; // 用户id
private String userName; // 用户名称
private String loginName; // 登录名称
private String password; // 密码
private Integer status; // 状态
private java.util.Date lastLoginTime; // 上次登录时间
private java.util.Date regTime; // 注册时间
@Id//说明该属性映射的是表USER的主键
@Column(name = "UserID", unique = true, nullable = false)
//该属性映射的是表USER的UserId字段,非空且唯一
public String getUserID() {
return this.userID;
}
public void setUserID(String userID) {
this.userID = userID;
}
@Column(name = "UserName")
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
@Column(name = "LoginName")
public String getLoginName() {
return this.loginName;
}
public void setLoginName(String loginName) {
this.loginName = loginName;
}
@Column(name = "Password")
public String getPassword() {
return this.password;
}
public void setPassword(String password) {
this.password = password;
}
@Column(name = "Status")
public Integer getStatus() {
return status;
}
public void setStatus(Integer status) {
this.status = status;
}
@Column(name = "LastLoginTime")
public java.util.Date getLastLoginTime() {
return lastLoginTime;
}
public void setLastLoginTime(java.util.Date lastLoginTime) {
this.lastLoginTime = lastLoginTime;
}
@Column(name = "RegTime")
public java.util.Date getRegTime() {
return regTime;
}
public void setRegTime(java.util.Date regTime) {
this.regTime = regTime;
}
@Override
public int hashCode() {
int prime = 0;
prime += this.getUserID().hashCode();
return prime;
}
@Override
public boolean equals(Object obj) {
boolean isEquals = false;
if (obj != null && this.getClass() == obj.getClass()) {
TUser clazz = (TUser) obj;
if (clazz.getUserID().equals(this.getUserID()))
isEquals = true;
return isEquals;
}
return isEquals;
}
}
第一,写一个符合javaBean标准的实体类,类的属性名称和类型分别与数据库的字段对应,并加上无参构造方法和get、set方法;
第二,使用注解配置映射关系,用@Entity注解该类是一个实体类,用@Table(name = "表名")注解该实体类映射的表名,通过在每一个属性的get方法上添加@Column(name = "列名")注解该属性映射的列;
第三,配置主键,找出表主键映射的那个属性,用@Id在该属性的get方法上注解该属性为Id。(根据具体需要,可能还要做一些更详细的配置)
参考代码如下:
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
import org.hibernate.annotations.Parameter;
@Entity //说明该类是实体类
@Table(name = "USER")//说明该类映射的是表USER
public class TUser implements java.io.Serializable {
private String userID; // 用户id
private String userName; // 用户名称
private String loginName; // 登录名称
private String password; // 密码
private Integer status; // 状态
private java.util.Date lastLoginTime; // 上次登录时间
private java.util.Date regTime; // 注册时间
@Id//说明该属性映射的是表USER的主键
@Column(name = "UserID", unique = true, nullable = false)
//该属性映射的是表USER的UserId字段,非空且唯一
public String getUserID() {
return this.userID;
}
public void setUserID(String userID) {
this.userID = userID;
}
@Column(name = "UserName")
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
@Column(name = "LoginName")
public String getLoginName() {
return this.loginName;
}
public void setLoginName(String loginName) {
this.loginName = loginName;
}
@Column(name = "Password")
public String getPassword() {
return this.password;
}
public void setPassword(String password) {
this.password = password;
}
@Column(name = "Status")
public Integer getStatus() {
return status;
}
public void setStatus(Integer status) {
this.status = status;
}
@Column(name = "LastLoginTime")
public java.util.Date getLastLoginTime() {
return lastLoginTime;
}
public void setLastLoginTime(java.util.Date lastLoginTime) {
this.lastLoginTime = lastLoginTime;
}
@Column(name = "RegTime")
public java.util.Date getRegTime() {
return regTime;
}
public void setRegTime(java.util.Date regTime) {
this.regTime = regTime;
}
@Override
public int hashCode() {
int prime = 0;
prime += this.getUserID().hashCode();
return prime;
}
@Override
public boolean equals(Object obj) {
boolean isEquals = false;
if (obj != null && this.getClass() == obj.getClass()) {
TUser clazz = (TUser) obj;
if (clazz.getUserID().equals(this.getUserID()))
isEquals = true;
return isEquals;
}
return isEquals;
}
}
全部回答
- 1楼网友:洎扰庸人
- 2021-04-03 12:58
小学的时候数学题有一种叫做连线题,就是映射的一种表现
- 2楼网友:山君与见山
- 2021-04-03 12:34
映射还是反射?
- 3楼网友:第四晚心情
- 2021-04-03 12:20
给你起个名字,以后我叫你名字,你就知道我是在叫你。
名字映射到人,Java里边一样的道理,可以自己写,也用框架,原理是一样的
名字映射到人,Java里边一样的道理,可以自己写,也用框架,原理是一样的
- 4楼网友:蕴藏春秋
- 2021-04-03 12:07
JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法,这是区别于必须先声明类并实例化才能使用类而言,这种方式可以预先不需要实例化。
对于任意一个对象,都能够调用它的任意一个方法;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。通过反射机制访问java对象的属性,方法,构造方法等;
对于任意一个对象,都能够调用它的任意一个方法;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。通过反射机制访问java对象的属性,方法,构造方法等;
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯