中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档 | 网通镜像
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 程序开发 > 编程语言 > Java > 综合文章
read AppFuse 11-实践-业务信息person的建立
作者:未知 时间:2005-07-27 22:47 出处:CSDN 责编:chinaitpower
              摘要:read AppFuse 11-实践-业务信息person的建立

read AppFuse 11-实践-业务信息person的建立

     按照AppFuse帮助,进行AppFuse开发实践

(1)     创建POJO

package org.dudu.model;

/**

 * @hibernate.class table="person"

 */

public class Person extends BaseObject

{

   private Long id;

   private String firstName;

   private String lastName;

       /**

    * @return Returns the id

    * @hibernate.id column="id"

    * generator-class="increment" unsaved-value="null"

    */

   public long getId() {

       return id;

   }

       /**

    * @return Returns thd first name

    * @struts.validator type="required"

 * @hibernate.property column="first_name" length="50" not-null="true"

    */

   public String getFirstName() {

       return firstName;

   }

   /**

    * @return Returns the last name

    * @struts.validator type="required"

    * @hibernate.property column="last_name" length="50" not-null="true"

    */

   public String getLastName() {

       return lastName;

   }

   /**

    * @param l

    */

   public void setId(long l) {

       id = l;

   }

   /**

    * @param string

    */

   public void setFirstName(String string) {

       firstName = string;

   }

   /**

    * @param string

    */

   public void setLastName(String string) {

       lastName = string;

   }

   /* (非 Javadoc

    * @see java.lang.Object#equals(java.lang.Object)

    */

   public boolean equals(Object o) {

       // TODO 自动生成方法存根

       return false;

   }

   /* (非 Javadoc

    * @see java.lang.Object#hashCode()

    */

   public int hashCode() {

       return 0;

   }

   public String toString() {

       return null;

   }

 

}

Ø Hibernate是一个对象/关系(O/R) 框架,它允许你将一个Java对象同一个表关联。

Ø 要确保对象的id属性的getter是当前类的第一个方法,否则生成的JSP的页面可能会有一个脚本错误

Ø 注意:所有的 @hibernate.* tag必须放在你的POJOgetterJavadoc

Ø 如果你想更改列的长度, 更改@hibernate.property标记的length属性。如果你希望它是一个必填的字段(NOT NULL),那么你要添加not-null="true"

Ø 添加column属性的唯一原因是:表的列名和对象的属性名字不一致。如果他们一致,就不需要添加column属性。[引用]

 

(2)     使用Ant根据Person对象创建一个person新表和名为Person.hbm.xml的映射文件。

E:\dudu>ant setup-db

Buildfile: build.xml

 

init:

 

db-create:

     [echo] Detected MySQL, creating database...

     [echo] Creating database with: mysql-create.sql

     [echo] URL: jdbc:mysql://localhost/mysql

      [sql] Executing file: E:\dudu\metadata\sql\mysql-create.sql

      [sql] 3 of 3 SQL statements executed successfully

 

clean:

     [echo] Cleaning build and distribution directories

   [delete] Deleting directory E:\dudu\build

   [delete] Deleting directory E:\dudu\dist

   [delete] Deleting: E:\dudu\database.properties

 

build.properties.missing:

 

prepare:

     [echo] Preparing target directory 'E:\dudu/build/dudu'

    [mkdir] Created dir: E:\dudu\build\dudu

    [mkdir] Created dir: E:\dudu\build\dudu\WEB-INF

    [mkdir] Created dir: E:\dudu\dist\webapps

 

hibernatedoclet:

[hibernatedoclet] (XDocletMain.start                   47  ) Running <hibernate/

>

 

[hibernatedoclet] Generating mapping file for org.dudu.model.User.

[hibernatedoclet]    org.dudu.model.User

[hibernatedoclet] Generating mapping file for org.dudu.model.Person.

[hibernatedoclet]    org.dudu.model.Person

[hibernatedoclet] Generating mapping file for org.dudu.model.Role.

[hibernatedoclet]    org.dudu.model.Role

[hibernatedoclet] Generating mapping file for org.dudu.model.UserCookie.

[hibernatedoclet]    org.dudu.model.UserCookie

 

compile-dao:

 

compile-module:

     [echo] Compiling dao...

    [mkdir] Created dir: E:\dudu\build\dao\classes

    [mkdir] Created dir: E:\dudu\build\test\dao\classes

    [javac] Compiling 16 source files to E:\dudu\build\dao\classes

    [javac] Note: E:\dudu\src\dao\org\dudu\model\User.java uses unchecked or uns

