[讨论] 今天去面试了,有三个题目问倒我了,写出来大家做做!
wenjinglian
2012-07-24
第一题:如果需动态添加属性,那么一开始就要设计好
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 |
|
yjl49
2012-07-24
第三个 select id,name,sex,age from ( select * from tableA union select * from tableB ) group by id,name,sex,age having count(*)<2 |
|
kevincollins
2012-07-24
问题3:
select id, code from (select * from a1 union all select * from a2) a group by id, code having count(id) = 1 或 --解1-- select * from a1 where a1.id not in (select a2.id from a2) union all select * from a2 where a2.id not in (select a1.id from a1) |
|
WHOINSKY
2012-07-24
用注解应该行
|
|
直线曲线
2012-07-24
针对第一题:首先需要确认是否真的要改变表的结构?
若果不是:可以采用添加“新属性表”“新属性值表”以及几个关联表的方式来实现需求。 之前做过的一个需求:每个用户可以在任意表中添加专属于自己的属性。 |
|
shuaiji
2012-07-25
huangshanghua 写道 1、有一个表有姓名,性别,年龄三个属性,表用hibernate进行表映射。显示页面显示表的所有属性,如下:
姓名 性别 年龄 name sex age 那么我要动态增加一个属性值,如:地址;怎样在表中增加一个属性并且映射文件也要同时修改,映射文件要生效。有什么好办法??(用SSH实现) 2、spring有IOC模式,如果不用spring,请设计一个与spring的IOC模式一样功能的代码?? 3、有两个表,表的属性都有:id,name,sex,age;第一个表有700条数据,第二个表有500条数据,其中两个表中有300条是id相同的,如何把两个表中不相同的数据取出来,面试官说只能用exist关键字才能做到?还有其它好办法吗? 这个第一题:可以设计一个无意义N 列的表,用配置文件去对应。C1=NAME,C2=SEX,等等。这样可以随意增加列,然后动态RELOAD 配置文件。 |
|
FrankTiger
2012-07-25
第三题:
抽象工厂模式和单例模式实现 抽象类 package com.factory; import com.singleton.Singleton; public abstract class AbstractFactory { public abstract Singleton createSingleton(); } 工厂类 package com.factory; import com.singleton.Singleton; public class Factory extends AbstractFactory{ @Override public Singleton createSingleton() { return Singleton.getInstance(); } } 单例类 package com.singleton; public class Singleton { private static Singleton instance = null; public Singleton(){ } public static synchronized Singleton getInstance(){ if(instance == null){ instance = new Singleton(); } return instance; } public String testSingleton(){ return "Hello Singleton"; } } 测试类 package com.test; import com.factory.Factory; import com.singleton.Singleton; public class Test { public static void main(String[] args){ Factory factory = new Factory(); Singleton s = factory.createSingleton(); System.out.print(s.testSingleton()); } } 单例中也可以使用ThreadLocal实现多线程,希望抛砖引玉。 |
|
zbzbzb022
2012-07-25
可以通过hibernate的动态模型实现。
具体实现办法就是将Map作为一个持久化对象,可以对Map进行动态添加key-value,同时要注意在***.hbm.xml中,将name变成entity-name。 与数据库同步时使用重载的save方法。即:save(String str,Object obj) |
|
huangshanghua
2012-07-26
坏孩子 写道 charles751 写道 问题1:
1.jsp页面提供添加参数的界面。 可以包含要添加的字段值、映射名称、表名、字段类型、映射类型等配置信息 2.后台处理 2.1添加字段到数据库指定的表 2.2添加配置信息到hbm.xml中。 3.映射文件生效 可以重新load下hibernate的context 你敢在生产环境下reload吗? 第一题你把表设计成key value的方式就可以了,就是效率低一点,不知道对方是要考数据库还是hibernate 第二题最简单的就直接用反射了 把表设计成key、value方式: 我的理解: 设计两个表:一个表A设计成key、value,另一个表B就是题目标那个表。那么表A用hibernate进行映射,表B不映射,动态增加一个表B属性时,在表A中增加一条相应属性记录。然后表B只能用JDBC查找数据了。 |
|
huangshanghua
2012-07-26
shuaiji 写道 huangshanghua 写道 1、有一个表有姓名,性别,年龄三个属性,表用hibernate进行表映射。显示页面显示表的所有属性,如下:
姓名 性别 年龄 name sex age 那么我要动态增加一个属性值,如:地址;怎样在表中增加一个属性并且映射文件也要同时修改,映射文件要生效。有什么好办法??(用SSH实现) 2、spring有IOC模式,如果不用spring,请设计一个与spring的IOC模式一样功能的代码?? 3、有两个表,表的属性都有:id,name,sex,age;第一个表有700条数据,第二个表有500条数据,其中两个表中有300条是id相同的,如何把两个表中不相同的数据取出来,面试官说只能用exist关键字才能做到?还有其它好办法吗? 这个第一题:可以设计一个无意义N 列的表,用配置文件去对应。C1=NAME,C2=SEX,等等。这样可以随意增加列,然后动态RELOAD 配置文件。 这样不会很浪费? |