Browsed by
分类:技术

好烂啊有点差凑合看看还不错很精彩 (No Ratings Yet)
Loading...
45 views
使用ToStringBuilder.reflectionToString实现toString方法

使用ToStringBuilder.reflectionToString实现toString方法

org.apache.commons.lang.builder.ToStringBuilder.reflectionToString(Object, ToStringStyle)是commons-lang里的一个类。

实现一个类的toString方法是一件无聊的事情。
使用ToStringBuilder/ReflectionToStringBuilder可以让生活更美好一点。

@Override
public String toString() {
// return ReflectionToStringBuilder.toStringExclude(this, “fileBody”);
return ToStringBuilder.reflectionToString(this, ToStringStyle.SHORT_PREFIX_STYLE);
}

如果需要排除某些字段, 可以使用ReflectionToStringBuilder.toStringExclude方法。 (org.apache.commons.lang3.builder.ReflectionToStringBuilder.toStringExclude(Object, String…))

好烂啊有点差凑合看看还不错很精彩 (No Ratings Yet)
Loading...
45 views
window.location window.location.href 跳转url区别

window.location window.location.href 跳转url区别

window.location window.location.href 跳转url区别

window.location=url

如果页面之前已经载入。则重新载入调用的是本地缓存

所有 资源状态貌似

  1. Status Code:
    200 OK (from cache)

window.location.href=url

页面跳转是载入新页面方式,调用资源缓存类型是根据服务器缓存机制调用,
资源状态基本是一下两种
  1. Status Code:
    200 OK
  1. Status Code:
    304 Not Modified
自己项目因为不清楚这两者区别 导致页面跳转都不能及时更新状态。
-end-
好烂啊有点差凑合看看还不错很精彩 (No Ratings Yet)
Loading...
69 views
THE CODE GEEKS NETWORK

THE CODE GEEKS NETWORK

好烂啊有点差凑合看看还不错很精彩 (No Ratings Yet)
Loading...
201 views
RedisSerializer

RedisSerializer

 

org.springframework.data.redis.serializer.RedisSerializer
子类:
GenericToStringSerializer
JacksonJsonRedisSerializer
JdkSerializationRedisSerializer
OxmSerializer
StringRedisSerializer

这个5个具体子类,分别是什么用途用处呢?使用场景是什么?

 

好烂啊有点差凑合看看还不错很精彩 (No Ratings Yet)
Loading...
194 views
Datasets | Kaggle

Datasets | Kaggle

Welcome to Kaggle Datasets

The best place to discover and seamlessly analyze open data


  • Discover

    Discover

    Use the search box to find open datasets on everything from government, health, and science to popular games and dating trends.

  • Explore

    Explore

    Execute, share, and comment on code for any open dataset with our in-browser analytics tool, Kaggle Kernels. You can also download datasets in an easy-to-read format.

  • Create a Dataset

    Create a Dataset

    Contribute to the open data movement and connect with other data enthusiasts by clicking “New Dataset” to publish an open dataset of your own.

来源: Datasets | Kaggle

好烂啊有点差凑合看看还不错很精彩 (No Ratings Yet)
Loading...
198 views
好烂啊有点差凑合看看还不错很精彩 (1 votes, average: 1.00 out of 5)
Loading...
188 views
好烂啊有点差凑合看看还不错很精彩 (No Ratings Yet)
Loading...
149 views
oracle中 sql截取某个字符前面和后面的值

oracle中 sql截取某个字符前面和后面的值

直接看代码:

–创建测试表及数据
create table test
(name varchar2(10));

insert into test values (‘2-15’);
insert into test values (‘2-33’);
insert into test values (‘2-3′);
insert into test values (’12-8′);
insert into test values (’12-22′);
insert into test values (’12-3′);

–执行

select name,substr(name,1,instr(name,’-‘)-1) 前,

substr(name,instr(name,’-‘)+1,length(name)-instr(name,’-‘)) 后

from test

–结果
NAME 前 后
2-15 2 15
2-33 2 33
2-3 2 3

–end–

 

好烂啊有点差凑合看看还不错很精彩 (No Ratings Yet)
Loading...
159 views
Oracle-分区表案例

Oracle-分区表案例

Oracle-分区表案例

