pstmt.setObject(cnt+1,params[cnt]);
}
}
rs=pstmt.executeQuery();
}catch(SQLExceptionex){
log.error("执行查询操作错误:
"+ex.getMessage());
}
returnrs;
}
}
7、有100元人民币,要买100份材料,其中A材料3元/份,B材料2元/份,C材料0.5元/份,问能买A、B、C这三种材料各多少份?
要求这100元刚好画完,且三种材料都买齐,请编写出程序。
(注:
如果实在写不出代码,请用文字描述解题思路)
答:
for(intnumA=1;numA<34;numA++){
for(intnumB=1;numB<49;numB++){
intnumC=100-numA-numB;
if(numA*3+numB*2+numC*0.5==100){
System.out.println("材料A"+numA+"个\t材料B"+numB+"个\t材料C"+numC+"个\t");
}
}
}
8、介绍Java中CollectionFramework,(Collection的继承和实现图)
答:
List和Set接口实现了Collection接口
ArrayList和LinkedList类实现了List接口
HashSet和TreeSet实现了Set接口
9、有一个保护N个Integer的向量(Vector),它包含的Integer可以是1到N+1中的任何一个,但是互不相同,也就是说Vector中不包含重复的值。
因为有N个对象,并且可能得到的值有N+1个,所以有一个值没有包含在这个Vector中,请编程找到这个Vector中没有包含的整数(只可以使用Vector.get(),Vector.getSize()两个方法)。
答:
1:
mvc设计模式各部分都用什么技术,怎么实现的。
模型(Model),视图(View)和控制Controller)。
MVC模式的目的就是实现Web系统的职能分工。
Model层实现系统中的业务逻辑,通常可以用JavaBean或EJB来实现。
View层用于与用户的交互,通常用JSP来实现。
Controller层是Model与View之间沟通的桥梁,它可以分派用户的请求并选择恰当的视图以用于显示,同时它也可以解释用户的输入并将它们映射为模型层可执行的操作
2:
hibernate的工作机制,为什么要用Hibernate.
原理:
1.读取并解析配置文件
2.读取并解析映射信息,创建SessionFactory
3.打开Sesssion
4.创建事务Transation
5.持久化操作
6.提交事务
7.关闭Session
8.关闭SesstionFactory
为什么要用:
1.对JDBC访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代码。
··2.Hibernate是一个基于JDBC的主流持久化框架,是一个优秀的ORM实现。
他很大程度的简化DAO层的编码工作
3.hibernate使用Java反射机制,而不是字节码增强程序来实现透明性。
4.hibernate的性能非常好,因为它是个轻量级框架。
映射的灵活性很出色。
它支持各种关系数据库,从一对一到多对多的各种复杂关系。
3:
Struts工作机制?
为什么要使用Struts?
工作机制:
Struts的工作流程:
在web应用启动时就会加载初始化ActionServlet,ActionServlet从
struts-config.xml文件中读取配置信息,把它们存放到各种配置对象
当ActionServlet接收到一个客户请求时,将执行如下流程.
-
(1)检索和用户请求匹配的ActionMapping实例,如果不存在,就返回请求路径无效信息;
-
(2)如果ActionForm实例不存在,就创建一个ActionForm对象,把客户提交的表单数据保存到ActionForm对象中;
-(3)根据配置信息决定是否需要表单验证.如果需要验证,就调用ActionForm的validate()方法;
-(4)如果ActionForm的validate()方法返回null或返回一个不包含ActionMessage的ActuibErrors对象,就表示表单验证成功;
-(5)ActionServlet根据ActionMapping所包含的映射信息决定将请求转发给哪个Action,如果相应的Action实例不存在,就先创建这个实例,然后调用Action的execute()方法;
-(6)Action的execute()方法返回一个ActionForward对象,ActionServlet在把客户请求转发给ActionForward对象指向的JSP组件;
-(7)ActionForward对象指向JSP组件生成动态网页,返回给客户;
为什么要用:
JSP、Servlet、JavaBean技术的出现给我们构建强大的企业应用系统提供了可能。
但用这些技术构建的系统非常的繁乱,所以在此之上,我们需要一个规则、一个把这些技术组织起来的规则,这就是框架,Struts便应运而生。
4:
spring工作机制及为什么要用?
1.springmvc请所有的请求都提交给DispatcherServlet,它会委托应用系统的其他模块负责负责对请求进行真正的处理工作。
2.DispatcherServlet查询一个或多个HandlerMapping,找到处理请求的Controller.
3.DispatcherServlet请请求提交到目标Controller
4.Controller进行业务逻辑处理后,会返回一个ModelAndView
5.Dispathcher查询一个或多个ViewResolver视图解析器,找到ModelAndView对象指定的视图对象
6.视图对象负责渲染返回给客户端。
为什么用:
{AOP让开发人员可以创建非行为性的关注点,称为横切关注点,并将它们插入到应用程序代码中。
使用AOP后,公共服务(比如日志、持久性、事务等)就可以分解成方面并应用到域对象上,同时不会增加域对象的对象模型的复杂性。
IOC允许创建一个可以构造对象的应用环境,然后向这些对象传递它们的协作对象。
正如单词倒置所表明的,IOC就像反过来的JNDI。
没有使用一堆抽象工厂、服务定位器、单元素(singleton)和直接构造(straightconstruction),每一个对象都是用其协作对象构造的。
因此是由容器管理协作对象(collaborator)。
Spring即使一个AOP框架,也是一IOC容器。
Spring最好的地方是它有助于您替换对象。
有了Spring,只要用JavaBean属性和配置文件加入依赖性(协作对象)。
然后可以很容易地在需要时替换具有类似接口的协作对象。
}
5:
j2ee是平台还是框架?
平台。
J2EE是一种利用Java2平台来简化企业解决方案的开发、部署和管理相关的复杂问题的体系结构。
6:
简述一下Hibernate中load()和get()方法。
1.对于Hibernateget方法,Hibernate会确认一下该id对应的数据是否存在,首先在session缓存中查找,然后在二级缓存中查找,还没有就查询数据库,数据库中没有就返回null·。
这个相对比较简单,也没有太大的争议。
主要要说明的一点就是在这个版本中get方法也会查找二级缓存!
2.Hibernateload方法加载实体对象的时候,根据映射文件上类级别的lazy属性的配置(默认为true),分情况讨论:
(1)若为true,则首先在Session缓存中查找,看看该id对应的对象是否存在,不存在则使用延迟加载,返回实体的代理类对象(该代理类为实体类的子类,由CGLIB动态生成)。
等到具体使用该对象(除获取OID以外)的时候,再查询二级缓存和数据库,若仍没发现符合条件的记录,则会抛出一个ObjectNotFoundException。
(2)若为false,就跟Hibernateget方法查找顺序一样,只是最终若没发现符合条件的记录,则会抛出一个ObjectNotFoundException。
7:
jsp的内置对象有哪些?
简述其作用。
1、request对象:
客户端的请求信息被封装在request对象中,通过它才能了解到客户的需求,然后做出响应。
2、response对象:
response对象包含了响应客户请求的有关信息。
3、session对象:
session对象指的是客户端与服务器的一次会话,从客户连到服务器的一个WebApplication开始,直到客户端与服务器断开连接为止。
4、out对象:
是向客户端输出内容常用的对象
5、page对象:
page对象就是指向当前JSP页面本身,有点象类中的this指针。
6、application对象:
application对象实现了用户间数据的共享,可存放全局变量。
它开始于服务器的启动,直到服务器的关闭,在此期间,此对象将一直存在;这样在用户的前后连接或不同用户之间的连接中,可以对此对象的同一属性进行操作;在任何地方对此对象属性的操作,都将影响到其他用户对此的访问。
服务器的启动和关闭决定了application对象的生命。
7、exception对象:
exception对象是一个例外对象,当一个页面在运行过程中发生了例外,就产生这个对象。
如果一个JSP页面要应用此对象,就必须把isErrorPage设为true,否则无法编译。
8、pageContext对象:
pageContext对象提供了对JSP页面内所有的对象及名字空间的访问,也就是说他可以访问到本页所在的SESSION,也可以取本页面所在的application的某一属性值,他相当于页面中所有功能的集大成者,它的本类名也叫pageContext。
9、config对象:
config对象是在一个Servlet初始化时,JSP引擎向它传递信息用的,此信息包括Servlet初始化时所要用到的参数(通过属性名和属性值构成)以及服务器的有关信息(通过传递一个ServletContext对象)。
8:
简述一下struts1。
Struts的工作流程:
在web应用启动时就会加载初始化ActionServlet,ActionServlet从
struts-config.xml文件中读取配置信息,把它们存放到各种配置对象
当ActionServlet接收到一个客户请求时,将执行如下流程.
-
(1)检索和用户请求匹配的ActionMapping实例,如果不存在,就返回请求路径无效信息;
-
(2)如果ActionForm实例不存在,就创建一个ActionForm对象,把客户提交的表单数据保存到ActionForm对象中;
-(3)根据配置信息决定是否需要表单验证.如果需要验证,就调用ActionForm的validate()方法;
-(4)如果ActionForm的validate()方法返回null或返回一个不包含ActionMessage的ActuibErrors对象,就表示表单验证成功;
-(5)ActionServlet根据ActionMapping所包含的映射信息决定将请求转发给哪个Action,如果相应的Action实例不存在,就先创建这个实例,然后调用Action的execute()方法;
-(6)Action的execute()方法返回一个ActionForward对象,ActionServlet在把客户请求转发给ActionForward对象指向的JSP组件;
-(7)ActionForward对象指向JSP组件生成动态网页,返回给客户;
9:
odbc和jdbc的区别。
JDBC与ODBC都可以实现类似的功能,但JDBC与ODBC的区别是他们的开发架构不同,其实现细节上也有所差异。
谈到JDBC与ODBC的区别,JDBC和ODBC其实都是用来连接数据库的启动程序。
ODBC中文姓名叫做开放数据库互联,是Microsoft性能开发的开放服务框架中有关数据库的一个的组成部份,它建立一组有关的规则,并帮助了一组对数据库访问的达标实际运用程序编程接口。
简单的说,ODBC那是实际运用程序与数据库系统停止交互的道具。
一个的给予ODBC的实际运用程序对数据库的操作不依赖于的数据库系统,不支持与数据库管理系统打交道,所有的数据库操作由对应的数据库系统的ODBC驱动程序来完成。
从而没成绩出现以同一的方法来处理所有的数据库。
而JDBC与ODBC类似,也是一个的实际运用程序与数据库停止通信的中间个人公司。
只是她们的开发商不相同而已。
JDBC是由Sun个人公司向联系型数据库系统厂商帮助JDBC的规格与需求;然后各大厂商遵循达标规格设计出符合自己数据库产业商品的JDBC驱动程序。
虽然JDBC与ODBC都没成绩出现类似的功能,但是她们的开发架构不相同,其出现细节上也有所差异。
为此数据库编程必需要了解这方面的差异,并在打工中根据实际情况来选取合适的数据库驱动程序。
JDBC与ODBC的区别:
JDBC的优点。
JDBC实际运用程序接口是JAVA程序语言内针对数据存取所涉及的程序开发接口,其内部是由许多类与接口构成。
而ODBC则是由C语言来开发的。
由于两者开发平台的不相同,为此开发不相同种各自的特点也就传递到了这连个数据库启动程序中。
根据笔者的了解,相对ODBC数据库启动程序来说,JDBC有如下几个优点。
若笔者概括的不够全方面的话,欢迎来补全。
1、JDBC要比ODBC简易理解。
学过编程的也许会有一个的直观的感想,那是JAVA语言要比C语言好学的多。
由于JAVA语言的设计思路是面向对象的,跟人的认识思维较量接近,为此较量简易被人接受,研究起来也相对简易一点。
而C语言则就较量抽象了,跟人的认识规则有确定的距离。
为此她们开发出来的产业商品也有类似的特点。
在ODBC中,虽然没成绩出现与数据库的交互,但是出现起来较量复杂。
如一个的简单的查询,也需求分为好几块内容;而在ODBC驱动程序内部再去停止整合,停止一些复杂的操作。
这不仅降低了数据库启动程序的性能,而且也给程序开发者开发实际运用程序带来了确定的负面效果。
而JDBC数据库启动程序在设计的时间就包含了大部份基本数据操作功能,为此在编写一些常规的数据库操作语句时,如查询、更新等等,其所需求的源代码比ODBC要少的多。
故从这方面来说,JDBC数据库启动程序要比ODBC简易理解。
2、JDBC数据库驱动程序是面向对象的,完全遵循JAVA语言的优良特性。
通常情况下,只要有JAVA车功能需设计基础的用户都没成绩在最短时间内了解JDBC驱动程序的架构,较量简易上手,没成绩轻而易举的开发出强悍的数据库实际运用程序。
而ODBC的话,由于其内部功能复杂,源代码编写要求高。
为此即使是一个的C语言的高手,仍然需求花费不少的时间去了解那个数据库启动程序;在编写源代码的时间,还离不开有关的参考书本。
3、JDBC的移植性要比ODBC要好。
通常情况下,安装完ODBC驱动程序之后,还需求经过确定的配置才能够应用。
而不相同的配置在不相同数据库服务器之间不能够通用。
也那是说,装一次需求配置一次。
但是JDBC数据库驱动程序则不相同。
假如采用JDBC数据库驱动程序的话,则知需求选取适当的JDBC数据库驱动程序,就不需求停止额外的配置。
在安装过程中,JDBC数据库驱动程序会自己完成有关的配置。
为此JDBC的移植性要比ODBC要好。
总之JDBC与ODBC都是数据库的启动程序,它们的本质是相同的,都是为了处理SQL语句而设计的。
而且JDBC在设计的时间,其也是在ODBC的基础上停止设计的,并保留了ODBC数据库驱动程序的部份功能。
或者说,咱们没成绩把JDBC看作是ODBC的另一个的高级版本也未尝不可。
JDBC主要在操作上、友好性上做了确定的改进。
JDBC与ODBC的区别:
什么时间采用JDBC?
虽然说JDBC数据库启动程序比ODBC来说具有不少的优点,但是也并不是说在所有的情况下采用JDBC数据库启动程序都能够起到不错的效果。
数据库编程还需求根据企业的实际实际运用环境来停止选取。
通常情况下,假如符合下面几种情况的任何一种,笔者意见采用JDBC数据库驱动程序。
一是采用Oracle个人公司的OracleJDeveloper10G来开发实际运用程序。
JDeveloper10G是Oracle个人公司帮助的一个的可视化的开发环境。
没成绩帮助数据库编程与开发方便的完成一些复杂的功能。
如数据库开发没成绩借那个道具来设计WEB实际运用程序的网页运行程序;如没成绩用来开发业务服务层组件;如没成绩在JSP与JClient实