1.建立数据库用户名 demo 密码 demo
2.建立测试表
建立测试表 demo
字段说明 id char(100)
主键 name varchar2(50)
名字 image_id number(10)
图片id system_date date
系统日期 user_date date
录入日期
建立图片索引表 image
字段说明 id char(100)
主键 title varchar2(50)
图片标题 message varchar2(2000)
图片信息 original_image_path varchar(200)
原始图片保存路径 small _image_path varchar(200)
小图片保存路径 image_id number(10)
图片id system_date date
系统日期
id索引表 Singleton_Id
字段说明 id char(100)
主键 name varchar2(50)
索引名(需要为此字段建索引) value number(10)
索引id
Struts+Hibernate模板开发笔记---建立Hibernate配置
1.拷贝Oracle9i数据库驱动程序ojdbc14.jar到JBUILDER9安装目录的LIB目录下.用JBUILDER9.0建立PROJECT工程.
2.把如下hibernate-2.0.3必须的库文件包含在工程中.
hibernate2.jar commons-beanutils.jar commons-collections.jar
commons-dbcp.jar commons-lang.jar commons-logging.jar commons-pool.jar dom4j.jar
cglib-asm.jar connector.jar
3.建立 hibernate.cfg.xml文件,并拷到SRC目录
<?xml version='1.0' encoding='utf-8'?> Hibernate/Hibernate Configuration DTD//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-2.0.dtd"> <HIBERNATE-CONFIGURATION> <SESSION-FACTORY>
<property name="connection.datasource">java:comp/env/jdbc/demo</property> <property name="show_sql">true</property> <property name="use_outer_join">true</property> <property name="dialect">net.sf.hibernate.dialect.Oracle9Dialect</property>
</SESSION-FACTORY> </HIBERNATE-CONFIGURATION>
Struts+Hibernate模板开发笔记---把数据库的表映射为类
下载 hibernate-extensions 压缩包. 修改 setenv.bat文件中的环境变量.主要修改Hibernate的目录和数据库驱动程序文件名.
例如:
@echo off
rem -------------------------------------------------------------------
rem Setup environment for hibernate tools
rem -------------------------------------------------------------------
set JDBC_DRIVER=../../../lib/ojdbc14.jar
set HIBERNATE_HOME=../../../hibernate-2.0.3
set CORELIB=%HIBERNATE_HOME%/lib
set LIB=../lib
set PROPS=%HIBERNATE_HOME%/src
set CP=%JDBC_DRIVER%;%PROPS%;%HIBERNATE_HOME%/hibernate2.jar;
%CORELIB%/commons-logging.jar;%CORELIB%/commons-collections.jar;
%CORELIB%/commons-lang.jar;%CORELIB%/cglib.jar;
%CORELIB%/dom4j.jar;%CORELIB%/odmg.jar;%CORELIB%/xml-apis.jar;%CORELIB%/xerces.jar;
%CORELIB%/xalan.jar;%LIB%/jdom.jar;%LIB%/../hibernate-tools.jar
运行ddl2hbm.bat, 设置参数如下:
[ CONNECTION ]
DRIVER CLASS : oracle.jdbc.driver.OracleDriver (org.gjt.mm.mysql.Driver)
CONNECTION URL: jdbc:oracle:thin:@192.168.3.200:1521:demo
(jdbc:mysql://localhost/authority)
USER: demo
PASSWORD: demo
[ MAPPING ]
KEY FIELD : id
SCHEMAEXPORT : uuid.hex
[ CODE ]
PACKAGE NAME: com.company.demo.jdo
[ OUTPUT ]
F:/j_work/working/demo/src
其它的用默认值,点[TABLES]的tables..选择表,程序生成类和xml
生成的文件如下:
(1)image.java
package com.company.demo.jdo;
import java.io.Serializable;
import java.util.Date;
import org.apache.commons.lang.builder.EqualsBuilder;
import org.apache.commons.lang.builder.HashCodeBuilder;
import org.apache.commons.lang.builder.ToStringBuilder;
/** @author Hibernate CodeGenerator */
public class Image implements Serializable {
/** identifier field */
private String id;
/** nullable persistent field */
private String title;
/** nullable persistent field */
private String message;
/** nullable persistent field */
private String originalImagePath;
/** nullable persistent field */
private String smallImagePath;
/** nullable persistent field */
private long imageId;
/** nullable persistent field */
private Date systemDate;
/** full constructor */
public Image(String title, String message, String originalImagePath,
String smallImagePath, long imageId, Date systemDate) {
this.title = title;
this.message = message;
this.originalImagePath = originalImagePath;
this.smallImagePath = smallImagePath;
this.imageId = imageId;
this.systemDate = systemDate;
}
/** default constructor */
public Image() {
}
public String getId() {
return this.id;
}
public void setId(String id) {
this.id = id;
}
public String getTitle() {
return this.title;
}
public void setTitle(String title) {
this.title = title;
}
public String getMessage() {
return this.message;
}
public void setMessage(String message) {
this.message = message;
}
public String getOriginalImagePath() {
return this.originalImagePath;
}
public void setOriginalImagePath(String originalImagePath) {
this.originalImagePath = originalImagePath;
}
public String getSmallImagePath() {
return this.smallImagePath;
}
public void setSmallImagePath(String smallImagePath) {
this.smallImagePath = smallImagePath;
}
public long getImageId() {
return this.imageId;
}
public void setImageId(long imageId) {
this.imageId = imageId;
}
public Date getSystemDate() {
return this.systemDate;
}
public void setSystemDate(Date systemDate) {
this.systemDate = systemDate;
}
public String toString() {
return new ToStringBuilder(this)
.append("id", getId())
.toString();
}
public boolean equals(Object other) {
if ( !(other instanceof Image) ) return false;
Image castOther = (Image) other;
return new EqualsBuilder()
.append(this.getId(), castOther.getId())
.isEquals();
}
public int hashCode() {
return new HashCodeBuilder()
.append(getId())
.toHashCode();
}
}
(2)Image.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="com.company.demo.jdo.Image" schema="DEMO" table="IMAGE">
<id column="ID" name="id" type="string">
<generator class="uuid.hex"/>
</id>
<property column="TITLE" length="50" name="title" type="string"/>
<property column="MESSAGE" length="2000" name="message" type="string"/>
<property column="ORIGINAL_IMAGE_PATH" length="200" name="originalImagePath"
type="string"/>
<property column="SMALL_IMAGE_PATH" length="200" name="smallImagePath" type="string"/>
<property column="IMAGE_ID" length="10" name="imageId" type="long"/>
<property column="SYSTEM_DATE" length="7" name="systemDate" type="timestamp"/>
</class>
</hibernate-mapping>
其它生成的文件略!
Struts+Hibernate模板开发笔记---模板中的包定义
com.company.demo.dataModule 数据模型
com.company.demo.dao DAO模型
com.company.demo.exception 异常
com.company.demo.jdo hibernate类映射
com.company.demo.start 启动JSP服务时加载的类
com.company.demo.tags 自定义标签类
com.company.demo.thread 线程类
com.company.demo.util 工具类
com.company.demo.web Struts类
com.company.demo.facade Facade调用的类
2.把如下hibernate-2.0.3必须的库文件包含在工程中.
hibernate2.jar commons-beanutils.jar commons-collections.jar
commons-dbcp.jar commons-lang.jar commons-logging.jar commons-pool.jar dom4j.jar
cglib-asm.jar connector.jar
3.建立 hibernate.cfg.xml文件,并拷到SRC目录
<?xml version='1.0' encoding='utf-8'?> Hibernate/Hibernate Configuration DTD//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-2.0.dtd"> <HIBERNATE-CONFIGURATION> <SESSION-FACTORY>
<property name="connection.datasource">java:comp/env/jdbc/demo</property> <property name="show_sql">true</property> <property name="use_outer_join">true</property> <property name="dialect">net.sf.hibernate.dialect.Oracle9Dialect</property>
</SESSION-FACTORY> </HIBERNATE-CONFIGURATION>
Struts+Hibernate模板开发笔记---把数据库的表映射为类
下载 hibernate-extensions 压缩包. 修改 setenv.bat文件中的环境变量.主要修改Hibernate的目录和数据库驱动程序文件名.
例如:
@echo off
rem -------------------------------------------------------------------
rem Setup environment for hibernate tools
rem -------------------------------------------------------------------
set JDBC_DRIVER=../../../lib/ojdbc14.jar
set HIBERNATE_HOME=../../../hibernate-2.0.3
set CORELIB=%HIBERNATE_HOME%/lib
set LIB=../lib
set PROPS=%HIBERNATE_HOME%/src
set CP=%JDBC_DRIVER%;%PROPS%;%HIBERNATE_HOME%/hibernate2.jar;
%CORELIB%/commons-logging.jar;%CORELIB%/commons-collections.jar;
%CORELIB%/commons-lang.jar;%CORELIB%/cglib.jar;
%CORELIB%/dom4j.jar;%CORELIB%/odmg.jar;%CORELIB%/xml-apis.jar;%CORELIB%/xerces.jar;
%CORELIB%/xalan.jar;%LIB%/jdom.jar;%LIB%/../hibernate-tools.jar
运行ddl2hbm.bat, 设置参数如下:
[ CONNECTION ]
DRIVER CLASS : oracle.jdbc.driver.OracleDriver (org.gjt.mm.mysql.Driver)
CONNECTION URL: jdbc:oracle:thin:@192.168.3.200:1521:demo
(jdbc:mysql://localhost/authority)
USER: demo
PASSWORD: demo
[ MAPPING ]
KEY FIELD : id
SCHEMAEXPORT : uuid.hex
[ CODE ]
PACKAGE NAME: com.company.demo.jdo
[ OUTPUT ]
F:/j_work/working/demo/src
其它的用默认值,点[TABLES]的tables..选择表,程序生成类和xml
生成的文件如下:
(1)image.java
package com.company.demo.jdo;
import java.io.Serializable;
import java.util.Date;
import org.apache.commons.lang.builder.EqualsBuilder;
import org.apache.commons.lang.builder.HashCodeBuilder;
import org.apache.commons.lang.builder.ToStringBuilder;
/** @author Hibernate CodeGenerator */
public class Image implements Serializable {
/** identifier field */
private String id;
/** nullable persistent field */
private String title;
/** nullable persistent field */
private String message;
/** nullable persistent field */
private String originalImagePath;
/** nullable persistent field */
private String smallImagePath;
/** nullable persistent field */
private long imageId;
/** nullable persistent field */
private Date systemDate;
/** full constructor */
public Image(String title, String message, String originalImagePath,
String smallImagePath, long imageId, Date systemDate) {
this.title = title;
this.message = message;
this.originalImagePath = originalImagePath;
this.smallImagePath = smallImagePath;
this.imageId = imageId;
this.systemDate = systemDate;
}
/** default constructor */
public Image() {
}
public String getId() {
return this.id;
}
public void setId(String id) {
this.id = id;
}
public String getTitle() {
return this.title;
}
public void setTitle(String title) {
this.title = title;
}
public String getMessage() {
return this.message;
}
public void setMessage(String message) {
this.message = message;
}
public String getOriginalImagePath() {
return this.originalImagePath;
}
public void setOriginalImagePath(String originalImagePath) {
this.originalImagePath = originalImagePath;
}
public String getSmallImagePath() {
return this.smallImagePath;
}
public void setSmallImagePath(String smallImagePath) {
this.smallImagePath = smallImagePath;
}
public long getImageId() {
return this.imageId;
}
public void setImageId(long imageId) {
this.imageId = imageId;
}
public Date getSystemDate() {
return this.systemDate;
}
public void setSystemDate(Date systemDate) {
this.systemDate = systemDate;
}
public String toString() {
return new ToStringBuilder(this)
.append("id", getId())
.toString();
}
public boolean equals(Object other) {
if ( !(other instanceof Image) ) return false;
Image castOther = (Image) other;
return new EqualsBuilder()
.append(this.getId(), castOther.getId())
.isEquals();
}
public int hashCode() {
return new HashCodeBuilder()
.append(getId())
.toHashCode();
}
}
(2)Image.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="com.company.demo.jdo.Image" schema="DEMO" table="IMAGE">
<id column="ID" name="id" type="string">
<generator class="uuid.hex"/>
</id>
<property column="TITLE" length="50" name="title" type="string"/>
<property column="MESSAGE" length="2000" name="message" type="string"/>
<property column="ORIGINAL_IMAGE_PATH" length="200" name="originalImagePath"
type="string"/>
<property column="SMALL_IMAGE_PATH" length="200" name="smallImagePath" type="string"/>
<property column="IMAGE_ID" length="10" name="imageId" type="long"/>
<property column="SYSTEM_DATE" length="7" name="systemDate" type="timestamp"/>
</class>
</hibernate-mapping>
其它生成的文件略!
Struts+Hibernate模板开发笔记---模板中的包定义
com.company.demo.dataModule 数据模型
com.company.demo.dao DAO模型
com.company.demo.exception 异常
com.company.demo.jdo hibernate类映射
com.company.demo.start 启动JSP服务时加载的类
com.company.demo.tags 自定义标签类
com.company.demo.thread 线程类
com.company.demo.util 工具类
com.company.demo.web Struts类
com.company.demo.facade Facade调用的类