栀子花开已回答
存储过程
1、用于在数据库中完成特定的操作或者任务(如插入、删除等)
2、程序头部声明用procedure
3、程序头部声明时不需描述返回类型可以使用in/out/in out 三种模式的参数
4、可作为一个独立的PL/SQL语句来执行
5、可以通过out/in out 返回零个或多个值
6、SQL语句(DML 或SELECT)中不可调用存储过程
函数
1、用于特定的数据(如选择)
2、程序头部声明用function
3、程序头部声明时要描述返回类型,而且PL/SQL块中至少要包括一个有效的return语句
4、可以使用in/out/in out 三种模式的参数
5、不能独立执行,必须作为表达式的一部分调用
6、通过return语句返回一个值,且改值要与声明部分一致,也可以是通过out类型的参数带出的变量
7、SQL语句(DML 或SELECT)中可以调用函数
Session和cookie都是会话(session)跟踪技术.cookie通过在客户端记录信息确定用户身份,而session是通过在服务器端记录信息确定用户身份.但是session的实现依赖于cookie机制来保存JESESSIONID(session的唯一标识,需要存在客户端)区别:cookie的数据存储在...
限定线程的个数,不会导致由于线程过多导致系统运行缓慢或崩溃线程池每次都不需要去创建和销毁,节约了资源线程池不需要每次都去创建,相应时间更快.
使用字节流,因为我们要拷贝的文件,不好确定里面是否全是字符,如果文件中包含图片之类的字节时,就需要使用字节流.所以,我们一般是用字节流拷贝文件.
运行速度:StringBuilder>StringBuffer>String线程安全:StringBuilder是线程不安全的,而StringBuffer是线程安全的如果一个StringBuffer对象在字符串缓冲区被多个线程使用时,StringBuffer中很多方法可以带有synchronized...
封装:在面向对象语言中,封装特性是由类来体现的,我们将现实生活中的一类实体定义成类,其中包括属性和行为(在Java中就是方法).例如电脑,抽象:抽象就是将一类实体的共同特性抽象出来,封装在一个抽象类中,所以抽象在面向对象语言是由抽象类来体现的。比如人.classPerson{}继承:继承就像是我们现实生活中的父...
Solr使用的是LuceneAPI实现的全文检索。全文检索本质上是查询的索引。而数据库中并不是所有的字段都建立的索引,更何况如果使用like查询时很大的可能是不使用索引,所以使用solr查询时要比查数据库快。
单点登录的核心是如何在多个系统之间共享身份信息
对象关系映射(ObjectRelationalMapping,简称ORM)模式是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术。简单来说,将程序中的兑现自动持久化到关系数据库中。那么,到底如何实现持久化呢?一种简单的反感是采用硬编码的方式(jdbc操作sql方式),为每一种可能的数据库访问操作提供单...
通过动态配置方式,可以在执行Action的方法前后,加入相关逻辑,完成业务.struts2中的功能,都是通过系统拦截器实现的.比如:参数处理,文件上传,字符编码.当然,我们也可以自定义拦截器使用场景:用户登陆判断,在执行Action的前面判断是否已经登陆,如果没有登陆则跳转到登陆页面;用户权限的判断,在执行Ac...
MVC全名是modelviewController,是模型(model)—视图(view)—控制器(Controller)的缩写,是一种软件设计典范.最简单的,最经典的就是jsp(view)+servlet(Controller)+javabean(model)1.当控制器收到来自用户的...