`
wengsibo
  • 浏览: 83144 次
  • 性别: Icon_minigender_1
  • 来自: 福建
社区版块
存档分类
最新评论

hibernate生成实体规则

阅读更多
package com.jn0812a.crm.commons.utils;

import org.hibernate.cfg.reveng.DelegatingReverseEngineeringStrategy;
import org.hibernate.cfg.reveng.ReverseEngineeringStrategy;
import org.hibernate.cfg.reveng.TableIdentifier;

/**
 * 
 * @author Wuhuihe
 * 
 * 
 */
public class HibernateStrategy extends DelegatingReverseEngineeringStrategy {

	public HibernateStrategy(ReverseEngineeringStrategy arg0) {
		super(arg0);
	}

	/*
	 * 重写字段反向生成POJO类中的成员变量的命名规则 如果字段中含有下划线,默认第一个下划线之前的字符为前缀,将被删除。去除前缀后,
	 * 第一个字母大写,其他字母全部小写,如果后面有下划线去除下划线。
	 * 
	 */
	@Override
	public String columnToPropertyName(TableIdentifier table, String column) {

		if (column != null) {
			String[] tmp = column.split("_");
			// 最终的表名
			String finalPropertyName = "";			
			if (tmp.length == 1) {
				// 没有下划线
				finalPropertyName = tmp[0].toLowerCase();
			} else {
				//有下划线,默认去除前缀
				for (int i = 1; i < tmp.length; i++) {										
					finalPropertyName = finalPropertyName + tmp[i].toLowerCase();
				}
			}
			return finalPropertyName;
		}
		return "";
	}

	/*
	 * 重写表反向生成PoJO类的命名规则 注意:第一个下划线之前的位置为前缀,将被删除。去除前缀后,
	 * 第一个字母大写,其他字母全部小写,如果后面有下划线去除下划线,并对下划线后的第一个字母大写
	 * 如:表VIP_CUSTOMER生成的POJO类为Customer
	 * 表VIP_CUSTOMER_EXTEND生成的POJO类为CustomerExtend;
	 */
	@Override
	public String tableToClassName(TableIdentifier table) {
		// TODO Auto-generated method stub
		if (table != null) {
			// 先获取包路径
			String prifix = super.tableToClassName(table);
			int lastpoint = prifix.lastIndexOf(".");
			String packagename = prifix.substring(0, lastpoint + 1);
			//JOptionPane.showMessageDialog(null,packagename);
			String tablename = table.getName();
			String[] tmp = tablename.split("_");
			// 最终的表名
			String finalClassName = "";
			String firstChar = "";
			String otherChar = "";
			if (tmp.length == 1) {
				// 没有下划线
				firstChar = tmp[0].substring(0, 1).toUpperCase();
				otherChar = tmp[0].substring(1).toLowerCase();
				finalClassName = firstChar + otherChar;
			} else {
				for (int i = 1; i < tmp.length; i++) {
					firstChar = tmp[i].substring(0, 1).toUpperCase();
					otherChar = tmp[i].substring(1).toLowerCase();
					finalClassName = finalClassName + firstChar + otherChar;
				}
			}
			return packagename + finalClassName;
		} else {

			return super.tableToClassName(table);
		}

	}
}
分享到:
评论
3 楼 donkee 2011-02-23  
如果有关联,生成的对象名不符合习惯!
2 楼 donkee 2011-02-23  
不好意思,是可以的!
1 楼 donkee 2011-02-23  
映射文件不能更新hibernate.cfg.xml文件

相关推荐

    hibernate实体生成工具

    - **自动映射**:实体生成工具会根据数据库中的表结构自动生成实体类,包括属性、注解等,完成对象与表的映射。 - **节省时间**:手动创建这些实体类可能非常耗时,特别是在大型项目中,涉及到的表很多。工具的使用...

    hibernate 配置 实体生成

    - 在弹出的对话框中,指定生成实体类的目标位置和命名规则,点击确定后,IDE会自动根据表结构生成对应的实体类。 4. 实体生成的扩展: - `hibernate.reveng.xml`:除了图形界面生成,也可以通过配置此文件来生成...

    根据数据库表生成实体、hibernate配置文件和实体映射文件

    本教程将深入讲解如何根据数据库表自动生成实体类、Hibernate配置文件以及实体映射文件。 首先,我们需要了解Hibernate的基本概念。Hibernate提供了一个在Java应用中使用的持久化模型,它允许开发者用面向对象的...

    hibernate代码自动生成

    而“Hibernate代码自动生成”则是指利用Hibernate的工具或者第三方库,自动生成与数据库表对应的Java实体类、DAO(数据访问对象)层、Service层以及相关的SQL语句,从而减少手动编写这些重复性代码的工作量,提高...

    数据库反向生成实体类

    数据库反向生成实体类是软件开发中的一个常见实践,特别是在使用ORM(对象关系映射)框架如Hibernate时。这个过程主要是将数据库结构转化为代码,自动创建对应的Java实体类,这样可以减少手动编写这些类的工作量,...

    Swing编写的Hibernate生成器

    Swing编写的Hibernate生成器是一种实用工具,它利用Java Swing图形用户界面来简化Hibernate框架的实体类和映射文件的创建过程。Hibernate是Java领域中一个广泛应用的对象关系映射(ORM)框架,它允许开发者通过面向...

    hibernate dao 生成工具

    9. **优化与扩展**:生成的代码可能需要根据项目需求进行一些定制化修改,例如添加更复杂的查询逻辑、分页功能或特定的业务规则。 总结起来,Hibernate DAO生成工具极大地简化了数据访问层的开发工作,它将数据库...

    根据数据库生成实体类的一个工具

    标题提到的“根据数据库生成实体类的一个工具”是一种自编写的程序,旨在自动化这个过程。开发者通常会为每个数据库表创建一个对应的JavaBean类,手动编写字段、getter和setter方法以及相关的注解。这种工具可以显著...

    java反向生成实体工具

    Java反向生成实体工具是一种高效实用的开发辅助软件,它极大地简化了开发过程中实体类的创建工作。在Java编程中,实体类是用于映射数据库表的重要组件,通常需要开发者手动编写,这不仅耗时,而且容易出错。有了这种...

    Oracle自动生成实体

    Oracle自动生成实体是一种高效开发工具的功能,它可以帮助程序员快速地基于数据库中的表结构创建相应的Java实体类。在Java企业级开发中,实体类是数据访问层的重要组成部分,它们通常映射到数据库表,用于存储和操作...

    MySQL表自动生成Java实体类

    在Java世界中,实体类通常用于ORM(对象关系映射)框架,如Hibernate或MyBatis,它们将数据库表的行映射为Java对象的实例。实体类通常包含对应于数据库表字段的属性,并且具有getter和setter方法,以及可能的构造...

    eclipse自动生成实体类

    在Java开发中,Eclipse是一款广泛使用的集成开发环境(IDE),它提供了许多便捷的功能,其中之一就是能够自动生成实体类。实体类通常用于表示数据库中的表,它们是对象关系映射(ORM)框架如Hibernate的基础。这个...

    生成实体,映射生成实体.zip

    例如,Hibernate是Java领域广泛使用的ORM框架,它允许开发者用XML或注解方式定义映射规则。 在“生成实体,映射生成实体.zip”这个压缩包中,包含的两个文件可能提供了一种自动化工具的使用指南: 1. **使用指南....

    生成实体类

    生成实体类是一项常见的任务,尤其是在使用ORM(对象关系映射)框架如Hibernate、MyBatis等时。这些框架允许开发者通过Java对象与数据库交互,而无需编写SQL语句。下面我们将详细探讨如何根据数据库表名生成对应的...

    hibernate生成pojo

    - 如果使用XML映射文件,则需要为每个实体类创建对应的`.hbm.xml`文件,并定义相应的映射规则。 5. **测试生成的POJO**: - 创建一个简单的测试类,使用Hibernate API进行CRUD操作,确保生成的POJO能够正确地与...

    利用Middlegen Hibernate3生成hbm.xml配置和java类

    标题中的“利用Middlegen Hibernate3生成hbm.xml配置和java类”指的是使用Middlegen工具来自动化创建Hibernate3框架所需的映射文件(hbm.xml)和对应的Java实体类。这个过程是数据库对象到Java对象(O/R Mapping)的...

    oracle生成实体

    - 指定生成实体类的命名规则,例如字段名是否需要驼峰式命名。 - 生成实体类,每个类对应数据库中的一个表,类中的属性对应表的列。 - 自动生成的实体类通常包含getter和setter方法,以及JPA或Hibernate的注解,...

    mysql数据库生成java实体类

    实体类是Java持久化框架(如Hibernate)的基础,用于在内存中代表数据库记录。 3. **代码生成**: 自动化代码生成工具能够减少重复工作,提高开发效率。在这个例子中,工具根据MySQL表的元数据(列名、数据类型等)...

    生成hibernate映射文件工具

    4. 可能还包括生成对应的Java实体类:一些工具会同时生成与映射文件相对应的Java类,方便开发者直接使用。 `ssb_codegen`这个文件可能是工具的名称或者是生成代码后的文件夹,具体使用方式可能需要查看工具的文档或...

    通过Hibernate Tool 来生成Java类和HBM文件

    生成的Java类通常是每个数据库表对应一个,它们包含了与表字段相对应的属性,以及由Hibernate生成的getter和setter方法。HBM文件则是XML格式,它描述了Java类与数据库表之间的映射关系,包括字段类型、主键、外键等...

Global site tag (gtag.js) - Google Analytics