Oracle数据库开发了解分区表
分区就是将一个非常大的表或者索引物理地分解为多个较小的 可独立管理的部分.
分区表或索引在逻辑上是一个表或一个索引,但物理上是由多个物理分区组成的.
分区功能通过改善可管理性 性能 可用性,为各种应用系统带来了极大的好处.
分区功能的好处:
1.增强数据可用性:如果表的一个分区因故障或者维护而不能使用时,表的其余分区仍是可用的;
2.维护方便:独立管理多个分区,比维护单个大表要轻松;
3.均衡I/O:可以把不同分区映射到磁盘以平衡I/O,显著改善性能;
4.改善查询性能:对已分区对象的某些查询可以运行更快,因为搜索仅限于关心的分区;

分区表有哪些??
Oracle 11g 提供6种表分区方法:范围分区(range) 散列分区(hash) 列表分区(list)
符合分区 间隔分区 引用分区.


按表中某个列值的范围进行分区,根据该列的值决定将数据存储在哪个分区上.

创建范围分区需注意以下几点:
1.指明分区方法,分区列,和分区描述
2.每一个分区都有values less than子句
3.在最高分区中定义maxvalue,这个maxvalue值高区其他分区中的任何键值.
例:创建范围分区

create table range_orders
(order_id varchar2(10) constraint OR_PK primary key
,order_date date default sysdate
,qty integer
,payterms varchar2(10)
,book_id number(6)
)
partition by range (order_date)
(partition p1 values less than (to_date(‘20140331′,’yyyymmdd’)) tablespace user01,
partition p2 values less than (to_date(‘20140430′,’yyyymmdd’)) tablespace user02,
partition p3 values less than (to_date(‘20140531′,’yyyymmdd’)) tablespace user03
)
;

SQL> insert into range_orders values (‘10001’,to_date(‘20140321′,’yyyymmdd’),1,’payterm_1′,110345);
1 row inserted
SQL> insert into range_orders values (‘10002’,to_date(‘20140421′,’yyyymmdd’),1,’payterm_2′,110745);
1 row inserted
SQL> insert into range_orders values (‘10003’,to_date(‘20140521′,’yyyymmdd’),1,’payterm_3′,110945);
1 row inserted

SQL> commit;
Commit complete

SQL> select rowid,r.* from range_orders r;
ROWID ORDER_ID ORDER_DATE QTY PAYTERMS BOOK_ID
—————— ———- ———– —- ———- ——-
AAADwpAAGAAAACFAAA 10001 2014/3/21 1 payterm_1 110345
AAADwqAAHAAAACFAAA 10002 2014/4/21 1 payterm_2 110745
AAADwrAAIAAAACFAAA 10003 2014/5/21 1 payterm_3 110945

可以看到AAG,AAH,AAI 分别代表了三条数据的文件号是6,7,8
备注:这个地方可以看下http://blog.itpub.net/28929558/viewspace-1150766/ 了解rowid
验证下

SQL> select x.FILE#,x.NAME from v$datafile x;

FILE# NAME
———- —————————————-
1 D:\ORACLE\ORADATA\CRISS_DB\SYSTEM01.DBF
2 D:\ORACLE\ORADATA\CRISS_DB\SYSAUX01.DBF
3 D:\ORACLE\ORADATA\CRISS_DB\UNDOTBS01.DBF
4 D:\ORACLE\ORADATA\CRISS_DB\USERS01.DBF
5 D:\ORACLE\ORADATA\CRISS_DB\TEST01.DBF
6 D:\ORACLE\ORADATA\CRISS_DB\USER01.DBF
7 D:\ORACLE\ORADATA\CRISS_DB\USER02.DBF
8 D:\ORACLE\ORADATA\CRISS_DB\USER03.DBF

8 rows selected


散列分区指一个或多个列上应用一个散列函数,数根据该散列值存放在不同的分区中.
通过散列分区,可以将数据比较均匀地分布到各个分区中.

例:创建散列分区表

SQL> create table hash_orders

(order_id varchar2(10) constraint HOR_PK primary key
,order_date date default sysdate
,qty integer
,payterms varchar2(10)
,book_id number(6)
)
partition by hash(order_id)
( partition hash_p1 tablespace user01
,partition hash_p2 tablespace user02
);

 

Table created

SQL> insert into hash_orders select * from range_orders;

3 rows inserted

 

SQL> select rowid,h.* from hash_orders h;

ROWID ORDER_ID ORDER_DATE QTY PAYTERMS BOOK_ID
—————— ———- —————– ———- ——-
AAADyIAAGAAAACNAAA 10002 2014/4/21 1 payterm_2 110745
AAADyIAAGAAAACNAAB 10003 2014/5/21 1 payterm_3 110945
AAADyJAAHAAAACNAAA 10001 2014/3/21 1 payterm_1 110345

 