afe operations.

    [javac] Note: Recompile with -Xlint:unchecked for details.

 

package-dao:

     [copy] Copying 1 file to E:\dudu\build\dao\gen

      [jar] Building jar: E:\dudu\dist\dudu-dao.jar

 

db-prepare:

 

generate.database.properties:

     [echo] generating database.properties from build.properties

[propertyfile] Creating new property file: E:\dudu\database.properties

[schemaexport] (cfg.Environment                     478 ) Hibernate 2.1.7

[schemaexport] (cfg.Environment                     507 ) hibernate.properties n

ot found

[schemaexport] (cfg.Environment                     538 ) using CGLIB reflection

 optimizer

[schemaexport] (cfg.Environment                     567 ) using JDK 1.4 java.sql

.Timestamp handling

[schemaexport] (cfg.Configuration                   169 ) Mapping file: E:\dudu\

build\dao\gen\org\dudu\model\Person.hbm.xml

[schemaexport] (cfg.Binder                          230 ) Mapping class: org.dud

u.model.Person -> person

[schemaexport] (cfg.Configuration                   169 ) Mapping file: E:\dudu\

build\dao\gen\org\dudu\model\Role.hbm.xml

[schemaexport] (cfg.Binder                          230 ) Mapping class: org.dud

u.model.Role -> role

[schemaexport] (cfg.Configuration                   169 ) Mapping file: E:\dudu\

build\dao\gen\org\dudu\model\User.hbm.xml

[schemaexport] (cfg.Binder                          230 ) Mapping class: org.dud

u.model.User -> app_user

[schemaexport] (cfg.Binder                          572 ) Mapping collection: or

g.dudu.model.User.roles -> user_role

[schemaexport] (cfg.Configuration                   169 ) Mapping file: E:\dudu\

build\dao\gen\org\dudu\model\UserCookie.hbm.xml

[schemaexport] (cfg.Binder                          230 ) Mapping class: org.dud

u.model.UserCookie -> user_cookie

[schemaexport] (dialect.Dialect                     86  ) Using dialect: net.sf.

hibernate.dialect.MySQLDialect

[schemaexport] (cfg.Configuration                   632 ) processing one-to-many

 association mappings

[schemaexport] (cfg.Configuration                   641 ) processing one-to-one

association property references

[schemaexport] (cfg.Configuration                   666 ) processing foreign key

 constraints

[schemaexport] (cfg.Configuration                   632 ) processing one-to-many

 association mappings

[schemaexport] (cfg.Configuration                   641 ) processing one-to-one

association property references

[schemaexport] (cfg.Configuration                   666 ) processing foreign key

 constraints

[schemaexport] (hbm2ddl.SchemaExport                98  ) Running hbm2ddl schema

 export

[schemaexport] (hbm2ddl.SchemaExport                112 ) writing generated sche

ma to file: create-tables.sql

[schemaexport] (hbm2ddl.SchemaExport                117 ) exporting generated sc

hema to database

[schemaexport] (connection.DriverManagerConnectionProvider 42  ) Using Hibernate

 built-in connection pool (not for production use!)

[schemaexport] (connection.DriverManagerConnectionProvider 43  ) Hibernate conne

ction pool size: 20

[schemaexport] (connection.DriverManagerConnectionProvider 77  ) using driver: c

om.mysql.jdbc.Driver at URL: jdbc:mysql://localhost/dudu?autoReconnect=true&useU

nicode=true&characterEncoding=utf-8

[schemaexport] (connection.DriverManagerConnectionProvider 78  ) connection prop

erties: {user=test, password=test, show_sql=true}

[schemaexport] alter table user_role drop foreign key FK143BF46A14048CB4;

[schemaexport] alter table user_role drop foreign key FK143BF46AF02988D6;

[schemaexport] drop table if exists user_role;

[schemaexport] drop table if exists app_user;

[schemaexport] drop table if exists person;

[schemaexport] drop table if exists user_cookie;

[schemaexport] drop table if exists role;

[schemaexport] create table user_role (

[schemaexport]    username varchar(20) not null,

[schemaexport]    role_name varchar(20) not null,

[schemaexport]    primary key (username, role_name)

[schemaexport] );

