`
lbfhappy
  • 浏览: 82743 次
社区版块
存档分类
最新评论

J2EE初学2

阅读更多

今天看到了实体BEAN,(Entity Bean),在做对象和数据库表映射时候,发现一个问题,那就是我为一个字段指定了列名后,它仍然会生成一个和字段名一样的列,比如;

实体BEAN代码
  1. /*  
  2.  * Person.java  
  3.  *  
  4.  * Created on 2006年12月8日, 上午9:43  
  5.  *  
  6.  * To change this template, choose Tools | Template Manager  
  7.  * and open the template in the editor.  
  8.  */  
  9.   
  10. package lbf.demo.bean;   
  11.   
  12. /**  
  13.  *  
  14.  * @author lbf  
  15.  */  
  16. import java.util.*;   
  17. import javax.persistence.*;   
  18. @Entity  
  19. @Table(name="person")   
  20. public class Person {   
  21.     private int id,age;   
  22.     private String name,sex;   
  23.     private Date birthday;   
  24.     /** Creates a new instance of Person */  
  25.     public Person() {   
  26.     }   
  27.     @Id  
  28.     @GeneratedValue  
  29.     public int getId() {   
  30.         return id;   
  31.     }   
  32.   
  33.     public void setId(int id) {   
  34.         this.id = id;   
  35.     }   
  36.     @Column(name="myAge",nullable=false,length=4)   
  37.     public int getAge() {   
  38.         return age;   
  39.     }   
  40.   
  41.     public void setAge(int age) {   
  42.         this.age = age;   
  43.     }   
  44.     @Column(name="PersonName",nullable=false,length=32)   
  45.     public String getName() {   
  46.         return name;   
  47.     }   
  48.        
  49.     public void setName(String name) {   
  50.         this.name = name;   
  51.     }   
  52.     @Column(name="mySex",nullable=false)   
  53.     public String getSex() {   
  54.         return sex;   
  55.     }   
  56.   
  57.     public void setSex(String sex) {   
  58.         this.sex = sex;   
  59.     }   
  60.     @Column(name="myBirty",nullable=false)   
  61.     public Date getBirthday() {   
  62.         return birthday;   
  63.     }   
  64.   
  65.     public void setBirthday(Date birthday) {   
  66.         this.birthday = birthday;   
  67.     }   
  68.        
  69. }   

我在这里,除了主键ID没有指定列名外,其它四个属性我都有指定列名,当然这个列名和属性本不一样,可是当我布署了此EJB后,发现数据库里面我生成的表却多了几列和类属性同名的列.真是太奇怪了,它既生成我指定的列名为什么又要生成属性相同的列名呢,如果我不指定任何列名,那么数据库就会生成和我属性名一样的列.

上述生成的重复列,只是有三个会重复而已,而PersonName却只有一个,也就是说不会出现name列,但是为什么其它三个会生成age,birthday,sex这三列呢.此时它依然帮我生成了myAge,myBirth,mySex,并且这三列还可以为空,我不是指定了不可以为空的吗,可是age,birthday,sex,这三列却不可以为空,就好像我指定的属性是为它们指定的一样.

记下此问题,留给以后解决

刚才又改了一个程序,发现这样写可以让数据库生成我想生成的形式

新的代码 代码
  1. /*  
  2.  * Person.java  
  3.  *  
  4.  * Created on 2006年12月8日, 上午9:43  
  5.  *  
  6.  * To change this template, choose Tools | Template Manager  
  7.  * and open the template in the editor.  
  8.  */  
  9.   
  10. package lbf.demo.bean;   
  11.   
  12. /**  
  13.  *  
  14.  * @author lbf  
  15.  */  
  16. import java.util.*;   
  17. import javax.persistence.*;   
  18. @Entity  
  19. @Table(name="person")   
  20. public class Person {   
  21.     private int id,age;   
  22.     private String name,sex;   
  23.     private Date birthday;   
  24.     /** Creates a new instance of Person */  
  25.     public Person() {   
  26.     }   
  27.     @Id  
  28.     @GeneratedValue  
  29.     public int getId() {   
  30.         return id;   
  31.     }   
  32.   
  33.     public void setId(int id) {   
  34.         this.id = id;   
  35.     }   
  36.     @Column(name="myAge",nullable=false,length=4)   
  37.     public int getAge() {   
  38.         return age;   
  39.     }   
  40.   
  41.     public void setAge(int age) {   
  42.         this.age = age;   
  43.     }   
  44.     @Column(name="PersonName",nullable=false,length=32)   
  45.     public String getName() {   
  46.         return name;   
  47.     }   
  48.        
  49.     public void setName(String name) {   
  50.         this.name = name;   
  51.     }   
  52.     @Column(name="mySex",nullable=false,length=32)   
  53.     public String getSex() {   
  54.         return sex;   
  55.     }   
  56.   
  57.     public void setSex(String sex) {   
  58.         this.sex = sex;   
  59.     }   
  60.     @Column(name="myBirty",nullable=false,length=8)   
  61.     public Date getBirthday() {   
  62.         return birthday;   
  63.     }   
  64.   
  65.     public void setBirthday(Date birthday) {   
  66.         this.birthday = birthday;   
  67.     }   
  68.        
  69. }   

在这段代码里,我每次声明一样新的列名的时候都指定了是否可以非空,长度为多少,这我们在新建表的时候也必须指出的东西,所以我觉得以前的代码之所以会出错(其实不能叫出错,叫出乎意料)是因为我只是指定了列名,而没有指定其长度或者约束,也就是说我的定义不完全,所以系统不知道我想建什么样的列,于是就帮我建了两列,一列是我命名的,一例是以属性名命名的,呵呵,现在只能这么理解了.因为才刚刚接触到皮毛而已

分享到:
评论

相关推荐

    J2EE学习笔记(J2ee初学者必备手册)

    这份"J2EE学习笔记(J2ee初学者必备手册)"是为初学者量身定制的指导资料,旨在帮助新手快速掌握J2EE的核心概念和技术。 **J2EE架构与组件** J2EE架构基于分层设计,主要包含以下层次: 1. **客户端层**:用户...

    J2EE初学者ppt课件

    **J2EE初学者课程概览** J2EE(Java 2 Platform, Enterprise Edition)是Java平台上用于构建企业级应用程序的框架。它提供了一个多层架构,支持分布式、可伸缩性和安全性的应用开发。本课程是专为J2EE初学者设计的...

    J2EE初学者需要注意的问题

    ### J2EE初学者需要注意的问题 #### 一、J2EE体系结构简介 J2EE(Java 2 Platform, Enterprise Edition)是Sun Microsystems为解决企业级应用开发中遇到的复杂性和标准化问题而提出的一套解决方案。它基于Java技术...

    BBS系统(J2EE初学教程源码)

    **BBS系统与J2EE初学教程源码详解** J2EE(Java 2 Platform, Enterprise Edition)是一个用于开发企业级应用的平台,它提供了丰富的功能和组件,支持多层分布式架构,使得开发者能够构建可扩展且健壮的网络应用。本...

    J2EE初学者需要理解的问题

    J2EE初学者需要理解的问题

    J2EE初学者开发文档

    **J2EE初学者开发文档** J2EE(Java 2 Platform, Enterprise Edition)是Java平台上用于构建企业级应用的框架,它为开发者提供了构建分布式、多层应用程序所需的全面服务。这个电子书开发文档旨在为初学者提供一个...

    j2ee初学学习教程

    【J2EE初学学习教程】是一份针对Java企业级应用开发的学习资料,重点介绍了基于MVC模式的一体化开发过程。在这个过程中,UML(统一建模语言)被用来描述用户需求,进行对象导向的分析(OOA)和设计(OOD)。 1. **...

    J2EE初学者要理解的几个问题

    J2EE(Java 2 Platform, Enterprise Edition)是一个由SUN公司推出的用于构建企业级应用的Java...理解这些核心概念是J2EE初学者的基础,随着学习的深入,还需要掌握如何使用这些工具和技术来构建实际的企业级应用程序。

    Java教程 J2EE初学者需要理解的五个问题

    以下是对J2EE初学者需要理解的五个关键问题的详细解释: 1. **J2EE提出的背景**: 在企业级应用开发中,诸如数据库连接、邮件服务和事务处理等功能是常见的需求。为了避免重复开发这些模块导致的时间成本增加和...

    J2EE初学者必看的基础知识电子课件

    **J2EE初学者必看的基础知识电子课件** J2EE(Java 2 Platform, Enterprise Edition)是一种用于构建企业级分布式应用的平台,由Oracle公司维护。它为开发和部署多层、跨平台的应用程序提供了全面的框架。对于初学...

    simplejee-面向j2ee初学者的开源项目

    * simplejee 是很多例子的大杂烩,用来演示j2ee开发的常用技术。 * 包括jsp,servlet,html,javascript,css等,以及springmvc+jdbcTemplate和 struts2+hibernate+spring, struts2+ibatis+spring 实现的登陆,...

    J2EE初学者需要注意的问题《推荐》

    ### J2EE初学者需要注意的问题 #### 一、J2EE提出的背景及重要性 ##### 企业级应用框架的需求 J2EE(Java 2 Platform, Enterprise Edition)最初是为了满足企业级应用的需求而诞生的。在传统的软件开发过程中,很...

    j2ee初学都要来学的书

    2. **J2EE**: 虽然现在被称为Java EE,但J2EE是它的早期名称,代表Java 2 Platform, Enterprise Edition。它包括一套标准的API和服务,如Servlet、JSP、EJB等,用于开发可部署在服务器端的Web应用程序。 3. **JDBC*...

Global site tag (gtag.js) - Google Analytics