转自:https://www.cnblogs.com/xujingyang/p/6734203.html

在了解Hibernate的基本知识后,重点让我们看下相关查询方式和查询优化策略吧! 
话不多说,先来张思维导图看下: 

案例:使用Hibernate完成查询所有联系人功能


需求分析

1. 完成所有的联系人的查询

技术分析之Hibernate框架的查询方式

1. 唯一标识OID的检索方式
* session.get(对象.class,OID)
2. 对象的导航的方式 3. HQL的检索方式
* Hibernate Query Language -- Hibernate的查询语言 4. QBC的检索方式
* Query By Criteria -- 条件查询 5. SQL检索方式(了解)
* 本地的SQL检索

技术分析之HQL的查询方式概述

1. HQL的介绍
* HQL(Hibernate Query Language) 是面向对象的查询语言, 它和 SQL 查询语言有些相似
* 在 Hibernate 提供的各种检索方式中, HQL 是使用最广的一种检索方式 2. HQL与SQL的关系
* HQL 查询语句是面向对象的,Hibernate负责解析HQL查询语句, 然后根据对象-关系映射文件中的映射信息, 把 HQL 查询语句翻译成相应的 SQL 语句.
* HQL 查询语句中的主体是域模型中的类及类的属性
* SQL 查询语句是与关系数据库绑定在一起的. SQL查询语句中的主体是数据库表及表的字段

技术分析之HQL的查询演示

1. HQL基本的查询格式
* 支持方法链的编程,即直接调用list()方法
* 简单的代码如下
* session.createQuery("from Customer").list(); 2. 使用别名的方式
* 可以使用别名的方式
* session.createQuery("from Customer c").list();
* session.createQuery("select c from Customer c").list(); 3. 排序查询
* 排序查询和SQL语句中的排序的语法是一样的
* 升序
* session.createQuery("from Customer order by cust_id").list(); * 降序
* session.createQuery("from Customer order by cust_id desc").list(); 4. 分页查询
* Hibernate框架提供了分页的方法,咱们可以调用方法来完成分页
* 两个方法如下
* setFirstResult(a) -- 从哪条记录开始,如果查询是从第一条开启,值是0
* setMaxResults(b) -- 每页查询的记录条数 * 演示代码如下
* List<LinkMan> list = session.createQuery("from LinkMan").setFirstResult(0).setMaxResults().list(); 5. 带条件的查询
* setParameter("?号的位置,默认从0开始","参数的值"); 不用考虑参数的具体类型
* 按位置绑定参数的条件查询(指定下标值,默认从0开始)
* 按名称绑定参数的条件查询(HQL语句中的 ? 号换成 :名称 的方式)
* 例如代码如下
Query query = session.createQuery("from Linkman where lkm_name like ? order by lkm_id desc");
query.setFirstResult(0).setMaxResults(3);
query.setParameter(0, "%熊%");
List<Linkman> list = query.list();
for (Linkman linkman : list) {
System.out.println(linkman);
}

HQL的投影查询

1. 投影查询就是想查询某一字段的值或者某几个字段的值
2. 投影查询的案例
* 如果查询多个字段,例如下面这种方式
List<Object[]> list = session.createQuery("select c.cust_name,c.cust_level from Customer c").list();
for (Object[] objects : list) {
System.out.println(Arrays.toString(objects));
} * 如果查询两个字段,也可以把这两个字段封装到对象中
* 先在持久化类中提供对应字段的构造方法
* 使用下面这种HQL语句的方式
List<Customer> list = session.createQuery("select new Customer(c.cust_name,c.cust_level) from Customer c").list();
for (Customer customer : list) {
System.out.println(customer);
}

技术分析之聚合函数查询