[schemaexport] create table app_user (

[schemaexport]    username varchar(20) not null,

[schemaexport]    version integer not null,

[schemaexport]    password varchar(255) not null,

[schemaexport]    first_name varchar(50) not null,

[schemaexport]    last_name varchar(50) not null,

[schemaexport]    address varchar(150),

[schemaexport]    city varchar(50) not null,

[schemaexport]    province varchar(100),

[schemaexport]    country varchar(100),

[schemaexport]    postal_code varchar(15) not null,

[schemaexport]    email varchar(255) not null unique,

[schemaexport]    phone_number varchar(255),

[schemaexport]    website varchar(255),

[schemaexport]    password_hint varchar(255),

[schemaexport]    primary key (username)

[schemaexport] );

[schemaexport] create table person (

[schemaexport]    id bigint not null,

[schemaexport]    first_name varchar(50) not null,

[schemaexport]    last_name varchar(50) not null,

[schemaexport]    primary key (id)

[schemaexport] );

[schemaexport] create table user_cookie (

[schemaexport]    id bigint not null,

[schemaexport]    username varchar(30) not null,

[schemaexport]    cookie_id varchar(100) not null,

[schemaexport]    date_created datetime not null,

[schemaexport]    primary key (id)

[schemaexport] );

[schemaexport] create table role (

[schemaexport]    name varchar(20) not null,

[schemaexport]    version integer not null,

[schemaexport]    description varchar(255),

[schemaexport]    primary key (name)

[schemaexport] );

[schemaexport] alter table user_role add index FK143BF46A14048CB4 (role_name), a

dd constraint FK143BF46A14048CB4 foreign key (role_name) references role (name);

 

[schemaexport] alter table user_role add index FK143BF46AF02988D6 (username), ad

d constraint FK143BF46AF02988D6 foreign key (username) references app_user (user

name);

[schemaexport] create index user_cookie_username_cookie_id on user_cookie (usern

ame, cookie_id);

[schemaexport] (hbm2ddl.SchemaExport                160 ) schema export complete

 

[schemaexport] (connection.DriverManagerConnectionProvider 143 ) cleaning up con

nection pool: jdbc:mysql://localhost/dudu?autoReconnect=true&useUnicode=true&cha

racterEncoding=utf-8

 

db-load:

(connection.DriverManagerConnectionProvider 143 ) cleaning up connection pool: j

dbc:mysql://localhost/dudu?autoReconnect=true&useUnicode=true&characterEncoding=

utf-8

   [dbunit] Executing operation: CLEAN_INSERT

   [dbunit]           on   file: E:\dudu\metadata\sql\sample-data.xml

   [dbunit]           with format: xml

 

setup-db:

 

BUILD SUCCESSFUL

Total time: 1 minute 6 seconds

 

    Ø 生成的person

    mysql> desc person;

+------------+-------------+------+-----+---------+-------+

| Field      | Type        | Null | Key | Default | Extra |

+------------+-------------+------+-----+---------+-------+

| id         | bigint(20)  |      | PRI | 0       |       |

| first_name | varchar(50) |      |     |         |       |

| last_name  | varchar(50) |      |     |         |       |

+------------+-------------+------+-----+---------+-------+

3 rows in set (0.00 sec)

 

Ø 生成的Person..hbm.xml

    <?xml version="1.0" encoding="UTF-8"?>

 

<!DOCTYPE hibernate-mapping PUBLIC

    "-//Hibernate/Hibernate Mapping DTD 2.0//EN"

    "http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd">

 

<hibernate-mapping>

    <class

        name="org.dudu.model.Person"

        table="person"

        dynamic-update="false"

        dynamic-insert="false"

        select-before-update="false"

        optimistic-lock="version"

    >

        <id

            name="id"

            column="id"

            type="java.lang.Long"

            unsaved-value="null"

        >

            <generator class="increment">

              <!-- 

                  To add non XDoclet generator parameters, create a file named

                  hibernate-generator-params-Person.xml

                  containing the additional parameters and place it in your merge dir.

              -->

            </generator>

        </id>

        <property

            name="firstName"

            type="java.lang.String"

            update="true"

            insert="true"

            access="property"

            column="first_name"

            length="50"

            not-null="true"

        />

        <property

            name="lastName"

            type="java.lang.String"

            update="true"

            insert="true"

            access="property"

            column="last_name"

            length="50"

            not-null="true"

        />

        <!--

            To add non XDoclet property mappings, create a file named

                hibernate-properties-Person.xml

            containing the additional properties and place it in your merge dir.

        -->

    </class>

</hibernate-mapping>

 


关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有