public void testQueryAllDept(){
String hql="from Employee";
//hql="from com.sh.Entity";
Query query=session.createQuery(hql);
List list= query.list();
//...
}
2.有条件的 实体查询
public void testQueryAllDept(){
String hql="from Deptas model where mode.deptName='人事部' ";
//hql="from com.sh.Entity";
Query query=session.createQuery(hql);
List list= query.list();
//...
}
public void testQueryAllDept(){
String hql="from Deptas model where mode.deptName like '%部%' ";
//hql="from com.sh.Entity";
Query query=session.createQuery(hql);
List list= query.list();
//...
}
public void testQueryDeptByGt(){
String hql="from Dept model where model.createDate> '2012-03-10'";
Query query=session.createQuery(hql);
List list= query.list();
}
3.HQL 中的各种运算符
运算符类型
HQL运算符
含义
比较运算
=
等于
<>
不等于
>
大于
>=
大于等于
<=
小于等于
<
小于
is null
为空
is not null
不为空
范围运算
in
等于列表中的某一值
not in
不等于列表中的任意一个值
between p1 and p2
大于等于值1 且 小于等于值2
not between p1 and p2
小于值1 或者 大于 值2
字符串模式匹配
like
字符串模式匹配
逻辑运算
and
与
or
或
not
非
3.更新 删除
public void testModifyDate(){
Transaction tr=session.beginTransaction();
Dept detp=(Dept)session.get(Detp.class,new Integer(6));
detp.seteCreateDate("2000-03-10");
tr.commit();
}
// delete 删除
public void testDelDeptByHql(){
Transaction tr=session.beginTransaction();
String hql="delete Dept as model where model.deptId=6";
Query query=session.createQuery(hql);
query.executeUpdate();
tr.commit();
}
4.属性查询
public void testQueryDeptName(){
String hql="select model.deptName from Dept as model";
Query query=session.createQuery(hql);
List deptNameList=query.list();
//...
}
public void testQueryDeptName(){
String hql="select model.deptName,model.createDate from Dept as model";
Query query=session.createQuery(hql);
List
5.使用函数
public void testQuyeryFunction(){
String hql="select count(*),min(model.createDate) from Dept as model";
Query query=session.createQuery(hql);
List
6.分组 与 排序
//排序
public void testQueryOrderBy(){
String hql="from Dept as mode order by model.createDate,model.deptName desc";
Query query=session.createQuery();
List deptList=query.list();
for(){}
//
}
//分组 并且 使用 having 筛选
public void testQueryGroupBy(){
String hql="select count(model),model.deptName from Dept as model group by model.deptName having count(model)>1";
Query query=session.createQuery();
List
7.查询单个对象
public void testQueryUn(){
String hql="select model.deptName from Dept as model where model.deptId=2";
Query query=session.createQuery(hql);
query.setMaxResults(1);
String deptName=(String)query.uniqueResult();
System.out.println(deptNamae);
}
public void testQueryByParamsName(){
//使用 ":参数名" 来传递参数
String hql="from Dept as model where
model.deptName=:deptName and model.createDate=:createDate";
Query query=session.createQuery(hql);
query.setString("deptName","test");
query.setString("ceateDate","2000-02-10");
List deptList=query.list();
for(){}
//...
}
2.使用 "?" 按照位置来绑定参数
public void testQueryByParamsID(){
String hql="from Dept as model where model.deptName=? and model.createDate=?";
Query query=session.createQuery(hql);
query.setString(0,"test");
query.setString(1,"2000-02-02");
List list=query.list();
for(){}
//..
}
3.采用setEntity() 将参数和一个持久化对象进行绑定
public void testQueryByDept(){
Dept dept=(Dept)Session.get(Dept.clas,new Integer(2));
String hql="select Employee as model where model.dept=?"
Query query=session.createQuery(hql);
query.setEntity(0,dept);
List empList=query.list();
for(){}
//..
}
4.setParameter() 用于绑定任意类型的参数
public void testQueryBySetParams(){
String hql="from Dept as model where model.deptName=?";
Query query=session.createQuery(hql);
query.setParameter(0,"test");
List deptList=query.list();
for(){}
//..
}
5.setProperties() 将一个参数名 于一个对象的属性值绑定
public void testQueryBySetPro(){
Dept deptNew=new Dept();
deptNew.setDeptName("test");
String hql="from Dept as model where model.deptName=:deptName";
Query query=session.createQuery();
query.setProperties(deptNew);
List deptList=query.list();
for(){
}
//..
}
10. 联合查询 inner join
public void testQueryInnerJoin(){
String hql="from Dept as model inner join model1.employees as model2";
Query query=session.createQuery(hql);
List
left join
public void testQueryLeftJoin(){
String hql="from Dept as model left join model1.employees as model2";
Query query=session.createQuery(hql);
List
right join
public void testQueryRightJoin(){
String hql="from Dept as model right join model1.employees as model2";
Query query=session.createQuery(hql);
List
11.子查询
public void testQueryChild(){
String hql="from Dept as model where (select count(*) from model.employee) >2";
Query query=session.createQuery(hql);
List objList=query.list();
for(){}
//..
}
12 Criteria 查询 释义:通过面向对象的设计将数据查询条件封装在一个对象
//无条件
public void testQueryDept(){
Criteria criteria=session.createCriteria(Dept.class);
List deptList=criteria.list();
for(){}
//..
}
//添加条件
public void testQueryDeptByName(){
Criteria criteria=session.createCriteria(Dept.class);
criteria.add(Expression.eq("deptName", "人事部"));
List deptList=criteria.list();
for(){}
//..
}
SQL语法查询机制
方法
描述
Expression.eq
对应sql中的field =value
Expression.gt
对应sql中的field>value
Expression.ge
对应sql中的field>=value
Expression.lt
对应sql中的field
Expression.le
对应sql中的field<=value
Expression.between
对应sql中的between
Expression.like
对应 like
Expression.in
对应 in
Expression.eqProperty
用于比较两个属性之间的值,对应的Sql条件中field=field
Expression.gtProperty
用于比较两个属性之间的值,对Sqlfiled>field
Expression.geProperty
用于比较两个属性之间的值,对应sql field>=field
Expression.ltProperty
用于比较两个属性之间的值,对应field
Expression.leProperty
用于比较 两个属性之间的值,对应field<=field
Hibernate3中采用Restrictions类代替Expression
public void testQueryDeptByNameRe(){
Criteria criteria=session.createCriteria(Dept.class);
criteria.add(Restrictions.eq("deptName", "人事部"));
List deptList=criteria.list();
for(){}
//..
}
Criteria中限定返回的行数
public void testQueryDept(){
Criteria criteria=session.createCriteria(Dept.class);
criteria.setFirstResult(2);
criteria.setMaxResults(2);
List deptList=criteria.list();
for(){}
//..
}
Criteria拍戏
public void testQueryDept(){
Criteria criteria=session.createCriteria(Dept.class);
criteria.addOrder(Order.asc("createDate"));
List deptList=criteria.list();
for(){}
//..
}
package gaodai.matrix;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner scanner = new Sc
Asynchronous Http Client是android中非常好的异步请求工具
除了异步之外还有很多封装比如json的处理,cookie的处理
引用
Persistent Cookie Storage with PersistentCookieStore
This library also includes a PersistentCookieStore whi
安装Apache问题:系统找不到指定的文件 No installed service named "Apache2"
每次到这一步都很小心防它的端口冲突问题,结果,特意留出来的80端口就是不能用,烦。
解决方法确保几处:
1、停止IIS启动
2、把端口80改成其它 (譬如90,800,,,什么数字都好)
3、防火墙(关掉试试)
在运行处输入 cmd 回车,转到apa
问题描述:
MongoDB在非正常情况下关闭时,可能会导致索引文件破坏,造成数据在更新时没有反映到索引上。
解决方案:
使用脚本,重建MongoDB所有表的索引。
var names = db.getCollectionNames();
for( var i in names ){
var name = names[i];
print(name);
Zookeeper重载了几个构造函数,其中构造者可以提供参数最多,可定制性最多的构造函数是
public ZooKeeper(String connectString, int sessionTimeout, Watcher watcher, long sessionId, byte[] sessionPasswd, boolea
本文转自:http://hatemysql.com/2010/06/29/select-into-outfile-access-deny%E9%97%AE%E9%A2%98/
为应用建立了rnd的帐号,专门为他们查询线上数据库用的,当然,只有他们上了生产网络以后才能连上数据库,安全方面我们还是很注意的,呵呵。
授权的语句如下:
grant select on armory.* to rn
<?php
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);
if (PHP_SAPI == 'cli')
die('This example should only be run from a Web Brows
1. I see. 我明白了。2. I quit! 我不干了!3. Let go! 放手!4. Me too. 我也是。5. My god! 天哪!6. No way! 不行!7. Come on. 来吧(赶快)8. Hold on. 等一等。9. I agree。 我同意。10. Not bad. 还不错。11. Not yet. 还没。12. See you. 再见。13. Shut up!
基本事务的使用:
从账户一的余额中转100到账户二的余额中去,如果账户二不存在或账户一中的余额不足100则整笔交易回滚
select * from account;
-- 创建一张账户表
create table account(
-- 账户ID
id number(3) not null,
-- 账户名称
nam