1. 获取总的记录数
Session session = HibernateUtils.getCurrentSession();
Transaction tr = session.beginTransaction();
List<Number> list = session.createQuery("select count(c) from Customer c").list();
Long count = list.get(0).longValue();
System.out.println(count);
tr.commit(); 2. 获取某一列数据的和
Session session = HibernateUtils.getCurrentSession();
Transaction tr = session.beginTransaction();
List<Number> list = session.createQuery("select sum(c.cust_id) from Customer c").list();
Long count = list.get(0).longValue();
System.out.println(count);
tr.commit();

技术分析之QBC检索方式

0. QBC:Query By Criteria  按条件进行查询

1. 简单查询,使用的是Criteria接口
List<Customer> list = session.createCriteria(Customer.class).list();
for (Customer customer : list) {
System.out.println(customer);
} 2. 排序查询
* 需要使用addOrder()的方法来设置参数,参数使用org.hibernate.criterion.Order对象
* 具体代码如下:
Session session = HibernateUtils.getCurrentSession();
Transaction tr = session.beginTransaction();
Criteria criteria = session.createCriteria(Linkman.class);
// 设置排序
criteria.addOrder(Order.desc("lkm_id"));
List<Linkman> list = criteria.list();
for (Linkman linkman : list) {
System.out.println(linkman);
}
tr.commit(); 3. 分页查询
* QBC的分页查询也是使用两个方法
* setFirstResult();
* setMaxResults(); * 代码如下;
Session session = HibernateUtils.getCurrentSession();
Transaction tr = session.beginTransaction();
Criteria criteria = session.createCriteria(Linkman.class);
// 设置排序
criteria.addOrder(Order.desc("lkm_id"));
criteria.setFirstResult(0);
criteria.setMaxResults(3);
List<Linkman> list = criteria.list();
for (Linkman linkman : list) {
System.out.println(linkman);
}
tr.commit(); 4. 条件查询(Criterion是查询条件的接口,Restrictions类是Hibernate框架提供的工具类,使用该工具类来设置查询条件)
* 条件查询使用Criteria接口的add方法,用来传入条件。
* 使用Restrictions的添加条件的方法,来添加条件,例如:
* Restrictions.eq -- 相等
* Restrictions.gt -- 大于号
* Restrictions.ge -- 大于等于
* Restrictions.lt -- 小于
* Restrictions.le -- 小于等于
* Restrictions.between -- 在之间
* Restrictions.like -- 模糊查询
* Restrictions.in -- 范围
* Restrictions.and -- 并且
* Restrictions.or -- 或者 * 测试代码如下
Session session = HibernateUtils.getCurrentSession();
Transaction tr = session.beginTransaction();
Criteria criteria = session.createCriteria(Linkman.class);
// 设置排序
criteria.addOrder(Order.desc("lkm_id"));
// 设置查询条件
criteria.add(Restrictions.or(Restrictions.eq("lkm_gender", "男"), Restrictions.gt("lkm_id", 3L)));
List<Linkman> list = criteria.list();
for (Linkman linkman : list) {
System.out.println(linkman);
}
tr.commit(); 5. 聚合函数查询(Projection的聚合函数的接口,而Projections是Hibernate提供的工具类,使用该工具类设置聚合函数查询)
* 使用QBC的聚合函数查询,需要使用criteria.setProjection()方法
* 具体的代码如下
Session session = HibernateUtils.getCurrentSession();
Transaction tr = session.beginTransaction();
Criteria criteria = session.createCriteria(Linkman.class);
criteria.setProjection(Projections.rowCount());
List<Number> list = criteria.list();
Long count = list.get(0).longValue();
System.out.println(count);
tr.commit();

技术分析之离线条件查询

1. 离线条件查询使用的是DetachedCriteria接口进行查询,离线条件查询对象在创建的时候,不需要使用Session对象,只是在查询的时候使用Session对象即可。
2. 创建离线条件查询对象
* DetachedCriteria criteria = DetachedCriteria.forClass(Linkman.class); 3. 具体的代码如下
Session session = HibernateUtils.getCurrentSession();
Transaction tr = session.beginTransaction(); DetachedCriteria criteria = DetachedCriteria.forClass(Linkman.class);
// 设置查询条件
criteria.add(Restrictions.eq("lkm_gender", "男"));
// 查询数据
List<Linkman> list = criteria.getExecutableCriteria(session).list();
for (Linkman linkman : list) {
System.out.println(linkman);
}
tr.commit();

