1.设置环境(以EClipse和hibernate 3.2.6为例)

1)首先,新建一个java 工程。

2) 将hiberante src导入到java的src目录下,此时多半会报错,不用管它!

3)将hiberante中lib的jar全部加入到buildpath上,并且把hibernate.jar加入到buildpath。

4)出错的话 自己检查一下 ,屏蔽掉部分出错代码即可,不影响跟踪。

5)在src目录下建立hibernate.cfg.xml(或者其它也可以)。

6)新建source Folder 目录 srcTest。

在其中建立类和映射文件User.hbm.xml(略)

public class User implements java.io.Serializable {
    private Integer id;

private String username;

private String password;

。。。。。。。。。。。。。。
}

7)建立测试类(三种方式跟踪源码)

public class PagingTest {

/**
     * @param args
     */
    public void testQuery(){
        Configuration config = new Configuration();  
        config.configure();  
             // 如果hibernate.cfg.xml中没有配置的某些属性,你可以通过config.setProperty(propertyName, value);来配置.  
        //如config.setProperty("hibernate.connection.driver_class", "com.mysql.jdbc.Driver");  
        SessionFactory factory = config.buildSessionFactory();  
      
        Session session = factory.openSession();  
        Transaction tran = session.beginTransaction();
        Query q = session.createSQLQuery("select * from USER_TABLE");  
        List l = q.list();
        tran.commit();
        System.out.println(l);
    }
    public void testCriteria(){
        Configuration config = new Configuration();  
        config.configure();  
             // 如果hibernate.cfg.xml中没有配置的某些属性,你可以通过config.setProperty(propertyName, value);来配置.  
        //如config.setProperty("hibernate.connection.driver_class", "com.mysql.jdbc.Driver");  
        SessionFactory factory = config.buildSessionFactory();  
      
        Session session = factory.openSession();  
        Transaction tran = session.beginTransaction();
        Criteria criteria = session.createCriteria(User.class);  
        List l = criteria.list();
        tran.commit();
        System.out.println(l);
    }
    
    public void testNativeSql(){
        Configuration config = new Configuration();  
        config.configure();  
             // 如果hibernate.cfg.xml中没有配置的某些属性,你可以通过config.setProperty(propertyName, value);来配置.  
        //如config.setProperty("hibernate.connection.driver_class", "com.mysql.jdbc.Driver");  
        SessionFactory factory = config.buildSessionFactory();  
      
        Session session = factory.openSession();  
        Transaction tran = session.beginTransaction();
        SQLQuery query = session.createSQLQuery("select * from USER_TABLE");
        List l = query.list();
        tran.commit();
        System.out.println(l);
    }
    public static void main(String[] args) {
        PagingTest pt=new PagingTest();
        //pt.testCriteria();//select this_.USER_ID as USER1_0_0_, this_.USER_NAME as USER2_0_0_, this_.PASSWORD as PASSWORD0_0_ from USER_TABLE this_
        //pt.testQuery();//select * from USER_TABLE
        pt.testNativeSql();
    }

}

2. 图片如下所示

3. 总结

有需要源码的可以联系我

转载于:https://www.cnblogs.com/davidwang456/archive/2013/02/19/2917581.html

