什么时候使用CallableStatement?用来准备CallableStatement的方法是什么?
CallableStatement用来执行存储过程。准备一个CallableStatement的方法是CallableStatement Connection.prepareCall()。
为什么要使用存储过程?
存储过程说白了就是一堆 SQL 的合并。中间加了点逻辑控制。 但是存储过程处理比较复杂的业务时比较实用。 比如说,一个复杂的数据操作。如果你在前台处理的话。可能会涉及到多次数据库连接。但如果你用存储过程的话。就只有一次。从响应时间上来说有优势。 也就是说存储过程可以给我们带来运行效率提高的好处。 另外,程序容易出现 BUG 数据量小的,或者和钱没关系的项目不用存储过程也可以正常运作。mysql 的存储过程还有待实际测试。如果是正式项目,建议你用 sql server 或 oracle 的存储过程。数据与数据之间打交道的话,过程会比程序来的快的多。面试官问有没有用存储,实际上就是想知道前来面试的程序员到底做过数据量大的项目没。如果是培训出来的,或者小项目小公司出来的,对存储肯定接触的少了。 所以,要想进大公司,没有丰富存储过程经验,是不行的。 错。存储过程不仅仅适用于大型项目,对于中小型项目,使用存储过程也是非常有必要的。其威力和优势主要体现在: 1.存储过程只在创造时进行编译,以后每次执行存储过程都不需再重新编译,而一般 SQL 语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速度。 2.当对数据库进行复杂操作时(如对多个表进行 Update,Insert,Query,Delete 时),可将此复杂操作用存储过程封装起来与数据库提供的事务处理结合一起使用。这些操作,如果用程序来完成,就变成了一条条的 SQL 语句,可能要多次连接数据库。而换成存储,只需要连接一次数据库就可以了。 3.存储过程可以重复使用,可减少数据库开发人员的工作量。 4.安全性高,可设定只有某此用户才具有对指定存储过程的使用权。 存储过程的缺点 1:调试麻烦,但是用 PL/SQL Developer 调试很方便!弥补这个缺点。 2:移植问题,数据库端代码当然是与数据库相关的。但是如果是做工程型项目,基本不存在移植问题。 3:重新编译问题,因为后端代码是运行前编译的,如果带有引用关系的对象发生改变时,受影响的存储过程、包将需要重新编译(不过也可以设置成运行时刻自动编译)。 4:如果在一个程序系统中大量的使用存储过程,到程序交付使用的时候随着用户需求的增加会导致数据结构的变化,接着就是系统的相关问题了,最后如果用户想维护该系统可以说是很难很难、而且代价是空前的。维护起来更加麻烦!
什么是RMI?
Java RMI是Java API对远程过程调用(RPC)提供的面向对象的等价形式,支持直接传输的序列化的Java对象和分布式垃圾回收。远程方法调用可以看做是激活远程正在运行的对象上的方法的步骤。RMI对调用者是位置透明的,因为调用者感觉方法是执行在本地运行的对象上的。
RMI体系结构的基本原则是什么?
行为定义和行为实现相分离的原则。
RMI体系结构分哪几层?
存根与骨架层(stub and skeleton layer)
远程引用层(remote reference layer):解析客户端对服务端远程对象的引用。
传输层(Transport layer):这一层负责连接参与服务的两个JVM.
RMI中的远程接口(remote interface)扮演了什么样的的角色?
java.rmi.naming类扮演什么样的角色?
RMI的绑定(binding)是什么意思?
Naming类的bind()和rebind()方法有什么区别?
什么是分布式垃圾回收(DGC),它是如何工作的?
解释一下marshalling和unmarshalling
应用程序内存对象跨网络传输到另一台主机或者持久化到存储的时候,就必须把对象在内存里面的表示转化成合适的格式,这个过程就是marshalling,反之就是unmarshalling.
什么是SSI(服务端包含)?
一种简单的解释型服务端脚本语言。
什么是cookie,session和cookie有什么区别?
cookie是服务器给浏览器发送的一块信息,浏览器会在本地文件中给每一个web服务器存储cookie,以后浏览器再给特定的web服务器发送请求时,同时会发送为该服务器存储的cookie。
session存储在服务器端,cookie存储在浏览器客户端。
session可以存储任意类型的java对象,cookie只能存储Sting类型的对象。
什么是HTTP隧道
利用HTTP或者HTTPS把多种网络协议封装起来进行通信的技术。
sendRedirect()和forward()方法有什么区别
forward是服务器内部跳转,浏览器的地址栏不会发生变化,可以同时把request和response传递给后一个请求。sendRedirect是浏览器方面的跳转,浏览器的地址栏会发生变化,之前请求作用域范围内的对象就失效了,因为产生了一个新的请求。
什么是url编码和url解码
url编码就是把url里面的空格或者特殊字符替换成对应的十六进制表示,反之就是解码。
面向对象软件开发的优点有哪些?
代码开发模块化,更易维护和修改。
代码复用
增强代码的可靠性和灵活性
增加代码的可理解性
面向对象有很多重要的特性,比如继承,封装,多态和抽象。
多态的定义
相同类型的引用变量,调用同一个方法时呈现出多种不同的的行为特征。
java引用变量有两种类型,编译时类型和运行时类型,如果编译时类型和运行时类型不一致就可能会出现多态。
网友评论