技术分析之SQL查询方式(了解)

1. 基本语法
Session session = HibernateUtils.getCurrentSession();
Transaction tr = session.beginTransaction(); SQLQuery sqlQuery = session.createSQLQuery("select * from cst_linkman where lkm_gender = ?");
sqlQuery.setParameter(0,"男");
sqlQuery.addEntity(Linkman.class);
List<Linkman> list = sqlQuery.list();
System.out.println(list);
tr.commit();

技术分析之HQL多表查询

1. 多表的查询进来使用HQL语句进行查询,HQL语句和SQL语句的查询语法比较类似。
* 内连接查询
* 显示内连接
* select * from customers c inner join orders o on c.cid = o.cno;
* 隐式内连接
* select * from customers c,orders o where c.cid = o.cno; * 外连接查询
* 左外连接
* select * from customers c left join orders o on c.cid = o.cno;
* 右外连接
* select * from customers c right join orders o on c.cid = o.cno; 2. HQL的多表查询
* 迫切和非迫切:
* 非迫切返回结果是Object[]
* 迫切连接返回的结果是对象,把客户的信息封装到客户的对象中,把订单的信息封装到客户的Set集合中。 3. 内连接查询
* 内连接使用 inner join ,默认返回的是Object数组
Session session = HibernateUtils.getCurrentSession();
Transaction tr = session.beginTransaction();
List<Object[]> list = session.createQuery("from Customer c inner join c.linkmans").list();
for (Object[] objects : list) {
System.out.println(Arrays.toString(objects));
}
tr.commit(); * 迫切内连接:inner join fetch ,返回的是实体对象
Session session = HibernateUtils.getCurrentSession();
Transaction tr = session.beginTransaction();
List<Customer> list = session.createQuery("from Customer c inner join fetch c.linkmans").list();
Set<Customer> set = new HashSet<Customer>(list);
for (Customer customer : set) {
System.out.println(customer);
}
tr.commit(); 4. 左外连接查询
* 左外连接: 封装成List<Object[]> * 迫切左外连接
Session session = HibernateUtils.getCurrentSession();
Transaction tr = session.beginTransaction();
List<Customer> list = session.createQuery("from Customer c left join fetch c.linkmans").list();
Set<Customer> set = new HashSet<Customer>(list);
for (Customer customer : set) {
System.out.println(customer);
}
tr.commit();

案例一代码实现


案例二:对查询功能优化


需求分析

1. 对Hibernate框架的查询进行优化

技术分析之延迟加载

1. 延迟加载先获取到代理对象,当真正使用到该对象中的属性的时候,才会发送SQL语句,是Hibernate框架提升性能的方式
2. 类级别的延迟加载
* Session对象的load方法默认就是延迟加载
* Customer c = session.load(Customer.class, 1L);没有发送SQL语句,当使用该对象的属性时,才发送SQL语句 * 使类级别的延迟加载失效
* 在<class>标签上配置lazy=”false”
* Hibernate.initialize(Object proxy); 3. 关联级别的延迟加载(查询某个客户,当查看该客户下的所有联系人是是否是延迟加载)
* 默认是延迟加载
Session session = HibernateUtils.getCurrentSession();
Transaction tr = session.beginTransaction();
Customer c = session.get(Customer.class, 1L);
System.out.println("=============");
System.out.println(c.getLinkmans().size());
tr.commit();

技术分析之Hibernate框架的查询策略

