hibernate 三种查询方式源码跟踪及总结
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 三种查询方式源码跟踪及总结相关推荐
- Nginx/Openresty日志时间显示到毫秒级的三种方法(不改源码)
Nginx/Openresty日志时间显示到毫秒级的三种方法(不改源码) 方法一 :set (只能在server节点内) 方法二: set_by_lua (只能在server节点内) 方法三: map ...
- 创建线程的三种方法_Netty源码分析系列之NioEventLoop的创建与启动
前言 前三篇文章分别分析了 Netty 服务端 channel 的初始化.注册以及绑定过程的源码,理论上这篇文章应该开始分析新连接接入过程的源码了,但是在看源码的过程中,发现有一个非常重要的组件:Ni ...
- SpringBoot整合RocketMQ,三种测试附带源码【rocketmq-spring-boot-starter】
我们整合boot项目的时候都是引入 xxx-start 依赖,但是现在大多数的整合RocketMQ都还不是这样. 我花了一天时间使用rocketmq-spring-boot-starter整合,使得操 ...
- slam十四讲-ch6-非线性优化(包含手写高斯牛顿、使用g2o库、使用ceres库三种方法的源码详细注释)
一.自写高斯-牛顿法 该程序是要进行一个非线性优化,对非线性函数的系数进行优化 y=exp(ax2+bx+c) 给定初始的系数 ae,be,ce(估计的) ar,br,cr(真实的) 源码如下: // ...
- 【老生谈算法】matlab实现EKF UKF PF三种算法对比源码——EKF UKF PF算法
EKF UKF PF三种算法对比 matlab程序 1.文档下载: 本算法已经整理成文档如下,有需要的朋友可以点击进行下载 序号 文档(点击下载) 本项目文档 [老生谈算法]EKF-UKF-PF三种算 ...
- WordPress自适应白天暗夜无刷新加载三种布局模板源码
一款基于Wordpress开发的高颜值的自适应主题,支持白天与黑夜模式.首页支持三种布局:博客风格,cms风格,企业风格 主题特性: 支持白天与暗黑模式 全局无刷新加载 支持博客与CMS布局 内置WP ...
- Mysql---子查询的三种查询方式( 表子查询,条件子查询,列中子查询)
mysql子查询 子查询分为: 列中子查询 单列单行 表子查询 必须有别名 条件子查询 单行单列 多行单列 下列示例表结构: grade表: result表: student表: subject表: ...
- mybatis plus当月数据查询_mybatis plus的3种查询方式(小结)
本文是基于springboot框架下的查询. 一:基本配置: 1.仓库依赖 alimaven aliyun maven http://maven.aliyun.com/nexus/content/gr ...
- 三种加密方式: sha1加密、MD5加密、Base64加密 (附H5源码和js源码)
js的加密没特别多的办法,常见的就三种, MD5加密.Base64加密和sha1加密 一. sha1加密 H5源码: <!DOCTYPE html> <html><hea ...
最新文章
- 小程序服务器角色,小程序在我们的生活中扮演什么角色?
- 各品牌交换机常用命令整理
- 理解计算机网络的拓扑结构,认识计算机网络拓扑结构
- DelayQueue实现Java延时任务
- 禁止选中页面内容-兼容ie、firefox、chrome
- JavaSE基础——GUI编程(AWT)
- sqlserver中获取一张表中列的数据
- 定时自动关机计划命令
- 百度文库免费复制文字_如何复制百度文库上的内容——解答!
- 分享一套基于HTML5的网络拓扑图组件 Qunee下载
- c语言定时器实验程序,89C51单片机实验三 定时器实验
- 生信高性能服务器,【玩转腾讯云】使用云服务器进行生信数据分析
- html指南针绘制,Fireworks绘制指南针详解
- 应用商店-华为应用市场
- 关于meta name=viewport content=width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalabl...
- 耳机重装系统后服务器坏了,Win7重装后耳机没声音|重装系统后耳机没声音怎么办?...
- 2021级新生程序设计班级天梯赛:1-6 《从你的全世界路过》
- 7-5 宿舍谁最高? (20 分)
- Golang入门项目(家庭收支软件和客户信息管理软件)
- linux桌面特效 退出,Ubuntu 3D桌面特效怎么设置?
热门文章
- a9 pro android 7,惊艳 | 全球最具性价比双摄手机,Blackview A9 Pro
- pandas如何获取某一个元素的行号,也就是索引值
- shared_ptr和weak_ptr使用介绍
- 软定时器的原理与创建
- ultraedit java_UltraEdit配置java环境
- ubuntu 16.10安装mysql_在Ubuntu 16.10安装mysql workbench报未安装软件包 libpng12-0错误的解决方法...
- 磁共振线圈分类_磁共振硬件(二)主磁体分类
- c++ 读取txt文件保存到vect
- 居民信息管理系统java_基于jsp的社区住户信息管理系统-JavaEE实现社区住户信息管理系统 - java项目源码...
- python中shift_python对列进行平移变换的方法(shift)