hibernate 三种查询方式源码跟踪及总结相关推荐

  1. Nginx/Openresty日志时间显示到毫秒级的三种方法(不改源码)

    Nginx/Openresty日志时间显示到毫秒级的三种方法(不改源码) 方法一 :set (只能在server节点内) 方法二: set_by_lua (只能在server节点内) 方法三: map ...

  2. 创建线程的三种方法_Netty源码分析系列之NioEventLoop的创建与启动

    前言 前三篇文章分别分析了 Netty 服务端 channel 的初始化.注册以及绑定过程的源码,理论上这篇文章应该开始分析新连接接入过程的源码了,但是在看源码的过程中,发现有一个非常重要的组件:Ni ...

  3. SpringBoot整合RocketMQ,三种测试附带源码【rocketmq-spring-boot-starter】

    我们整合boot项目的时候都是引入 xxx-start 依赖,但是现在大多数的整合RocketMQ都还不是这样. 我花了一天时间使用rocketmq-spring-boot-starter整合,使得操 ...

  4. slam十四讲-ch6-非线性优化(包含手写高斯牛顿、使用g2o库、使用ceres库三种方法的源码详细注释)

    一.自写高斯-牛顿法 该程序是要进行一个非线性优化,对非线性函数的系数进行优化 y=exp(ax2+bx+c) 给定初始的系数 ae,be,ce(估计的) ar,br,cr(真实的) 源码如下: // ...

  5. 【老生谈算法】matlab实现EKF UKF PF三种算法对比源码——EKF UKF PF算法

    EKF UKF PF三种算法对比 matlab程序 1.文档下载: 本算法已经整理成文档如下,有需要的朋友可以点击进行下载 序号 文档(点击下载) 本项目文档 [老生谈算法]EKF-UKF-PF三种算 ...

  6. WordPress自适应白天暗夜无刷新加载三种布局模板源码

    一款基于Wordpress开发的高颜值的自适应主题,支持白天与黑夜模式.首页支持三种布局:博客风格,cms风格,企业风格 主题特性: 支持白天与暗黑模式 全局无刷新加载 支持博客与CMS布局 内置WP ...

  7. Mysql---子查询的三种查询方式( 表子查询,条件子查询,列中子查询)

    mysql子查询 子查询分为: 列中子查询 单列单行 表子查询 必须有别名 条件子查询 单行单列 多行单列 下列示例表结构: grade表: result表: student表: subject表: ...

  8. mybatis plus当月数据查询_mybatis plus的3种查询方式(小结)

    本文是基于springboot框架下的查询. 一:基本配置: 1.仓库依赖 alimaven aliyun maven http://maven.aliyun.com/nexus/content/gr ...

  9. 三种加密方式: sha1加密、MD5加密、Base64加密 (附H5源码和js源码)

    js的加密没特别多的办法,常见的就三种, MD5加密.Base64加密和sha1加密 一. sha1加密 H5源码: <!DOCTYPE html> <html><hea ...

最新文章

  1. 小程序服务器角色,小程序在我们的生活中扮演什么角色?
  2. 各品牌交换机常用命令整理
  3. 理解计算机网络的拓扑结构,认识计算机网络拓扑结构
  4. DelayQueue实现Java延时任务
  5. 禁止选中页面内容-兼容ie、firefox、chrome
  6. JavaSE基础——GUI编程(AWT)
  7. sqlserver中获取一张表中列的数据
  8. 定时自动关机计划命令
  9. 百度文库免费复制文字_如何复制百度文库上的内容——解答!
  10. 分享一套基于HTML5的网络拓扑图组件 Qunee下载
  11. c语言定时器实验程序,89C51单片机实验三 定时器实验
  12. 生信高性能服务器,【玩转腾讯云】使用云服务器进行生信数据分析
  13. html指南针绘制,Fireworks绘制指南针详解
  14. 应用商店-华为应用市场
  15. 关于meta name=viewport content=width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalabl...
  16. 耳机重装系统后服务器坏了,Win7重装后耳机没声音|重装系统后耳机没声音怎么办?...
  17. 2021级新生程序设计班级天梯赛:1-6 《从你的全世界路过》
  18. 7-5 宿舍谁最高? (20 分)
  19. Golang入门项目(家庭收支软件和客户信息管理软件)
  20. linux桌面特效 退出,Ubuntu 3D桌面特效怎么设置?

热门文章

  1. a9 pro android 7,惊艳 | 全球最具性价比双摄手机,Blackview A9 Pro
  2. pandas如何获取某一个元素的行号,也就是索引值
  3. shared_ptr和weak_ptr使用介绍
  4. 软定时器的原理与创建
  5. ultraedit java_UltraEdit配置java环境
  6. ubuntu 16.10安装mysql_在Ubuntu 16.10安装mysql workbench报未安装软件包 libpng12-0错误的解决方法...
  7. 磁共振线圈分类_磁共振硬件(二)主磁体分类
  8. c++ 读取txt文件保存到vect
  9. 居民信息管理系统java_基于jsp的社区住户信息管理系统-JavaEE实现社区住户信息管理系统 - java项目源码...
  10. python中shift_python对列进行平移变换的方法(shift)