1. 查询策略:使用Hibernate查询一个对象的时候,查询其关联对象.应该如何查询.是Hibernate的一种优化手段!!!
2. Hibernate框架的检索策略解决的问题
* 查询的时机
Customer c1 = (Customer) session.get(Customer.class, 1);
System.out.println(c1.getLinkmans().size()); * lazy属性解决查询的时机的问题,需要配置是否采用延迟加载!! * 查询的语句形式
List<Customer> list = session.createQuery("from Customer").list();
for(Customer c : list){
System.out.println(c.getLinkmans());
} * fetch属性就可以解决查询语句的形式的问题!!

技术分析之在set标签上配置策略

1. 在<set>标签上使用fetch和lazy属性
* fetch的取值 -- 控制SQL语句生成的格式
* select -- 默认值.发送查询语句
* join -- 连接查询.发送的是一条迫切左外连接!!!配置了join.lazy就失效了
* subselect -- 子查询.发送一条子查询查询其关联对象.(需要使用list()方法进行测试) * lazy的取值 -- 查找关联对象的时候是否采用延迟!
* true -- 默认.延迟
* false -- 不延迟
* extra -- 及其懒惰 2. set标签上的默认值是fetch="select"和lazy="true" 3. 总结:Hibernate框架都采用了默认值,开发中基本上使用的都是默认值。特殊的情况。

技术分析之在man-to-one标签上配置策略

1. 在<many-to-one>标签上使用fetch和lazy属性
* fetch的取值 -- 控制SQL的格式.
* select -- 默认。发送基本select语句查询
* join -- 发送迫切左外连接查询 * lazy的取值 -- 控制加载关联对象是否采用延迟.
* false -- 不采用延迟加载.
* proxy -- 默认值.代理.现在是否采用延迟.
* 由另一端的<class>上的lazy确定.如果这端的class上的lazy=”true”.proxy的值就是true(延迟加载).
* 如果class上lazy=”false”.proxy的值就是false(不采用延迟.) 2. 在<many-to-one>标签上的默认值是fetch="select"和proxy

代码实现

  TestHQLDemo

  1 package com.xujingyang.test ;
