NHibernate3.2学习笔记-几种查询方式
一、开发环境
数据库:SQLServer2008
编译器:VS2010
.Net版本:.Net Framework 4.0
二、开发过程
1.项目结构
承接上一篇
2.执行sql语句
(1)基本语法
static void ExecuteSql()
{
string str = "select * from T_Product";
ISQLQuery query = session.CreateSQLQuery(str).AddEntity(typeof(Product));
IList<Product> list = query.List<Product>();
Console.WriteLine(list.Count);
}
3.执行hql语句
(1)基本语法
static void ExecuteHql()
{
string str = "from Product a where a.Id >:pId";
IList<Product> list = session.CreateQuery(str).SetInt32("pId", ).List<Product>();
Console.WriteLine(list.Count);
}
(2)返回多个不确定类型的值
static void ExecuteHql2()
{
string str = "select a.Name,count(a.Name) from Product a group by a.Name";
//返回的两个不同对象类型,用对象集合保存
IList<object[]> list = session.CreateQuery(str).List<object[]>();
foreach (object[] obj in list)
{
string msg = string.Format("【" + obj[] + "】出现了【" + obj[] + "】次");
Console.WriteLine(msg);
}
}
(3)返回确定类型的值
static void ExecuteHql3()
{
string str = "select distinct a.Name from Product a";
IList<string> list = session.CreateQuery(str).List<string>();
Console.WriteLine(list.Count);
}
4.执行Linq语句
(1)基本语法
static void ExecuteLinq()
{
IList<Product> list = session.QueryOver<Product>().Where(a=>a.Id > ).List();
decimal maxUnitPrice = (from s in list select s.UnitPrice).Max();
Console.WriteLine(maxUnitPrice);
}
5.使用Criteria方法
(1)基本语法
static void ExecuteCriteria()
{
ICriteria criteria = session.CreateCriteria(typeof(Product));
IList<Product> list = criteria.List<Product>();
Console.WriteLine(list.Count);
}
(2)常用方法1
static void ExecuteCriteria2()
{
ICriteria criteria = session.CreateCriteria(typeof(Product));
criteria.Add(Expression.Lt("Id", ));
criteria.Add(Expression.Like("Name", "Apple", MatchMode.Anywhere));
IList<Product> list = criteria.List<Product>();
Console.WriteLine(list.Count);
}
(3)常用方法2
static void ExecuteCriteria3()
{
ICriteria criteria = session.CreateCriteria(typeof(Product));
criteria.Add(Expression.Between("UnitPrice", , ));
criteria.Add(Expression.In("Id", new int[] { , ,, , }));
criteria.Add(Expression.Not(Expression.Eq("Id", )));
IList<Product> list = criteria.List<Product>();
Console.WriteLine(list.Count);
}
(4)使用类
static void ExecuteCriteria4()
{
ICriteria criteria = session.CreateCriteria(typeof(Product));
Product model = new Product();
model.Id = ;
model.Name = "Apple";
model.UnitPrice = 2.60m;
criteria.Add(Example.Create(model));
IList<Product> list = criteria.List<Product>();
Console.WriteLine(list.Count);
}
NHibernate3.2学习笔记-几种查询方式的更多相关文章
- [SAM4N学习笔记]按键程序(查询方式)
一.准备工作: 将上一节搭建的工程复制一份,命名为"5.key scanf".这一节主要讲如何使用SAM4N的GPIO输入功能,实现按键的输入. 二.程序编写: ...
- Docker学习笔记-两种发布方式
第一种,自己手写dockerfile发布,上传至hubDocker 正常发布到文件夹中,发布文件上传至linux机器上.如 /www/app 将Dockerfile文件也复制到同目录 ./www/ap ...
- mybatis学习笔记(10)-一对一查询
mybatis学习笔记(10)-一对一查询 标签: mybatis mybatis学习笔记10-一对一查询 resultType实现 resultMap实现 resultType和resultMap实 ...
- MyBatis:学习笔记(3)——关联查询
MyBatis:学习笔记(3)--关联查询 关联查询 理解联结 SQL最强大的功能之一在于我们可以在数据查询的执行中可以使用联结,来将多个表中的数据作为整体进行筛选. 模拟一个简单的在线商品购物系统, ...
- WebGL three.js学习笔记 6种类型的纹理介绍及应用
WebGL three.js学习笔记 6种类型的纹理介绍及应用 本文所使用到的demo演示: 高光贴图Demo演示 反光效果Demo演示(因为是加载的模型,所以速度会慢) (一)普通纹理 计算机图形学 ...
- easyui datagride 两种查询方式
easyui datagride 两种查询方式function doReseach() { //$('#tt').datagrid('load', { // FixedCompany: $('.c_s ...
- Hibernate的四种查询方式(主键查询,HQL查询,Criteria查询,本地sql查询)和修改和添加
Hibernate的添加,修改,查询(三种查询方式)的方法: 案例演示: 1:第一步,导包,老生常谈了都是,省略: 2:第二步,创建数据库和数据表,表结构如下所示: 3:第三步创建实体类User.ja ...
- Hibernate的Api以及三种查询方式
Hibernate Api |-- Configuration 配置管理类对象 config.configure(); 加载主配置文件的方法(hibernate.cfg.xml) ...
- hibernate的三种查询方式
hibernate的三种查询方式 目录 hibernate的三种查询方式 1.HQL查询 1.1.SQL概述 1.2.实体查询 1.3.带where的查询 1.3.属性查询 1.4.实体的更新和删除 ...
随机推荐
- TCP/IP学习笔记(3)----IP,ARP,RARP协议
把这三个协议放到一起学习是因为这三个协议处于同一层(网络层协议),ARP协议用来找到目标主机的Ethernet网卡Mac地址,IP则承载要发送的消息.数据链路层可以从ARP得到数据的传送信息,而从IP ...
- cogs——1001. [WZOI2011 S3] 消息传递
1001. [WZOI2011 S3] 消息传递 ★★ 输入文件:messagew.in 输出文件:messagew.out 简单对比时间限制:1 s 内存限制:128 MB Prob ...
- Eclipse使用Maven时,修改默认中央仓库后的配置报错找不到包的问题解决
一般在公司内容配置Maven时会在settings.xml文件下配置私服nexus地址,那么修改完之后在Eclipse中如果不指定用户目录级别的settings.xml文件会出现找不到包的问题. se ...
- Ubuntu和Win7双系统,ubuntu被删,重新启动之后显示,no such partition
准备一张windows7的系统安装盘.从光盘启动电脑,在光盘启动完毕之后.按shift+F10,调出cmd命令终端,在终端输入:bootrec/fixmbr OK.重新启动之后就搞定了
- 教程 | 使用Sqoop从MySQL导入数据到Hive和HBase
基础环境 sqoop:sqoop-1.4.5+cdh5.3.6+78, hive:hive-0.13.1+cdh5.3.6+397, hbase:hbase-0.98.6+cdh5.3.6+115 S ...
- Spring中JavaConfig特性
从Spring3開始,增加了JavaConfig特性.JavaConfig特性同意开发人员不必在Spring的xml配置文件里定义bean,能够在Java Class中通过凝视配置bean,假设你讨厌 ...
- 演练:我的第一个 WPF 桌面应用程序 https://docs.microsoft.com/zh-cn/dotnet/framework/wpf/getting-started/walkthrough-my-first-wpf-desktop-application
这篇文章演示如何开发简单的 Windows Presentation Foundation (WPF) 应用程序包括元素所共有的大多数 WPF 应用程序: 可扩展应用程序标记语言 (XAML) 标记. ...
- LeetCode_Mysql_Second Highest Salary
176. Second Highest Salary 1. 问题描写叙述: 写一个sql语句从 Employee 表里获取第二高位的工资. 2. 解决思路: 这道题非常easy,就当热身了.首先用ma ...
- HDU1236 排名 题解
Problem Description 今天的上机考试尽管有实时的Ranklist,但上面的排名仅仅是依据完毕的题数排序,没有考虑 每题的分值,所以并非最后的排名.给定录取分数线.请你敲代码找出最后 ...
- QVariant(相当于是Java里面的Object,是万能的容器,但要注册)
这个类型相当于是Java里面的Object,它把绝大多数Qt提供的数据类型都封装起来,起到一个数据类型“擦除”的作用.比如我们的 table单元格可以是string,也可以是int,也可以是一个颜色值 ...