java 代码
- import java.lang.reflect.Method;
-
-
-
-
- public class BeanUtils {
- private BeanUtils(){}
-
-
-
-
-
-
-
- public static String getHql(String beanName, String[] columnNames){
- StringBuffer sb = new StringBuffer();
- sb.append("select new list(");
- StringBuffer columnString = new StringBuffer();
- for(int i=0,len=columnNames.length;i<len;i++){
- columnString.append(",");
- columnString.append(columnNames[i]);
- }
- sb.append(columnString.substring(1));
- sb.append(") from ");
- if(Character.isUpperCase(beanName.charAt(0)))
- sb.append(beanName);
- else
- sb.append(upperFirstChar(beanName));
- return sb.toString();
- }
-
-
-
-
-
- public static Object getFieldByName(Object bean, String fieldName){
- try {
- Method m = bean.getClass().getMethod("get"+upperFirstChar(fieldName), null);
- return m.invoke(bean, null);
- } catch (Exception e) {
- e.printStackTrace();
- }
- return null;
- }
- private static String upperFirstChar(String orig){
- return Character.toUpperCase(orig.charAt(0)) + orig.substring(1);
- }
- }
按照已经处理后,我们就可以既应用Hibernate对象访问的优点,又不损失字符串的灵活性,代码中应用了Hibernate的select特性及java的反射机制
分享到:
相关推荐
Hibernate是一个轻量级的ORMapping(Object Relational Mapping,对象关系映射)框架。...但是对于那些在基于Java的中间层应用中,它们实现面向对象的业务模型和商业逻辑的应用,Hibernate是最有用的。
1. 改进的性能:5.1.13.Final版本在性能上进行了优化,包括查询执行速度、内存管理以及缓存策略的改进,使得应用程序在大数据量操作时仍能保持高效运行。 2. 支持Java 8:此版本完全兼容Java 8,包括日期时间API,...
Java的反射机制是Java语言提供的一种能力,它允许程序在运行期动态地访问和修改类的属性和方法。对于理解Java反射机制,需要掌握以下核心知识点: 1. 反射机制基础: Java程序在编译期和运行期有不同的处理过程。...
javaWeb,java基础,java异常,jsp&servlet,...- **优点:** 运行期类型的判断,动态加载类,提高代码灵活度。 - **缺点:** 性能瓶颈:反射相当于一系列解释操作,通知 JVM 要做的事情,性能比直接的java代码要慢很多
- `<jsp:getProperty>`:获取JavaBean的属性值。 4. **JSP内置对象:** - `request`、`response`、`session`、`application`、`out`等。 5. **动态与静态包含的区别:** - 动态包含通过`<jsp:include>`,可以在...
在Java 1.5引入的反射API使得开发者可以在编译期未知的情况下,动态地获取类的信息并执行相关操作。以下将详细介绍反射的基本概念、应用场景以及相关的API。 **反射基本概念** 1. **Introspection (内省)**:这是...
例如,在Hibernate框架中,如果尝试通过getter方法获取一个并不存在的属性值,则会抛出此类异常。具体到案例中,当调用`getGAccountId()`时,如果对应的JavaBean模型中没有定义相应的`GAccountId`属性,则会引发异常...
依赖注入(DI)是一种设计模式,它允许一个对象通过构造器、工厂方法的参数或属性来定义它们对其他对象的依赖关系,然后由外部实体(通常是IoC容器)在运行期来解析这些依赖关系,并将依赖的对象注入到需要它们的...
通过CGLIB创建目标对象的代理,当调用关联属性时,代理对象会检查该属性是否已加载,若未加载则执行SQL获取关联数据。 **与Hibernate的差异**: MyBatis和Hibernate的主要区别在于,Hibernate提供更全面的自动化ORM...
1. **什么是反射**:反射是Java提供的一种机制,能够在运行时获取类的信息(如类名、属性、方法等)并动态调用这些元素。这打破了常规的编译时类型检查,为程序提供了更大的灵活性。 2. **Class对象**:每个Java类...
`aspectjrt`是运行时的库,而`aspectjweaver`则是用于编译期和运行时织入AOP代理的工具。 3. **commons-dbcp.jar** 和 **commons-pool.jar**:这些包分别用于数据库连接池管理和通用对象池管理。`commons-dbcp`是...
`分别用于存储和获取Session属性值。需要注意的是,通过`getAttribute()`获取到的对象需要进行类型转换才能使用。 - **Session的有效期**:Session默认有效期为30分钟,可以通过设置`setMaxInactiveInterval(int ...
- **题目**: Servlet的doPost与doGet方法中HttpServletRequest和HttpServletResponse实例由ServletContainer在运行期动态注入,这种与Spring依赖注入中的哪种模式对应? - A. 设值注入 - B. 引用注入 - C. 构造...
在J2EE企业级项目开发中,BBS管理系统是一个典型的案例,它涉及到多方面的技术应用,尤其是数据库操作和持久化框架的使用。本实训项目主要目标是让学生掌握JavaEE中的Hibernate框架,特别是Criteria查询机制,以及...
- **AOP**:通过预编译方式或运行期代理实现程序功能的统一维护的一种技术。Spring AOP允许开发人员将横切关注点分离出来,并将它们集成到应用程序中,如日志记录、事务管理等。 - **IOC**:也称为DI(依赖注入)...
异常处理是Java编程中的重要部分,你需要区分编译期错误和运行期错误,理解Exception和RuntimeException的分类,以及checked和unchecked异常的使用。熟练掌握try-catch-finally语句块、throw和throws关键字,以及...