2
3 import java.util.List ;
4 import org.hibernate.Query ;
5 import org.hibernate.Session ;
6 import org.hibernate.Transaction ;
7 import org.junit.Test ;
8 import com.xujingyang.utils.HibernateUtil ;
9
10 /**
11 * @author oldmonk
12 * @date 2017年4月19日
13 */
14 public class TestHQLDemo {
15
16 /**
17 * 排序查询
18 */
19 @Test
20 public void demo1() {
21 Session session = HibernateUtil.getSession() ;
22 Transaction transaction = session.beginTransaction() ;
23 Query query = session.createQuery("from Customer order by cust_id desc") ;
24 List<Customer> list = query.list() ;
25 for (Customer customer : list) {
26 System.out.println(customer) ;
27 }
28
29 transaction.commit() ;
30 }
31
32 /**
33 * 检索查询
34 */
35 @Test
36 public void demo2() {
37 Session session = HibernateUtil.getSession() ;
38 Transaction transaction = session.beginTransaction() ;
39 // Query query = session.createQuery("from Customer where cust_id=?") ;
40 // query.setLong(0, 2L);
41 Query query = session.createQuery("from Customer where cust_id=2") ;
42 List<Customer> list = query.list() ;
43 for (Customer customer : list) {
44 System.out.println(customer) ;
45 }
46
47 transaction.commit() ;
48 }
49
50 /**
51 * 分页查询
52 */
53 @Test
54 public void demo3() {
55 Session session = HibernateUtil.getSession() ;
56 Transaction transaction = session.beginTransaction() ;
57 Query query = session.createQuery("from Customer") ;
58 query.setFirstResult(0) ;// 从第几条记录开始
59 query.setMaxResults(2) ;// 每页显示几条数据
60 List<Customer> list = query.list() ;
61 for (Customer customer : list) {
62 System.out.println(customer) ;
63 }
64
65 transaction.commit() ;
66 }
67
68 /**
69 * 统计查询
70 */
71 @Test
72 public void demo4() {
73 Session session = HibernateUtil.getSession() ;
74 Transaction transaction = session.beginTransaction() ;
75 Query query = session.createQuery("select count(1) from Customer") ;
76 List list = query.list() ;
77 System.out.println(list.get(0)) ;
78
79 transaction.commit() ;
80 }
81
82 /**
83 * 投影查询
84 */
85 @Test
86 public void demo5() {
87 Session session = HibernateUtil.getSession() ;
88 Transaction transaction = session.beginTransaction() ;
89 Query query = session.createQuery("select cust_id from Customer") ;
90 List list = query.list() ;
91
92 for (Object object : list) {
93 System.err.println(object) ;
94 }
95 transaction.commit() ;
96 }
97
98 /**
99 * 连接查询
100 */
101 @Test
102 public void demo6() {
103 Session session = HibernateUtil.getSession() ;
104 Transaction transaction = session.beginTransaction() ;
105
106 Query query = session.createQuery("from Customer c inner join fetch c.linkmans ") ;
107 List<Object []> list = query.list() ;
108 for (Object [] objects : list) {
109 for (Object object : objects) {
110 System.out.println(object) ;
111 }
112 }
113 transaction.commit() ;
114 }
115
116 /**
117 * 迫切内连接
118 */
119 @Test
120 public void demo7() {
121 Session session = HibernateUtil.getSession() ;
122 Transaction transaction = session.beginTransaction() ;
123
124 Query query = session.createQuery("from Customer c inner join fetch c.linkmans ") ;
125 List<Customer> list = query.list() ;
126 for (Customer customer : list) {
127 System.out.println(customer) ;
128 }
129 transaction.commit() ;
130 }
131 /**
132 * 外连接
133 */
134 @Test
135 public void demo8() {
136 Session session = HibernateUtil.getSession() ;
137 Transaction transaction = session.beginTransaction() ;
138
139 Query query = session.createQuery("from Customer c left join fetch c.linkmans ") ;
140 List<Customer> list = query.list() ;
141 for (Customer customer : list) {
142 System.out.println(customer) ;
143 }
144 transaction.commit() ;
145 }
146
147 }

  TestQBCDemo

  1 package com.xujingyang.test ;
