java葵花宝典下数据库.docx
《java葵花宝典下数据库.docx》由会员分享,可在线阅读,更多相关《java葵花宝典下数据库.docx(20页珍藏版)》请在冰点文库上搜索。
java葵花宝典下数据库
数据库方面:
1.存储过程和函数的区别存储过程是用户定义的一系列sql语句的集合,涉及特定表或其它对象的任务,用户可以调用存储过程,而函数通常是数据库已定义的方法,它接收参数并返回某种类型的值并且不涉及特定用户表。
2事务是什么?
事务是作为一个逻辑单元执行的一系列操作,一个逻辑工作单元必须有四个属性,称为ACID(原子性、一致性、隔离性和持久性)属性,只有这样才能成为一个事务:
原子性,事务必须是原子工作单元;对于其数据修改,要么全都执行,要么全都不执行。
一致性,事务在完成时,必须使所有的数据都保持一致状态。
在相关数据库中,所有规则都必须应用于事务的修改,以保持所有数据的完整性。
事务结束时,所有的内部数据结构(如B树索引或双向链表)都必须是正确的。
隔离性,由并发事务所作的修改必须与任何其它并发事务所作的修改隔离。
事务查看数据时数据所处的状态,要么是另一并发事务修改它之前的状态,要么是另一事务修改它之后的状态,事务不会查看中间状态的数据。
这称为可串行性,因为它能够重新装载起始数据,并且重播一系列事务,以使数据结束时的状态与原始事务执行的状态相同。
持久性,事务完成之后,它对于系统的影响是永久性的。
该修改即使出现系统故障也将一直保持。
3游标的作用?
如何知道游标已经到了最后?
游标用于定位结果集的行,通过判断全局变量@@FETCH_STATUS可以判断是否到了最后,通常此变量不等于0表示出错或到了最后。
4触发器分为事前触发和事后触发,这两种触发有和区别。
语句级触发和行级触发有何区别。
事前触发器运行于触发事件发生之前,而事后触发器运行于触发事件发生之后。
通常事前触发器可以获取事件之前和新的字段值。
语句级触发器可以在语句执行前或后执行,而行级触发在触发器所影响的每一行触发一次。
你知道Object类中有那些方法?
(随意说几个即可)
1`把一个对象作为一个方法的参数,在该方法中对该对象的属性做了修改,请问在外部调用该方法后,传入方法的对象是否发生了变化?
例如:
假设stephen是一个类intchangevalue(StephenStephen)Stephena=Spublicstaticvoidmain(stringc()args)StephenStephen=newStephen()Int;P=changevalue(Stephen);请问对象stephen变化了吗?
许天岭面试题
1、在Jdbc进行数据库调用时,你经常采用什么方式执行sql语句?
为什么不用其他方式(比较一下即可)
2、int类型在java中有多少位?
(如果面试题目中有这样的问题,不是公司太牛就是公司太差)
3、你用过线程吗?
请启动4个线程对一个静态变量进行加1操作。
4、线程是如何启动的?
5、每个类实力化时都调用父类的构造函数吗?
如果是,那么都调用object类的构造函数吗?
6、你懂得Ftp协议吗?
如果不懂请问我告诉你Ftp协议命令格式及数据包的解析方法,你能用多长时间用java基本apI搞定一个ftp客户端程序(是这样的问题主要看你个人学习能力,一般也就是一人五天的工作量,不必要害怕,一般他不会给你五天做的,就是想看一下你的自信心及对工作的理解能力)
7、你知道java与C的通信?
吗你会用那些协议进行通信?
(其实也就是问socret通信)
8、请问java中的网络通信有那些方式,有什么区别?
9、Stringa=“”ForlimitI=0;I<100000;I++)A=a+“A”把字符串成“A”连接100000次,上面方法不够好,请优化上面代码?
(采用stringBuffer进行优化)
10、EJB的调用过程,请叙述一下。
对于EJB的面试,业界基本上是假的,咱们学的东西是够应付,但如果你能说的很有条理,你的档次就高了
11、如果遇到英文试题,也就是平时经常见的调试信息不用害怕
12、你在jsp中打印是如何实现的?
还要说你用系统的打印方法,也就是说,在JSP中若有很多内容,而我只需要打印其中一个表格,是如何实现的?
13、你用javascript做过树型菜单吗?
(这样的问题你应该说没有做国,但是会用,当然你要是真做过也很好,那么将来你的就是做JSP界面的高手)
14、WEB服务器启动时,系统需要做一些初始化的工作,这些工作该怎么处理,在structs下又该怎样处理(不要只会用structs,而忘记了传统方式,外面还有很多项目没有人会用structs)
15、对structs,相信大家都很熟悉,但不要忘记传统的开发模式。
16、你写过tag吗?
17、你做过在jsp页面上下载一个文本文件吗?
请描述你的方法?
18、你在数据库编程过程中,面临的数据量有多大?
如果有一个项目中每天有三张结构完全相同的表,一个365天天天如此,每张表记录在100万条以上,现需要分页查询,根据这样的项目,采用你用过的分页原理,行吗?
(这是考的是性能,一般的分页方式不行,遇到这样的题,你可以说,你需要了解更详细的业务,认真的研究一下,是可以的,当然,如果你认为你的方法可以,可以对这样的问题进行交流,等等。
这样的题,说不好也行,不影响你的面试,主要是看一下你对问题的态度)
19、你用java调用过的存储过程吗?
当一个存储过程有返回记录集时,该怎样在java中返回?
20、应该对oracle有所了解,对一些数据库的名词,应该知道词的解释。
分页一前提希望最新的纪录在开头给你的表建立查询:
表:
mytable
查询:
createorreplaceviewasmytable_viewfrommytableorderbyiddesc其中,最好使用序列号createsequencemytable_sequence来自动增加你的纪录id号二源程序<%StringsConn="你的连接"
Class.forName("oracle.jdbc.driver.OracleDriver");Connectionconn=DriverManager.getConnection(sConn,"你的用户名","密码");
Statementstmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
Statementstmtcount=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
ResultSetrs=stmt.executeQuery("select*frommytable_view");Stringsqlcount="selectcount(*)frommytable_view";ResultSetrscount=stmtcount.executeQuery(sqlcount);intpageSize=你的每页显示纪录数;introwCount=0;//总的记录数while(rscountintpageCount;//总的页数intcurrPage;//当前页数
StringstrPage;strPage=request.getParameter("page");if(strPage==null){currPage=1;}else{
currPage=Integer.parseInt(strPage);if(currPage<1)currPage=1;}pageCount=(rowCount+pageSize-1)/pageSize;if(currPage>pageCount)currPage=pageCount;intthepage=(currPage-1)*pageSize;
intn=0;rs.absolute(thepage+1);while(n<(pageSize)&&!
rs%><%rs.close();rscount.close();stmt.close();stmtcount.close();conn.close();%>//下面是第几页等
condition=<%=condition%>&type=<%=type%>"onSubmit="returntestform(this)">第<%=currPage%>页共<%=pageCount%>页共<%=rowCount%>条
<%if(currPage>1){%>condition=<%=condition%>&type=<%=type%>">首页<%}%>
<%if(currPage>1){%>page=<%=currPage-1%>&condition=<%=condition%>&type=<%=type%>">上一页<%}%><%if(currPagepage=<%=currPage+1%>&condition=<%=condition%>&type=<%=type%>">下一页<%}%>
<%if(pageCount>1){%>page=<%=pageCount%>&condition=<%=condition%>&type=<%=type%>">尾页<%}%>跳到9px">页
9px">希望大家喜欢!
!
!
!
!
!
托普集团程序员面试试一、选择题(每题1分,共20分)1.下列那种语言是面向对象的(C)
A.CB.PASCALC.C++D.FORTRAN77
2.在Windows9x下,可以进入MS-D0S方式。
当在DOS提示符下键入(B)命令后,系统将退出MS-DOS方式,返回到WIndows方式。
A.CLOSEB.EXITC.QUITD.RETURN
3.下面哪些是面向对象的基本特性:
(ABC)A多态B继承C封装D接口
4.在C++中经常要进行异常处理,下面哪些是异常处理常用到的关键词:
(ABC)
AtryBcatchCthrowDbreakEcontiue
5.数据库技术中的“脏数据',是指(C)的数据。
A.错误B.回返C.未提交D.未提交的随后又被撤消
6.TCP/IP是一种(A,B)A.标准B.协议C.语言D.算法
7.下面有关计算机操作系统的叙述中,不正确的是(B)A操作系统属于系统软件B操作系统只负责管理内存储器,而不管理外存储器CUNIX是一种操作系统D计算机的处理器、内存等硬件资源也由操作系统管理
8.微机上操作系统的作用是(D)A解释执行源程序B编译源程序
C进行编码转换D控制和管理系统资源
9.下列存储器中存取速度最快的是(A)A内存B硬盘C光盘D软盘
10.在计算机中,—个字节是由多少个二进制位组成的(B)A.4B.8C.16D.24
11.存储16×16点阵的一个汉字信息,需要的字节数为(A)A32B64C128D256
12.以下选项中合法的字符常量是(BC)A."B"B.'\010'C.68D.D
13.假定x和y为double型,则表达式x=2,y=x+3/2的值是(D)A.3.500000B.3C.2.000000D.3.000000
14.以下合法的赋值语句是(BCD)//InC++,choiceDalsoiscorrect,butinClanguage,Diswrong.
A.x=y=100B.d--;C.x+y;D.c=int(a+b);
15.设正x、y均为整型变量,且x=10y=3,则以下语句pprintf("%d,%d\n",x--,--y);的输出结果是(D)
A.10,3B.9,3C.9,2D.10,2
16.x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是(B)
A.INPUTx、y、z;B.scanf("%d%d%d",&x,&y,&z);C.scanf("%d%d%d",x,y,z);D.read("%d%d%d",&x,&y,&z);
17.以下数组定义中不正确的是(D)A)inta[2][3];B)intb[][3]={0,1,2,3};C)intc[100][100]={0};D)intd[3][]={{1,2},{1,2,3},{1,2,3,4}};
18.以下程序的输出结果是(A)main(){inta[4][4]={{1,3,5},{2,4,6},{3,5,7}};
printf("%d%d%d%d\n",a[0][3],a[1][2],a[2][1],a[3][0];
}A)0650B)1470C)5430D)输出值不定
19以下程序的输出结果是(B)main(){charst[20]="hello\0\t\\\";printf(%d%d\n",strlen(st),sizeof(st));
}A)99B)520C)1320D)2020
20.当调用WindowsAPI函数InvalidateRect,将会产生什么消息(A)A:
WM_PAINTB:
WM_CREATEC:
WM_NCHITTESTD:
WM_SETFOCUS
二、填空题(每题3分,共30分)
1.请列举当前一些当前流行的数据库引擎,SQLSERVER,ORACLE,BDE,MicrosoftJet。
2.为了将当前盘当前目录中的所有文本文件(扩展名为.TXT)的内容打印输出,正确的单条DOS命令为COPY*.TXTPRN。
3.计算机网络分为局域网和广域网,因特网属于广域网。
4.设y是int型变量,请写出判断y为奇效的关系表达y%2!
=0。
5.设有以下程序:
main(){intn1,n2;scanf("%d",&n2);while(n2!
=0){n1=n2%10;n2=n2/10;printf("%d",n1);}}
程序运行后,如果从键盘上输入1298;则输出结果为8921。
6.以下程序运行后的输出结果是:
9876876
main(){chars[]="9876",*p;for(p=s;p
7.以下函数的功能是:
求x的y次方,请填空。
doublefun(doublex,inty){inti;doublez;for(i=1,z=x;i8.以下程序段打开文件后,先利用fseek函数将文件位置指针定位在文件末尾,然后调用ftell函数返回当前文件位置指针的具体位置,从而确定文件长度,请填空。
FILE*myf;longf1;myf=fopen("test.t","rb");
fseek(myf,0,SEEK_END);f1=ftell(myf);fclose(myf);printf("%d\n",f1);
9.以下程序输出的最后一个值是120。
intff(intn){staticintf=l;f=f*n;returnf;}main(){inti;for(I=1;I<=5;I++printf("%d\n",ff(i));)
10.以下程序运行后的输出结果是52main(){inti=10,j=0;do{j=j+i;i--;while(i>2);printf("%d\n",j);}
三、判断题(每题2分,共20分)
1:
动态链结库不能静态调用。
错误
2:
UDP是面向无连接的网络连接正确
3:
ASP是一种数据库引擎错误
4:
队列是先进后出。
错误
5:
Weblogic是分布式应用服务器。
正确
6:
TCP,UDP都是传输层的协议。
正确
7:
两个线程不能共存于同一地址空间错误
8:
JAVA是一种跨平台的开发工具正确
9.在WINDOWS操作系统中对外设是以文件的方式进行管理正确
10.虚拟内存实际是创建在硬盘上的正确
四、问答题(每题10分,共30分)
1.写出从数据库表Custom中查询No、Name、Num1、Num2并将Name以姓名显示、计算出的和以总和显示的SQL。
SELECTNo,NameAS‘姓名’,Num1,Num2,(Num1+Num2)AS‘总和’
FROMCustom
2.何为“事务处理”,谈谈你对它的理解。
事务处理是指一个单元的工作,这些工作要么全做,要么全部不做。
作为一个逻辑单元,必须具备四个属性:
自动性、一致性、独立性和持久性。
自动性是指事务必须是一个自动的单元工作,要么执行全部数据的修改,要么全部数据的修改都不执行。
一致性是指当事务完成时,必须使所有数据都具有一致的状态。
在关系型数据库中,所有的规则必须应用到事务的修改上,以便维护所有数据的完整性。
所有的内部数据结构,在事务结束之后,必须保证正确。
独立性是指并行事务的修改必须与其他并行事务的修改相互独立。
一个事务看到的数据要么是另外一个事务修改这些事务之前的状态,要么是第二个事务已经修改完成的数据,但是这个事务不能看到正在修改的数据。
3.常用的数据结构有哪些?
请枚举一些。
(不少于5个)链表、堆栈、二叉树、队列、图、堆,集合。
4.什么是OOP?
什么是类?
请对比类和对象实例之间的关系。
OOP是Object_orientedProgramming(面向对象编程)的缩写。
这主要是为了区别于以前的面向过程的程序设计!
指的是用对象的观点来组织与构建系统,它综合了功能抽象和数据抽象,这样可以减少数据之间的耦合性和代码的出错几率。
使用面向对象编程技术可以使得软件开发者按照现实世界里人们思考问题的模式编写代码,可以让软件开发者更好地利用代码直接表达现实中存在的对象,将问题空间直接映射到解空间!
类:
即class在面向对象的程序设计中,专门用“类”来表示用户定义的抽象数据类型(user_definedabstracttype)。
它将具有相同状态、操作和访问机制的多个对象进行了抽象。
类具有继承、数据隐藏和多态三种主要特性。
利用类的这三种特性可以更好地表示现实世界中事物。
类是同一类对象实例的共性的抽象,对象是类的实例化。
对象通常作为计算机模拟思维,表示真实世界的抽象,一个对象就像一个软件模块,可以为用户提供一系列的服务---可以改变对象的状态、测试、传递消息等。
类定义了对象的实现细节或数据结构。
类是静态的,对象是动态的,对象可以看作是运行中的类。
类负责产生对象,可以将类当成生产对象的工厂(Objectfactory).
5.有一组数字(3,10,6,8,98,22),请编程排序(升降序皆可),语言不限,算法不限,但须注明是何种算法。
//下面使用简单的冒泡法进行排序!
#include"iostream.h"templateclassCBubble{
private:
type*pArray;intsize;public:
CBubble(typea[],intsizeArray);voidsort();voiddisplay();};
templateCBubble:
:
CBubble(typea[],intsizeArray)
{pArray=a;size=sizeArray/sizeof(type);}
templatevoidCBubble:
:
sort(){typetemp;for(inti=0;ipArray[j+1])//升序{temp=pArray[j+1];pArray[j+1]=pArray[j];pArray[j]=temp;}}
templatevoidCBubble:
:
display(){for(inti=0;ivoidmain(void){inta[]={3,10,6,8,98,22};CBubbleintData(a,sizeof(a));cout<<"Theoriginaldataare:
"<"<}
SQL//书
//书
connectionconnconn.setAuto(false)//表示手动提交mit//提交conn.rollback();//事务回滚
-内联接usepubsselecta.au_fname,a.au_lname,p.pub_namefromauthorsainnerjoinpublisherspona.city=p.cityorderbyp.pub_nameasc,a.au_lnameasc,a.au_fnameasc
--左外联接usepubsselecta.au_fname,a.au_lname,p.pub_namefromauthorsaleftjoinpublishersp
ona.city=p.cityorderbyp.pub_nameasc,a.au_lnameasc,a.au_fnameasc
-使用子查询USEpubsGOSELECTdistinctpub_nameFROMpublishersWHEREpub_idIN(SELECTpub_idFROMtitlesWHEREtype='business')GO
--如果平均价格少于$30,WHILE循环就将价格加倍,然后选择最高价。
--如果最高价少于或等于$50,WH