10.14(南京君度)总结

简答题

一,doget与dopost的区别,简述servlet的生命周期

在使用表单提交数据到服务器的时候有两张方式可共选择,一个是post一个是get。可在<form>中的method属性中指定提交的方式。如:<formaction="inputForm"method="get">,如果不指定method属性,则会默认该属性为”get”方式。

Get和post都能够提交数据,那么他们有什么不同呢?

不同点一:

通过get方式提交的数据有大小的限制,通常在1024字节左右。也就是说如果提交的数据很大,用get方法就可需要小心;而post方式没有数据大小的限制,理论上传送多少数据都可以。

不同点二:

通过get传递数据,实际上是将传递的数据按照”key,value”的方式跟在URL的后面来达到传送的目的的;而post传递数据是通过http请求的附件进行的,在URL中并没有明文显示。

详情可见:http://blog.csdn.net/luoweifu/article/details/7865243


二,简述servlet的生命周期

}载入:第一次请求的时候被初始化,只一遍
}初始化:调用init方法,只一遍
}执行:每个请求,new一个新的线程,调用一遍service super.service doGet/doPost
不要 在servlet中设计成员变量(多个请求线程共享,会发生资源冲突问题!)。
doGet,doPost常见异常:
HTTPStatus 405 - HTTP method POST(GET) isnot :
supportedby this URL:增加doPost()或doGet()方法即可。
}销毁卸载前调用destroy方法。子类servlet一般不需要覆盖这个方法。
}
} 在非分布的情况下 , 通常一个 Servlet 在服务器中有一个实例

详情可见: http://www.cnblogs.com/liuling/archive/2012/07/14/2012-7-14.html

三,单例模式的定义,尝试写出你所知道的写法

首先,单例模式是对象的创建模式之一,此外还包括工厂模式。单例模式的三个特点:

1,该类只有一个实例

2,该类自行创建该实例(在该类内部创建自身的实例对象)

3,向整个系统公开这个实例接口


详情可见:http://www.cnblogs.com/rush/archive/2011/10/30/2229565.html




数据库


Student(S#,Sname,Sage,Ssex) 

学生表

  

Course(C#,Cname,T#) 

课程表

  

SC(S#,C#,score) 

成绩表

  

Teacher(T#,Tname) 

教师表

  

 

问题:

  

1

、查询“

001

”课程比“

002

”课程成绩高的所有学生的学号;

  

  

select

 a.S# 

from

 (

select

 s#,score 

from

 SC 

where

 C#

=

'001'

) a,

(

select

 s#,score  

  

from

 SC 

where

 C#

=

'002'

) b  

  

where

 a.score

>

b.score 

and

 a.s#

=

b.s#;  

2

、查询平均成绩大于

60

分的同学的学号和平均成绩;

  

    

select

 S#,

avg

(score)  

    

from

 sc  

    

group

 

by

 S# 

having

 

avg

(score) 

>

60

;  

3

、查询所有同学的学号、姓名、选课数、总成绩;

  

  

select

 Student.S#,Student.Sname,

count

(SC.C#),

sum

(score)  

  

from

 Student 

left

 

Outer

 

join

 SC 

on

 Student.S#

=

SC.S#  

  

group

 

by

 Student.S#,Sname  

4

、查询姓“李”的老师的个数;

  

  

select

 

count

(

distinct

(Tname))  

  

from

 Teacher  

  

where

 Tname 

like

 

'

%'

;  

5

、查询没学过“叶平”老师课的同学的学号、姓名;

  

    

select

 Student.S#,Student.Sname  

    

from

 Student   

    

where

 S# 

not

 

in

 (

select

 

distinct

( SC.S#) 

from

 SC,Course,Tea

cher 

where

  SC.C#

=

Course.C# 

and

 Teacher.T#

=

Course.T# 

and

 Teache

r.Tname

=

'

叶平

'

);  


6

、查询学过“

001

”并且也学过编号“

002

”课程的同学的学号、姓名;

  

  

select

 Student.S#,Student.Sname 

from

 Student,SC 

where

 Studen

t.S#

=

SC.S# 

and

 SC.C#

=

'001'

and

 

exists

Select

 

*

 

from

 SC 

as

 SC_2 

where

 SC_2.S#

=

SC.S# 

and

 SC_2.C#

=

'002'

);  

7

、查询学过“叶平”老师所教的所有课的同学的学号、姓名;

  

  

select

 S#,Sname  

  

from

 Student  

  

where

 S# 

in

 (

select

 S# 

from

 SC ,Course ,Teacher 

where

 SC.C#

=

C

ourse.C# 

and

 Teacher.T#

=

Course.T# 

and

 Teacher.Tname

=

'

叶平

'

 

grou

p

 

by

 S# 

having

 

count

(SC.C#)

=

(

select

 

count

(C#) 

from

 Course,Teach

er  

where

 Teacher.T#

=

Course.T# 

and

 Tname

=

'

叶平

'

));  

8

、查询课程编号“

002

”的成绩比课程编号“

001

”课程低的所有同学的

学号、姓名;

  

  

Select

 S#,Sname 

from

 (

select

 Student.S#,Student.Sname,score ,

(

select

 score 

from

 SC SC_2 

where

 SC_2.S#

=

Student.S# 

and

 SC_2.C#

=

'002'

) score2  

  

from

 Student,SC 

where

 Student.S#

=

SC.S# 

and

 C#

=

'001'

) S_2 

wher

e

 score2 

<

score;  

9

、查询所有课程成绩小于

60

分的同学的学号、姓名;

  

  

select

 S#,Sname  

  

from

 Student  

  

where

 S# 

not

 

in

 (

select

 Student.S# 

from

 Student,SC 

where

 S.S#

=

SC.S# 

and

 score

>

60

);  

10

、查询没有学全所有课的同学的学号、姓名;

  

    

select

 Student.S#,Student.Sname  

    

from

 Student,SC  

    

where

 Student.S#

=

SC.S# 

group

 

by

  Student.S#,Student.Sname 

h

aving

 

count

(C#) 

<

(

select

 

count

(C#) 

from

 Course);



详情可见:
详情可见:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值