在开发过程中,我们可以先设计数据库,然后由MyEclipse自带的功能生成pojo和hbm。也可以先编写pojo,通过xdoclet来生成hbm,在使用hbm2dll来生成数据库。
由于前一种方法的对前期数据库的设计要求较高,一旦对数据库进行更改,那么对整个系统的修改将是噩梦般的修改。
而后一种方式便是一种必须灵活的设计方式。可是随时对数据库进行必要的修改,整个流程都比较简单清晰。
当你使用hbm2dll的时候,你就一定加入了hibernate。该产品是通过hbm文件的内容去产生相应的数据库的。本功能是必须得到hibernat的支持。
第一步:
编写pojo文件。如:
package com.babasport.VO.product;
import org.hibernate.mapping.Column;
/**
* @hibernate.class
* table="babasport"
* @author sunqitang
*
*/
public class ProductType {
private Integer productTypeId;
private String productTypeName;
/**
* @hibernate.id
* column="productTypeId"
* generator-class="native"
* @return
*/
public Integer getProductTypeId() {
return productTypeId;
}
public void setProductTypeId(Integer productTypeId) {
this.productTypeId = productTypeId;
}
/**
* @hibernate.property
* @return
*/
public String getProductTypeName() {
return productTypeName;
}
public void setProductTypeName(String productTypeName) {
this.productTypeName = productTypeName;
}
}
参考文章:http://sunqitang.iteye.com/admin/blogs/326893
第2部,由xdoclet来产生相应的hbm文件:
<?xml version="1.0" encoding="UTF-8"?>
<project name="OA系统构建脚本" default="生成hibernate映射文件" basedir=".">
<property name="src.dir" value="${basedir}/src"/>
<property name="build.dir" value="${basedir}/bin"/>
<property name="webapp.dir" value="${basedir}/src/webapp"/>
<property name="xdoclet.home" value="D:\\JAVA电子资源\\组件\\Xdoclet\\xdoclet-plugins-1.0.3\\xdoclet-plugins-1.0.3"/>
<!-- Build classpath -->
<path id="xdoclet.task.classpath">
<fileset dir="${xdoclet.home}/lib">
<include name="**/*.jar"/>
</fileset>
<fileset dir="${xdoclet.home}/plugins">
<include name="**/*.jar"/>
</fileset>
</path>
<taskdef
name="xdoclet"
classname="org.xdoclet.ant.XDocletTask"
classpathref="xdoclet.task.classpath"
/>
<target name="生成hibernate映射文件">
<xdoclet>
<fileset dir="${src.dir}/com/babasport/VO">
<include name="**/*.java"/>
</fileset>
<component
classname="org.xdoclet.plugin.hibernate.HibernateMappingPlugin"
version="3.0"
destdir="${src.dir}"
/>
</xdoclet>
</target>
</project>
特别注意产生的hbm文件的版本一定要是3.0版本。
上面的文件由ant来运行。
第3部
在spring的配置文件中加入:
<prop key="hibernate.hbm2ddl.auto">create</prop>
和对配置文件的支持
<property name="mappingResources">
<list>
<value>com/babasport/VO/product/ProductType.hbm.xml</value>
</list>
</property>
hibernate.hbm2dll.auto的属性由四个:
validate 加载hibernate时,验证创建数据库表结构
create 每次加载hibernate,重新创建数据库表结构,这就是导致数据库表数据丢失的原因。
create-drop 加载hibernate时创建,退出是删除表结构
update 加载hibernate自动更新数据库结构
特别建议:当对数据库创建或修改完毕后,最好关闭该属性。因为该属性还不是特别问题。经常出现丢失数据表的现象
第4部
对配置文件进行加载。
数据库便开始进行改动了。
分享到:
相关推荐
当你的项目使用Hibernate作为ORM框架,`hbm2dll`会根据Hibernate的映射文件(.hbm.xml)生成数据库表结构。这包括创建、更新或删除SQL脚本,使你能快速地同步数据库结构与你的模型类。这个功能对于快速开发和数据库...
在类引用方式中,`hbm.xml` 文件被嵌入到项目的类库(DLL)中。这样,当我们创建实体类时,可以使用`Assembly`类来加载相应的映射文件。例如,`configuration.AddInputStream(typeof(MyEntity).Assembly....
2. **ADO.NET依赖**:NHibernate依赖于.NET Framework的ADO.NET组件,如System.Data.SqlClient.dll(用于SQL Server),System.Data.OracleClient.dll(用于Oracle数据库)或其他数据库提供者,以进行数据库交互。...
4. **使用NHibernate**:使用NHibernate通常涉及以下步骤:配置NHibernate,定义对象映射(通常通过XML的hibernate.cfg.xml和.hbm.xml文件,或者使用Fluent NHibernate的代码方式),创建SessionFactory,然后通过...
4. **映射文件**:使用HBM(Hibernate Mapping)XML文件或注解,定义对象与数据库表之间的映射关系,包括字段映射、主键生成策略、关联关系等。 5. **Session**:NHibernate中的Session接口是与数据库交互的主要...
此外,如果你已经有了实体类,你可以使用`hbm2ddl`工具生成数据库表结构,或者使用`hbm2java`从现有数据库模式生成实体类和映射文件。这极大地提高了开发效率,特别是在频繁更改数据库模式时。 总结一下,"Maven ...
Jersey_Hibernate 它是 Jersey 和 hibernate 中员工管理的示例应用程序。 带有 Jersey 和 Hibernate 的宁静网络服务。... (c) 如果在您的数据库中创建了表,则首次取消 hbm2dll.auto 属性的注释,然后重新注释它。
2. **映射**:定义实体与数据库表之间的映射,可以使用XML文件(`.hbm.xml`)或Fluent NHibernate的Fluent API。映射应清晰地指定字段、主键、外键、索引等。 3. **会话管理**:Nhibernate使用会话(Session)作为...
2. **NHibernate.Linq.dll**:这个库提供了对LINQ(Language Integrated Query)的支持,使开发人员能够使用C#或VB.NET的查询语法操作数据。 3. **文档**:可能包括PDF或HTML格式的用户手册、API参考文档,帮助...
例如,`struts.xml`可能包含了Struts 2的动作配置,`spring-security.xml`可能涉及Spring Security的设置,而`hibernate.cfg.xml`和`.hbm.xml`文件则与Hibernate的配置和对象映射有关。此外,还有可能包含`c3p0....
然而,手动编写每个实体类的映射文件(.hbm.xml)或使用特性注解(.NET 4.0及以后版本)会消耗大量时间。这就是“nhibernate映射类代码生成器”发挥作用的地方。 这个代码生成器的主要目标是自动化创建与数据库表...
开发者定义的实体类需要通过映射文件(`.hbm.xml`或使用注解)与数据库表关联。映射文件定义了字段到列的映射,主键生成策略,以及一对一、一对多、多对多等关系映射。 5. **查询API**: NHibernate提供了多种...
2. Npgsql.dll和MySql.Data.dll:这两个是数据库驱动程序,Npgsql是用于连接PostgreSQL数据库的.NET库,而MySql.Data.dll则是连接MySQL数据库的库,说明这个工具支持多种数据库类型。 3. Mono.Security.dll:这是一...
4. **使用NHibernate**:在实际开发中,开发者需要理解NHibernate的主要概念,如Session、SessionFactory、Query等,并学会编写映射文件(HBMXML或注解),以将.NET类与数据库表对应起来。此外,事务管理和缓存策略...
不喜欢NHibernate传统的*.hbm.xml来对数据库进行映射的朋友有福了,可以使用NHibernate.Mapping.Attribute.dll来实现自动映射。 减少不小的工作量。
2. **映射**: 映射文件(如.hbm.xml或使用Fluent NHibernate的代码映射)定义了对象模型与数据库表之间的关系。每个类对应一个表,类的属性对应表的列。 3. **会话**: NHibernate的会话是与数据库交互的主要接口,...
2. 定义持久化类,这些类代表数据库中的表,并且通常包含属性来映射表中的列。 3. 配置 NHibernate,指定数据库类型、连接字符串等信息,这通常通过一个配置文件(如 nh.config 或 hibernate.cfg.xml)完成。 4. ...
2. **转换为区域**:使用`BitmapToRegion`函数从位图中提取非透明像素,并创建一个与这些像素对应的区域对象(`HRGN`)。这一步是实现不规则窗体的关键。 ```cpp HRGN BitmapToRegion(HBITMAP hBmp, COLORREF ...
2. 使用静态链接而不是动态链接。 3. 删除未使用的代码和资源。 #### 十、判断Radiobox是否选中的方法 判断RadioButton是否被选中可以通过发送`BM_GETCHECK`消息来实现。 **示例代码**: ```c++ int state = ...