2
3 import java.util.List ;
4 import org.hibernate.Criteria ;
5 import org.hibernate.Session ;
6 import org.hibernate.Transaction ;
7 import org.hibernate.criterion.DetachedCriteria ;
8 import org.hibernate.criterion.Order ;
9 import org.hibernate.criterion.Projection ;
10 import org.hibernate.criterion.Projections ;
11 import org.hibernate.criterion.Restrictions ;
12 import org.junit.Test ;
13 import com.xujingyang.utils.HibernateUtil ;
14
15 /**
16 * @author oldmonk
17 * @date 2017年4月19日
18 */
19 public class TestQBCDemo {
20
21 /**
22 * 基本查询
23 */
24 @Test
25 public void demo1() {
26 Session session = HibernateUtil.getSession() ;
27 Transaction transaction = session.beginTransaction() ;
28
29 Criteria criteria = session.createCriteria(Customer.class) ;
30 List<Customer> list = criteria.list() ;
31 for (Customer customer : list) {
32 System.out.println(customer) ;
33 }
34 transaction.commit() ;
35 }
36
37 /**
38 * 条件查询
39 */
40 @Test
41 public void demo2() {
42 Session session = HibernateUtil.getSession() ;
43 Transaction transaction = session.beginTransaction() ;
44
45 Criteria criteria = session.createCriteria(Customer.class) ;
46 // criteria.add(Restrictions.gt("cust_id", 3L));
47 criteria.add(Restrictions.between("cust_id", 3L, 4L)) ;
48 List<Customer> list = criteria.list() ;
49 for (Customer customer : list) {
50 System.out.println(customer) ;
51 }
52 transaction.commit() ;
53 }
54
55 /**
56 * 分页查询
57 */
58 @Test
59 public void demo3() {
60 Session session = HibernateUtil.getSession() ;
61 Transaction transaction = session.beginTransaction() ;
62
63 Criteria criteria = session.createCriteria(Customer.class) ;
64 criteria.setFirstResult(0) ;
65 criteria.setMaxResults(2) ;
66 List<Customer> list = criteria.list() ;
67 for (Customer customer : list) {
68 System.out.println(customer) ;
69 }
70 transaction.commit() ;
71 }
72
73 /**
74 * 排序查询
75 */
76 @Test
77 public void demo4() {
78 Session session = HibernateUtil.getSession() ;
79 Transaction transaction = session.beginTransaction() ;
80
81 Criteria criteria = session.createCriteria(Customer.class) ;
82 criteria.addOrder(Order.desc("cust_id")) ;
83 List<Customer> list = criteria.list() ;
84 for (Customer customer : list) {
85 System.out.println(customer) ;
86 }
87 transaction.commit() ;
88 }
89
90 /**
91 * 统计查询
92 */
93 @Test
94 public void demo5() {
95 Session session = HibernateUtil.getSession() ;
96 Transaction transaction = session.beginTransaction() ;
97
98 Criteria criteria = session.createCriteria(Customer.class) ;
99 // criteria.setProjection(Projections.id());
100 criteria.setProjection(Projections.sum("cust_id")) ;
101 List list = criteria.list() ;
102 for (Object obj : list) {
103 System.out.println(obj) ;
104 }
105 transaction.commit() ;
106 }
107
108 /**
109 * 离线条件查询:DetachedCriteria(SSH整合经常使用.).
110 * * 可以脱离session设置参数.
111 */
112 @Test
113 public void demo6() {
114 DetachedCriteria detachedCriteria = DetachedCriteria.forClass(Customer.class) ;
115 detachedCriteria.add(Restrictions.gt("cust_id", 3L)) ;
116 Session session = HibernateUtil.getSession() ;
117 Transaction transaction = session.beginTransaction() ;
118
119 List list = detachedCriteria.getExecutableCriteria(session).list() ;
120 for (Object obj : list) {
121 System.out.println(obj) ;
122 }
123 transaction.commit() ;
124 }
125
126 }