继续: http://blog.csdn.net/woshimyc/article/details/73289798

 

-end-

好烂啊有点差凑合看看还不错很精彩 (No Ratings Yet)
Loading...
131 views
Oracle的with..as的用法

Oracle的with..as的用法

Oracle with..as 的用法

— code = SQL —

–语法:

with tempName as (select ….)
select …

 

–例:现在要从1-19中得到11-14。一般的sql如下:
select * from
(
–模拟生一个20行的数据
SELECT LEVEL AS lv
FROM DUAL
CONNECT BY LEVEL ) tt
WHERE tt.lv > 10 AND tt.lv

 

–使用With as 的SQL为:
with TT as(
–模拟生一个20行的数据
SELECT LEVEL AS lv
FROM DUAL
CONNECT BY LEVEL )
select lv from TT
WHERE lv > 10 AND lv

/*With查询语句不是以select开始的,而是以“WITH”关键字开头
可认为在真正进行查询之前预先构造了一个临时表TT,之后便可多次使用它做进一步的分析和处理

WITH Clause方法的优点
增加了SQL的易读性,如果构造了多个子查询,结构会更清晰;更重要的是:“一次分析,多次使用”,
这也是为什么会提供性能的地方,达到了“少读”的目标。
第一种使用子查询的方法表被扫描了两次,而使用WITH Clause方法,表仅被扫描一次。
这样可以大大的提高数据分析和查询的效率。
另外,观察WITH Clause方法执行计划,其中“SYS_TEMP_XXXX”便是在运行过程中构造的中间统计结果临时表。*/

—–*************************在视图中使用WITH语句进行连接
CREATE OR REPLACE VIEW WITH_V AS
WITH DEPT_V AS (SELECT * FROM DEPT),
EMP_V AS (SELECT * FROM EMP)
SELECT D.DNAME,D.LOC,E.* FROM EMP_V E
LEFT JOIN DEPT_V D
ON D.DEPTNO = E.DEPTNO
—–*************************WITH语句的使用例子:
/*查询出部门的总薪水大于所有部门平均总薪水的部门。部门表s_dept,员工表s_emp。
分析:做这个查询,首先必须计算出所有部门的总薪水,然后计算出总薪水的平均薪水,
再筛选出部门的总薪水大于所有部门总薪水平均薪水的部门。那么第1 步with 查询查出所有部门的总薪水,
第2 步用with 从第1 步获得的结果表中查询出平均薪水,最后利用这两次 的with 查询比较总薪水大于平均薪水的结果,如下:
*/

WITH DEPT_COSTS AS –查询出部门的总工资WITH DEPT_COSTS AS –查询出部门的总工资 (SELECT D.DNAME, SUM(E.SAL) DEPT_TOTAL FROM DEPT D, EMP E WHERE E.DEPTNO = D.DEPTNO GROUP BY D.DNAME), AVE_COST AS –查询出部门的平均工资,在后一个WITH语句中可以引用前一个定义的WITH语句 (SELECT SUM(DEPT_TOTAL) / COUNT(*) AVG_SUM FROM DEPT_COSTS) SELECT—–************************* /*一、WITH AS的含义        WITH AS短语,也叫做子查询部分(subquery factoring),可以定义一个SQL片断,该SQL片断会被整个SQL语句所用到。 特别对于UNION ALL比较有用。因为UNION ALL的每个部分可能相同,但是如果每个部分都去执行一遍的话,则成本太高, 所以可以使用WITH AS短语,则只要执行一遍即可。如果WITH AS短语所定义的表名被调用两次以上,则优化器会自动将WITH AS 短语所获取的数据放入一个TEMP表里,如果只是被调用一次,则不会。而提示materialize则是强制将WITH AS短语里的数据放入 一个全局临时表里。很多查询通过这种方法都可以提高速度。
二、WITH AS的使用实例从A表中查询某个字段出来,如果没有从B表中查询,如果A,B表中都没有,则输出ERROR*/

with sql1 as
(select to_char(id) myid from a),
sql2 as
(select to_char(id) myid from b where not exists
(select * from sql1 where rownum > 5))
select * from sql1
union all
select * from sql2
union all
select ‘error’ from dual
where not exists (select * from sql1 where rownum > 5) and not exists
(select * from sql2 where rownum > 2);

–code–

 

–end–

跳至工具栏