[讨论] 今天去面试了,有三个题目问倒我了,写出来大家做做!
1、有一个表有姓名,性别,年龄三个属性,表用hibernate进行表映射。显示页面显示表的所有属性,如下:
姓名 性别 年龄
name sex age
那么我要动态增加一个属性值,如:地址;怎样在表中增加一个属性并且映射文件也要同时修改,映射文件要生效。有什么好办法??(用SSH实现)
2、spring有IOC模式,如果不用spring,请设计一个与spring的IOC模式一样功能的代码??
3、有两个表,表的属性都有:id,name,sex,age;第一个表有700条数据,第二个表有500条数据,其中两个表中有300条是id相同的,如何把两个表中不相同的数据取出来,面试官说只能用exist关键字才能做到?还有其它好办法吗?
第一题:如果需动态添加属性,那么一开始就要设计好
http://www.iteye.com/topic/197752
http://www.blogjava.net/canonical/archive/2008/03/17/59703.html
http://www.blogjava.net/sparkyang/archive/2005/09/12/12782.html
http://blog.youkuaiyun.com/ajun_studio/article/details/6807181
第二题:了解spring ioc的原理
http://blog.youkuaiyun.com/it_man/article/details/4402245
简单实现:http://chenguanwei2008.iteye.com/blog/361558
第三题:
- --建表
- create table D_TEST1
- (
- ID NUMBER(10),
- NAME VARCHAR2(30),
- age NUMBER(3),
- sex NUMBER(1)
- )
- create table D_TEST2
- (
- ID NUMBER(10),
- NAME VARCHAR2(30),
- age NUMBER(3),
- sex NUMBER(1)
- )
- --not in 实现
- select *
- from (select *
- from d_test1
- union
- select * from d_test2) t1
- where id not in (select id
- from d_test1
- intersect
- select id from d_test2);
- --minus 与 union 实现
- (SELECT * FROM d_test1
- MINUS
- SELECT * FROM d_test2
- )
- UNION ALL
- (
- SELECT * FROM d_test2
- MINUS
- SELECT * FROM d_test1
- )
- -- exists 实现
- select *
- from (select *
- from d_test1
- union
- select * from d_test2) t1
- where not exists (select * from (select id
- from d_test1
- intersect
- select id from d_test2) t2 where t1.id = t2.id);
--建表
create table D_TEST1
(
ID NUMBER(10),
NAME VARCHAR2(30),
age NUMBER(3),
sex NUMBER(1)
)
create table D_TEST2
(
ID NUMBER(10),
NAME VARCHAR2(30),
age NUMBER(3),
sex NUMBER(1)
)
--not in 实现
select *
from (select *
from d_test1
union
select * from d_test2) t1
where id not in (select id
from d_test1
intersect
select id from d_test2);
--minus 与 union 实现
(SELECT * FROM d_test1
MINUS
SELECT * FROM d_test2
)
UNION ALL
(
SELECT * FROM d_test2
MINUS
SELECT * FROM d_test1
)
-- exists 实现
select *
from (select *
from d_test1
union
select * from d_test2) t1
where not exists (select * from (select id
from d_test1
intersect
select id from d_test2) t2 where t1.id = t2.id);