Hql ="SELECT l.fgid,l.fgname,l.icon,l.fglev,l.fginstruction,l.reply_count,l.typeid,g.ucounts FROM AppGameList as l left join on(select fgid,count(fgid) As ucounts from AppWaJin GROUP by fgid) as g On g.fgid=l.fgid ORDER BY ucounts DESC limit 21"
函数:
public List<Map<String,String>> test(final String sql) {
return (List<Map<String, String>>) getHibernateTemplate().execute(new HibernateCallback() {
public Object doInHibernate(Session session) throws HibernateException, SQLException {
Connection conn = null;
PreparedStatement pstmt =null;
ResultSet rs=null;
Transaction transaction = null;
List<Map<String,String>> rows =null;
try{
transaction = session.beginTransaction();
conn = session.connection();
pstmt = conn.prepareStatement(sql);
rs =pstmt.executeQuery();
rows= new ArrayList<Map<String,String>>();
ResultSetMetaData rsmd=rs.getMetaData();
int columnCount=rsmd.getColumnCount();
String []columns=new String[columnCount];
for(int i=1;i<=columnCount;i++){
columns[i-1]=rsmd.getColumnLabel(i);
}
rsmd=null;
Map<String,String> row=null;
while (rs.next()){
row=new HashMap<String,String>(columnCount);
for (int i=1;i<=columnCount;i++) {
row.put(columns[i-1],rs.getString(i));
}
rows.add(row);
}
row=null;
columns=null;
transaction.commit();
}catch(Exception exception){
exception.printStackTrace();
if(transaction!=null){
transaction.rollback();
}
}finally {
try {
if(transaction!=null){
transaction=null;
}
if(rs!=null){
rs.close();
rs=null;
}
if(pstmt!=null){
pstmt.close();
pstmt=null;
}
if(conn!=null){
conn.close();
conn=null;
}
} catch (SQLException e) {
e.printStackTrace();
}
}
return rows;
}
});
}
分享到:
相关推荐
Hibernate通过JDBC与数据库进行通信,执行SQL语句。在Hibernate中,JDBC驱动程序是必要的,以便应用程序能够连接到特定的数据库。例如,"mysql-connector-java-3.1.13-bin.jar"就是MySQL的JDBC驱动,用于连接到MySQL...
### Hibernate与JDBC:概述与对比 #### 一、JDBC简介 JDBC(Java Database Connectivity)是一种用于执行SQL语句的Java API,它可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC...
标题提到的是“搭建hibernate所使用的jar包,内含mysql的jdbc的jar包”,这表明这个压缩包包含了用于构建Hibernate框架的库文件,并且这些库中还包括了连接MySQL数据库的Java Database Connectivity (JDBC)驱动。...
`hibernate.jdbc.batch_size`是Hibernate配置中的一个重要参数,用于控制批处理操作的大小。本文将深入探讨这个参数的意义、作用以及如何在实际应用中进行测试。 批量插入是提高数据库性能的有效手段,特别是在大量...
在实际项目中,Spring还允许开发者结合使用Hibernate和JDBC。例如,在大数据量的简单查询场景下,可以选择性能较高的JDBC;而在复杂的对象关系映射或者更新操作时,可以利用Hibernate的ORM优势。Spring的这种灵活性...
以上代码展示了如何在Hibernate和JDBC中实现数据分页。通过Hibernate提供的API可以方便快捷地实现分页功能,而JDBC则需要更多的手动处理来构建合适的SQL语句和处理结果集。两种方法各有优势,开发者可以根据实际项目...
标题中的“本人理解hibernate 与 JDBC 的最本质区别”揭示了我们即将探讨的核心主题:Hibernate 和 JDBC 在处理数据库操作时的不同之处。 Hibernate 是一个对象关系映射(ORM)框架,而 JDBC(Java Database ...
### JDBC与Hibernate学习笔记 ...JDBC提供了与数据库交互的低级API,而Hibernate则是在JDBC基础上构建的一个高级ORM框架,能够显著减少开发过程中与数据库交互所需的代码量,并提高了开发效率和应用程序的可维护性。
2. **Session接口**:类似于JDBC中的Connection,它是操作数据库的基本单元,提供事务管理和缓存管理。 3. **Entity类**:Java类代表数据库表,通过注解(@Entity)声明为Hibernate实体。 4. **持久化操作**:使用...
2. **JDBC**:了解了如何使用JDBC API进行基本的数据库操作,如加载驱动、建立连接、执行SQL语句和处理结果集。 3. **Spring 3**:掌握了Spring的IoC(控制反转)和DI(依赖注入)概念,可能使用了XML或注解方式...
标题 "Jdbc 和hibernate" 提到的两个主要概念是Java数据库连接(JDBC)和Hibernate,它们都是Java开发中用于与关系型数据库交互的重要技术。本文将深入探讨这两个技术,以及它们之间的区别和联系。 JDBC是Java平台...
JDBC(Java Database Connectivity)是Java程序连接数据库的标准方式,其基本步骤包括实例化驱动、注册驱动、获取连接、创建Statement、执行SQL命令以及关闭资源。在实例化驱动时,通常有三种方法:通过...
### JDBC与Hibernate的比较 在软件开发领域,尤其是在基于Java的应用程序中,数据库...通过对JDBC与Hibernate的深入比较,我们可以更好地理解这两种技术的特点及其适用场景,为实际开发中的技术选型提供有力的支持。
这些依赖项需要根据具体项目需求添加到项目的类路径中,以便Hibernate能够正确识别和执行数据库操作。 为了配置Hibernate,开发者需要创建一个`hibernate.cfg.xml`配置文件,指定数据库连接信息(如URL、用户名、...
通过JDBC,开发者可以执行SQL查询、插入、更新和删除数据。然而,原生JDBC的使用较为繁琐,包括加载驱动、建立连接、创建Statement或PreparedStatement、处理结果集等步骤,这些都需要大量的重复代码。这就是为何...
对于性能测试,可以比较使用JDBC和Hibernate执行相同任务的时间消耗,评估哪种方式更高效。同时,要关注内存使用情况,因为ORM框架可能会增加内存开销。 在进行测试时,使用单元测试框架,如JUnit,可以帮助自动化...
JDBC(Java Database Connectivity)和Hibernate是Java中处理数据库操作的两个重要工具。对于初学者来说,理解和掌握这两个技术对于深入理解Java后端开发至关重要。 JDBC是Java API,它提供了一种标准的方式来连接...
本资源“hibernate+junit+mysql-jdbc开发核心jar包三合一”显然是为了支持SSH框架中的Hibernate部分,并结合JUnit进行测试以及MySQL数据库连接。现在我们将详细探讨这三个组件及其在Java开发中的应用。 **Hibernate...
JDBC(Java Database Connectivity)和Hibernate是两种常见的与Oracle交互的方式。本文将深入探讨如何使用JDBC和Hibernate来操作Oracle数据库,同时结合提供的标签"源码"和"工具",我们将讨论它们的实现细节和优势。...