tableM和tableA是一对多关系,大概是1:10的比例
tableM和tableB是一对多关系,大概是1:10的比例
tableM和tableC是一对多关系,大概是1:10的比例
按条件从tableM查询大概1000条数据并且需要tableA,tableB,tableC的数据参与运算。
hibernate lazy:
共需执行1+1000+1000+1000=3001句sql。
共返回1000+1000*10+100*1000*10+1000*10=31000行数据
hibernate join:
共需执行1句sql。
共返回1000*10*10*10=1000000行数据
不管是lazy还是join效率都很低。我的写法是这样的:
共需执行3句sql。
共返回1000*10+1000*10+1000*10=30000行数据
Criteria oCriteria = null;
oCriteria = HCS_SC.createCriteria(tableM.class);
oCriteria = oCriteria.add(Restrictions.ge("orderNum", aaa));
oCriteria = oCriteria.add(Restrictions.le("orderNum", bbb));
oCriteria = oCriteria.setFetchMode("tableA", FetchMode.JOIN);
oCriteria.list();
oCriteria = HCS_SC.createCriteria(tableM.class);
oCriteria = oCriteria.add(Restrictions.ge("orderNum", aaa));
oCriteria = oCriteria.add(Restrictions.le("orderNum", bbb));
oCriteria = oCriteria.setFetchMode("tableB", FetchMode.JOIN);
oCriteria.list();
oCriteria = HCS_SC.createCriteria(tableM.class);
oCriteria = oCriteria.add(Restrictions.ge("orderNum", aaa));
oCriteria = oCriteria.add(Restrictions.le("orderNum", bbb));
oCriteria = oCriteria.setFetchMode("tableC", FetchMode.JOIN);
return oCriteria.list();
分享到:
相关推荐
- 模糊查询like语句写法:通配符为%(百分号)。 - Dao接口的工作原理:通过动态代理生成接口实现类,代理对象调用方法时,会自动映射SQL语句和接口方法参数。 - 分页原理:通过拦截器来实现分页查询。 - 结果...
Java 架构师面试题之 MyBatis 篇 作为一名经验丰富的 Java 架构师,我将带领大家深入探索 MyBatis 面试题的世界。MyBatis 是一个流行的持久层框架,它提供了一个简单的方式来访问数据库。下面,我们将从多个角度来...
7. **模糊查询 like 语句的写法**:使用 #{} 时,可以在 SQL 中使用 '%value%' 来实现模糊查询。 8. **Dao 接口的工作原理**:在 MyBatis 中,Dao 接口通常用于定义 SQL 操作的抽象方法,其背后使用动态代理机制来...
比如,模糊查询like语句的写法,以及分页查询的实现,MyBatis的分页插件原理等。 4. **ORM框架**:MyBatis的映射方式包括Map映射、注解映射和XML映射,面试中可能会要求解释它们是如何将SQL结果封装为目标对象并...
* 四个线程的写法:Thread、Runnable、Callable、Executor。 * JDBC 连接数据库:使用 DriverManager 获取连接,使用 Statement 执行 SQL 语句,使用 ResultSet 获取结果集。 * SOCKET 编程:使用 ServerSocket 创建...
JDBC用于执行SQL语句,而Hibernate简化了数据库操作,提供了对象-关系映射功能,面试中可能涉及连接池、事务管理、实体映射和HQL查询。 "Web"部分可能涵盖Servlet、JSP、HTTP协议、MVC模式等内容,这些都是构建Web...
MyBatis模糊查询like语句的写法相对简单,只需要在占位符中加入%即可。 在DAO接口的工作原理方面,MyBatis通过动态代理生成接口的代理实例。Dao接口里方法参数不同时,方法可以重载,MyBatis通过动态代理和反射技术...
- **与Oracle交互:** 可以通过配置文件指定数据库连接参数,并使用JDBC或ORM框架(如Hibernate)与Oracle数据库进行交互。 ### 9. XML 文件解析与处理 **标题与描述中的关键词:** `XML` #### 详解: - **XML ...
8. **模糊查询的写法**: - 可以使用 ${ } 中进行字符串拼接。 9. **Dao接口的工作原理**: - MyBatis通过动态代理来创建Mapper接口的代理对象。 10. **MyBatis分页**: - 可以使用RowBounds或分页插件,如...
23. Short变量加法的正确写法:`short t1 = 1; t1 += 1;` 24. Object类包含toString、hashCode、equals等方法。 25. `String s = new String("xyz")`创建了两个对象,一个在常量池,一个在堆。 26. ArrayList与...
8. MyBatis模糊查询的SQL写法。 9. MyBatis中的Dao接口是如何工作的,以及其参数不同的方法是否能重载。 10. MyBatis的分页实现以及分页插件的工作原理。 11. SQL执行结果封装成对象的映射方式。 12. 如何执行批量...