`
shewolfep
  • 浏览: 67069 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论

通过反射获取Hibernate实体字段名

    博客分类:
  • java
阅读更多
Hibernate实体形如:
	/** 用户名 */
	private String userName;
	/** 密码 */
	private String password;
	/** 用户类型 */
	private String typeId;
	/** 用户状态 */
	private String status;

	@Column(name = "USER_NAME", nullable = false, length = 36)
	public String getUserName() {
		return userName;
	}

	public void setUserName(String userName) {
		this.userName = userName;
	}

	@Column(name = "PASSWORD", nullable = false, length = 32)
	public String getPassword() {
		return password;
	}

	public void setPassword(String password) {
		this.password = password;
	}

	@Column(name = "TYPE_ID", nullable = false, length = 10)
	public String getTypeId() {
		return typeId;
	}

	public void setTypeId(String typeId) {
		this.typeId = typeId;
	}

	@Column(name = "STATUS", nullable = false, length = 10)
	public String getStatus() {
		return status;
	}
获取所有字段的方法
	/**
	 * <pre>
	 * 获取实体所有字段
	 * @param clazz 实体类型
	 * @param strs 需要排除的字段
	 * @return Map<String, Method> 其中key为数据库字段名称,value为字段对应的get方法
	 * 2011-4-23 下午01:52:06
	 * </pre>
	 */
	public static Map<String, Method> getFields(Class<?> clazz, List<String> strs) {
		Map<String, Method> map = new HashMap<String, Method>();
		Method[] methods = clazz.getMethods();
		for (Method method : methods) {
			Column c = method.getAnnotation(Column.class);
			if (null!=strs&&strs.contains(c.name())) {
				continue;
			}
			if (null != c) {
				map.put(c.name(), method);
			} else {
				JoinColumn jc = method.getAnnotation(JoinColumn.class);
				if (null!=strs&&strs.contains(jc.name())) {
					continue;
				}
				if (null != jc) {
					map.put(jc.name(), method);
				}
			}
		}
		return map;
	}
0
2
分享到:
评论

相关推荐

    java反射机制给实体类相同字段自动赋值实例

    - 在复杂版中,引入了`invokeGetMethod()`方法,该方法用于通过反射调用getter方法获取字段值,这样可以处理非基本类型字段的值获取,因为`Field.get()`只能处理基本类型的值。 - 这个方法可能需要传递额外的参数...

    java根据实体类生成Hibernate映射文件

    1. **获取实体类信息**:通过反射API获取类的元数据,包括类名、字段名及字段类型。 2. **构建映射文件模板**:定义一个XML模板,其中包含必要的Hibernate元素,如`&lt;hibernate-mapping&gt;`、`&lt;class&gt;`、`&lt;id&gt;`和`...

    仿照jpa/Hibernate通过反射导入Excel

    3. **属性映射**:反射还允许我们获取类的字段信息,通过`Field`对象的`getName()`方法获取字段名,对比Excel列头,将Excel数据赋值给相应的Java对象字段。使用`Field.setAccessible(true)`可解除私有字段的访问限制...

    Java 通过反射给实体类赋值操作

    该方法通过使用反射机制来获取实体类的字段,然后使用 setter 方法将请求中的参数赋值给对应的字段。 代码示例分析 在上面的代码示例中,首先获取了实体类的所有字段,然后使用循环来遍历每个字段。在遍历每个字段...

    浅论泛型与反射机制结合(hibernate)

    当我们使用Hibernate的`Class.forName()`方法时,可以动态加载指定的实体类,然后通过反射获取其字段和方法信息,进一步进行CRUD操作。 3. 泛型与动态代理:在Hibernate的懒加载机制中,使用了Java的动态代理技术。...

    hibernate原理小程序(反射)

    1. 实体类与数据库表的映射:Hibernate通过阅读实体类的注解(如@Entity、@Table等),利用反射获取类的元数据,从而建立对象与数据库表之间的映射关系。例如,@Id注解标识主键字段,@Column注解定义列名,这些信息...

    JAVA通过实体生成数据库表

    在实体类生成数据库表的过程中,反射被用来读取实体类的元数据,如字段名、类型等,然后根据这些信息构建出创建数据库表的SQL语句。 在实际应用中,我们可能使用Hibernate的`Hibernate Tools`或者MyBatis的`MyBatis...

    hibernate-src.zip

    7. **hibernate-search**:提供了全文搜索引擎功能,基于Lucene,使得开发者可以方便地在Hibernate实体上实现全文搜索。 深入研究`hibernate-src.zip`中的源码,可以让我们理解Hibernate如何通过反射、代理、动态...

    mysql自动生成实体类

    在生成实体类的过程中,反射被用来分析数据库表结构,包括字段名、类型、是否为主键等信息,然后根据这些信息自动生成对应的Java代码。 使用"mysql自动生成实体类"工具有以下步骤: 1. 配置数据库连接:提供MySQL的...

    hibernate3.1.2参考文档

    例如,Event类可以映射到名为events的表,通过@Id注解指定id字段为主键,@Column注解定义其他字段的映射。 5. Session工厂和Session - SessionFactory是创建Session的工厂,它是线程安全的,通常在应用启动时初始...

    hibernate_reference使用指南全

    Hibernate 要求持久化类必须有一个无参数构造函数,以便于反射机制创建实例。 - **4.1.2 提供标识符属性(可选)** 为类添加一个标识符属性(通常是主键),这样 Hibernate 可以基于该属性来唯一标识数据库中的...

    生成hibernate配置文件和xml的辅助类generate

    1. **实体类分析**:辅助类首先需要读取开发者定义的实体类,获取类的属性信息,包括字段名、字段类型等。 2. **生成配置文件**:辅助类依据实体类信息生成`hibernate.cfg.xml`,这需要包含数据库URL、用户名、密码...

    模拟hibernate注解功能

    在这个名为“模拟hibernate注解功能”的项目中,我们将探讨如何利用自定义注解和反射技术来模仿Hibernate的注解功能。 首先,让我们理解一下Hibernate的注解。Hibernate支持JPA(Java Persistence API)标准,其中...

    hibernate基本知识点

    3. **参数绑定**:通过反射机制获取实体对象的属性值,并将其绑定到SQL语句的相应位置。 4. **执行SQL**:执行构建好的SQL语句,并将结果反馈给调用者。 #### Hibernate配置详解 在`hibernate.cfg.xml`文件中,有...

    hibernate generate tool

    1. GenerateHibernate.java:这是工具的核心部分,通常包含用于读取数据库元数据、解析表结构和生成Hibernate实体类的逻辑。在这个文件中,可能包含了对Hibernate的SessionFactory和Configuration接口的使用,以及对...

    用java生成实体类

    在生成实体类时,反射可以用于获取数据库表的元数据,如字段名、类型等,然后基于这些信息创建类的结构。 2. **JDBC API**:Java的标准数据库连接库,提供了一系列接口和类用于与各种数据库进行交互。通过`java.sql...

    精通Hibernate第四章

    在SQL中,特殊字符或包含空格的字段名需要使用引用标识符。Hibernate映射文件中的`column`属性应与数据库中的引用方式一致,但可以统一使用'',Hibernate会根据配置的`hibernate.sql_dialect`自动调整为对应数据库的...

    java反射机制文档

    - 数据库操作框架(如Hibernate):根据数据库表结构动态生成Java实体类。 - 测试工具:如JUnit,通过反射调用私有方法进行测试。 - 组件化框架:Spring框架中的依赖注入和AOP(面向切面编程)大量使用了反射。 ...

    使用java的反射机制来模拟hibernater的jdbc操作

    1. **获取Class对象**:首先,我们需要得到目标类的Class对象,这可以通过`Class.forName()`方法实现,传入类的全名(包括包名)。 2. **创建对象**:使用`Class对象.newInstance()`方法可以创建类的新实例,如果类...

Global site tag (gtag.js) - Google Analytics