- 浏览: 117462 次
- 性别:
- 来自: 广州
最新评论
文章列表
对于Oracle的两表联合更新的场景(有A、B两表,以A.id=B.id关联,根据B表中的记录更新A表中的相应字段),一般有update内联视图和merge两种方式,下面举例介绍:
创建用例表:
CREATE TABLE test1(ID NUMBER(10),NAME VARCHAR2(20));
INSERT INTO test1 VALUES(1,'lucy');
INSERT INTO test1 VALUES(2,'lily');
CREATE TABLE test2(ID NUMBER(10),NAME VARCHAR2(20));
INSERT INTO tes ...
本文Apache+Tomcat集群配置 基于最新的Apache和Tomcat,具体是2011年4月20日最新的Tomcat和Apache集群和负载均衡配置。
准备环境
Apache
Apache是http服务器,我们利用其对Tomcat进行负载均衡。目前最新版本为2.2.17,下载地址为http://httpd.apache.org/download.cgi#apache22。如下图:
oracle树查询的最重要的就是select…start with…connect by…prior语法了。依托于该语法,我们可以将一个表形结构的以树的顺序列出来。在下面列述了oracle中树型查询的常用查询方式以及经常使用的与树查询相关的oracle特性函数等,在这里只涉及到一张表中的树查询方式而不涉及多表中的关联等。
1、准备测试表和测试数据
Oracle 语句优化
- 博客分类:
- Oracle
1. ORACLE 的解析器按照从右到左的顺序处理 FROM 子句中的表名,因此 FROM 子句中写在最后的表(基础表 driving table)将被最先处理。在 FROM 子句中包含多个表的情况下,你必须选择记录条数最少的表作为基础表。 例如: 表 TAB1 16,384 条记录 表 TAB2 1 条记录 选择 TAB2作为基础表 (最好的方法) select count(*) from tab1,tab2 执行时间 0.96秒 选择 TAB2作为基础表 (不佳的方法) select count(*) from tab2,tab1 执行时间 26.09秒
假设现在有一张学生表student,学生表中有姓名、分数、课程编号,现在我需要按照课程对学生的成绩进行排序。
select * from student
1. rank over ()可以实现对学生排名,特点是成绩相同的两名是并列,如下1 2 2 4 5
select name, course, rank() over(partition by course order by score desc) as rank from student;
2. dense_rank()和rank over()很像,但学生成绩并列后并不会空出并列所占的名次,如下1 2 ...
首先安装好hibernate插件,点击help进入Eclipse markplace,然后搜索hibernate,会出现相应的插件,选择hibernate tool点击install安装即可。
安装完成后,进入hibernate视图,在左侧窗口右键add configuration,
第一个name属性,自己可以随意命 ...
Jbpm4.4+hibernate3.5.4+spring3.0.4+struts2.1.8 整合例子(附完整的请假流程例子)。
1. jbpm4.4 测试环境搭建
2. Jbpm4.4+hibernate3.5.4+spring3.0.4+struts2.1. 整合环境搭建
3. jbpm4.4 基础知识
4. 整合过程中常见问题的解决
5. 请假流程例子( s2sh+jbpm )
6. 总结及参考文章
jbpm4.4 测试环境搭建
刚接触 jbpm
OGNL表达式struts2标签“%,#,$”
- 博客分类:
- Java
一、什么是OGNL,有什么特点? OGNL(Object-Graph Navigation Language),大概可以理解为:对象图形化导航语言。是一种可以方便地操作对象属性的开源表达式语言。OGNL有如下特点: 1、支持对象方法调用,形 ...
spring security控制权限的几种方法
- 博客分类:
- Java
使用Spring Security3的四种方法概述
那么在Spring Security3的使用中,有4种方法:
一种是全部利用配置文件,将用户、权限、资源(url)硬编码在xml文件中,已经实现过,并经过验证;
二种是用户和权限用数据库存储,而资源(url)和权限的对应采用硬编码配置,目前这种方式已经实现,并经过验证。
三种是细分角色和权限,并将用户、角色、权限和资源均采用数据库存储,并且自定义过滤器,代替原有的FilterSecurityInterceptor过滤器, 并分别实现AccessDecisionManager、InvocationS ...
在 Web 应用开发中,安全一直是非常重要的一个方面。安全虽然属于应用的非功能性需求,但是应该在应用开发的初期就考虑进来。如果在应用开发的后期才考虑安全的问 题,就可能陷入一个两难的境地:一方面,应用存在严重的安全漏洞,无法满足用户的要求,并可能造成用户的隐私数据被攻击者窃取;另一方面,应用的基本架构 已经确定,要修复安全漏洞,可能需要对系统的架构做出比较重大的调整,因而需要更多的开发时间,影响应用的发布进程。因此,从应用开发的第一天就应该把安 全相关的因素考虑进来,并在整个应用的开发过程中。
本文详细介绍了如何使用 Spring Security 来保护 Web 应用的安全。Spring ...
Fortify SCA简介 Fortify SCA 是一个静态的、白盒的软件源代码安全测试工具。它通过内置的五大主要分析引擎:数据流、语义、结构、控制流、配置流等对应用软件的源代码进行静态的分析,分析的过程中与它特有的软件安全漏洞规则集进行全面地匹配、查找,从而将源代码中存在的安全漏洞扫描出来,并给予整理报告。扫描的结果中不但包括详细的安全漏洞的信息,还会有相关的安全知识的说明,以及修复意见的提供。
1.Fortify SCA 扫描引擎介绍: Foritfy SCA主要包含的五大分析引擎:?? 数据流引擎:跟踪,记录并分析程序中的数据传递过程所产生的安全问题。?? 语义引擎:分析程 ...
Escape HTML
- 博客分类:
- Java
1,使用 spring form 标签
防 csrf 攻击
2,标明请求方法:RequestMethod.GET,RequestMethod.POST, PATCH, POST, PUT, and DELETE
如果不标明,默认以上所有请求类型都会接受处理(面太广),给黑客留下伪造请求的隐患。
3,防 XSS
1)web.xml中添加
<context-param><param-name>defaultHtmlEscape</param-name><param-value>
ESAPI之会话安全
- 博客分类:
- Java
ESAPI是开源组织owasp,开放的安全开发框架,但百度、google搜索相关的技术文章很少,今天小尝试了一下,分享一下心得。
会话攻击,简单理解就是盗用窃取用户的cookie,伪装成用户,向服务器端发送请求,窃取用户私密信息。
具体如何防止会话攻击,很简单,参照《Web应用安全威胁与防治--基于OWASP TOP 10 与ESAPI》书中介绍的方法,一旦用户登录成功后,马上validate用户的会话,具体步骤如下:
用户输入用户名和密码
系统对用户进行验证通过
已有的会话信息如果仍然需要,则转移到一个临时变量中去
invalidate当前会话
创建一个新会话
把临时变量中 ...
javascript之数组操作
- 博客分类:
- JavaScript
1、数组的创建
var arrayObj = new Array(); //创建一个数组
var arrayObj = new Array([size]); //创建一个数组并指定长度,注意不是上限,是长度
var arrayObj = new Array([element0[, element1[, ...[, elementN]]]]); 创建一个数组并赋值
要说明的是,虽然第二种方法创建数组指定了长度,但实际上所有情况下数组都是变长的,也就是说即使指定了长度为5,仍然可以将元素存储在规定长度以外的,注意:这时长度会随之改变。
2
Java Map借助key List的排序
- 博客分类:
- Java
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Random;
public class Test {
public static void main(String[] args) {
Map<String, ChartSeries> map = ne ...