Hibernate各种查询方式及查询策略(转)的更多相关文章

  1. Hibernate查询方式&抓取策略

    Hibernate的查询方式 1.OID查询 hibernate根据对象的OID(主键)进行检索 使用get方法 Customer customer=session.get(Customer.clas ...

  2. (十)Hibernate 查询方式

     所有项目导入对应的hibernate的jar包.mysql的jar包和添加每次都需要用到的HibernateUtil.java 第一节:Hibernate 查询方式简介 1,导航对象图查询方式: 2 ...

  3. hibernate框架学习之数据查询(HQL)

    lHibernate共提供5种查询方式 •OID数据查询方式 •HQL数据查询方式 •QBC数据查询方式 •本地SQL查询方式 •OGN数据查询方式 OID数据查询方式 l前提:已经获取到了对象的OI ...

  4. AE中地图查询方式

    樱木 原文 AE中地图查询方式 地图查询主要有两种查询:空间查询和属性查询 所用到知识点: 1  Cursor(游标)对象 本质上是一个指向数据的指针,本身不包含数据内容,提供一个连接到ROW对象或者 ...

  5. mysql数据库的十种查询方式及多表查询

    --mysql数据库的十种查询方式 -- (1)查询时起别名 SELECT id AS '编号',NAME AS '姓名',age AS '年龄' FROM student; -- (2)查询时添加常 ...

  6. Druid 0.17入门(4)—— 数据查询方式大全

    本文介绍Druid查询数据的方式,首先我们保证数据已经成功载入. Druid查询基于HTTP,Druid提供了查询视图,并对结果进行了格式化. Druid提供了三种查询方式,SQL,原生JSON,CU ...

  7. Hibernate的查询方式

    Hibernate的查询的方式 OID检索 get或load方法进行的查询 对象导航检索 linkman.getCustomer(); HQL检索 用于接收hql语句进行查询,面向对象查询方式. 通过 ...

  8. Hibernate第四天——查询方式

    Hibernate入门最后一天第四天,我们进行查询方式的更进一步的细化: 先看一下大致的Hibernate的提供的查询的方式: 1.对象导航查询 2.OID查询 3.HQL查询 4.QBC查询 5.本 ...

  9. hibernate detached分离查询 与 抓取策略注意事项

    1.detached在抓取策略为 jion显式左外连接查询情况下 会产生笛卡儿积现象 DetachedCriteria dc = DetachedCriteria.forClass(Topic.cla ...

随机推荐

  1. 你在用 JWT 代替 Session?

    现在,JSON Web Tokens (JWT) 是非常流行的.尤其是 Web 开发领域. 流行 安全 稳定 易用 支持 JSON 所有这些因素,令 JWT 名声大振. 但是,今天我要来说说使用 JW ...

  2. 洛谷4137 mex题解 主席树

    题目链接 虽然可以用离线算法水过去,但如果强制在线不就gg了. 所以要用在线算法. 首先,所有大于n的数其实可以忽略,因为mex的值不可能大于n 我们来设想一下,假设已经求出了从0到n中所有数在原序列 ...

  3. 王坚十年前的坚持,才有了今天世界顶级大数据计算平台MaxCompute

    如果说十年前,王坚创立阿里云让云计算在国内得到了普及,那么王坚带领团队自主研发的大数据计算平台MaxCompute则推动大数据技术向前跨越了一大步. 数据是企业的核心资产,但十年前阿里巴巴的算力已经无 ...

  4. HDU 1081 To The Max【dp,思维】

    HDU 1081 题意:给定二维矩阵,求数组的子矩阵的元素和最大是多少. 题解:这个相当于求最大连续子序列和的加强版,把一维变成了二维. 先看看一维怎么办的: int getsum() { ; int ...

  5. jQuery学习笔记之解除重复点击事情重复绑定

    问题:有不同的按钮点击后都执行相同的事件,在jQuery重复点击就会产生事件重复绑定. 解决方法:使用unbind("click")方法,每次点击都先接触绑定已有事件再绑定新对象. ...

  6. oracle函数 INITCAP(c1)

    [功能]返回字符串并将字符串的第一个字母变为大写,其它字母小写; [参数]c1字符型表达式 [返回]字符型 [示例] SQL> select initcap('smith abc aBC') u ...

  7. @codechef - MGCH3D@ 3D Queries

    目录 @description@ @solution@ @accepted code@ @details@ @description@ 在三维空间内有 N 个不同的点,请计算下面式子的值 Q 次: \ ...

  8. 模板—点分治A(容斥)(洛谷P2634 [国家集训队]聪聪可可)

    洛谷P2634 [国家集训队]聪聪可可 静态点分治 一开始还以为要把分治树建出来……• 树的结构不发生改变,点权边权都不变,那么我们利用刚刚的思路,有两种具体的分治方法.• A:朴素做法,直接找重心, ...

  9. oralce 减少访问数据库的次数

    当执行每条SQL语句时, ORACLE在内部执行了许多工作: 解析SQL语句, 估算索引的利用率, 绑定变量 , 读数据块等等. 由此可见, 减少访问数据库的次数 , 就能实际上减少ORACLE的工作 ...

  10. 推荐几个web前端比较实用的网站

    第一次写博客,说实在的有点紧张和兴奋,哈哈哈哈,本人工作了有两年的时间,平时也有做笔记的习惯,但是都做得乱七八糟的,所以就想通过写博客来记录.好了,废话不多说了,先来几个觉得在工作中使用到的,还不错的 ...