租房系统项目

1、如果不把htype和district放在application里面的话,就用一个方法把他们装起来,放到request里,然后重定向到首页;

2、筛选条件的思路是把所有有关的表都通过多表查询连接起来吗,然后把筛选条件传进来,这里需要注意的问题是,需要判断是否为空,

3、

为什么持久态的对象会产生一种被照顾的效果(即对象改变时hibernate会产生一条语句)? 

   
    get()或load()查询后得到一个对象,hibernate会将该对象留个快照;
    hibernate在进行清理缓存时会进行脏检查,若该对象的数据发送变化hibernate就更新,没变化就算了;;

名词解析:
    脏检查:hibernate会对Session中持久态对象进行检测(将之前得到的对象与hibernater快照的对象进行比较),判断对象的数据是否发生了变化;
    清理缓存:就是进行脏检查,通过脏检查发现对象有变化就更新,没变化就算了;
              对于新增的对象,进行添加;

什么时候进行清理缓存?
    ①调用session的flush()方法时;
    ②事务提交的commit方法中也封装了flush();

注意:查询前会先查看缓存中是否有相同id的对象,若有,则会直接去缓存中找;若没有,才会去数据库中找
 
4、hql里面的是查询的是实体类,判断条件是对象的属性
5、设置一个List 类型,专门处理条件筛选功能
6、强转的时候可能发生异常,如果数值已经定死了,就不用处理异常,如果有可能为空的话,需要对异常进行处理
7、重复调用的可以用一个方法封装起来,但是要把request和response传到这个新增的方法中
8、为什么想到定义一个map呢,就是发现我们要把从页面拿到的数据传到dao层进行查询,我们要给一个容器把这些数据装起来,house类型不好操作,street类型也不好操作,所以就定义一个map了~要定义MAP的key、value泛型,通常为<String,Object>
9、动态查询!!!!!!!加一个恒等式    1=1,如果没有这个恒等式,当其中一个条件不满足的时候,不执行那条HQL语句,然后会多了一个and英文符号在那里,所以加一个恒等式,可以避免这种情况
10、为了防止sql注入的危险,所以不要 hqlStr += " and House.street.id"= map.get("street") 这样子写
      而是hqlStr += " and House.street.id=:street";   当做一个变量
11、Hql语句中的where写的不是列名,而是对象的属性
12、Iterator 用的是二级缓存,是代理对象,EL表达式只能取一次,不能取两次
13、 query.setProperties(map);这里的作用是把map放到query中,和createquery中的sqlStr语句对应起来
14、BigDecimal.intValue():转换成int类型(Object类型不可以)
15、做级联功能:把区的号码甩到后面然后做ajax请求?
 
17、做级联操作的时候,因为用iterator取到的数据代理对象,要用script把这个对象写到option中,然后用innerHTML放进去
18、老师关于取二级级联问题的其中一个思路是:取到东西然后写一个JSON格式的字符串,然后用eval解析
19、另外一个思路是把district id用ajax传到servlet那里处理,思路是:封装一个url,然后新建一个xhr对象,然后open,然后onreadystatechange,send,onreadystatechange后面会接上一个方法,方法里写的是解析eval(xhr.responseText)
20、其实ajax就是相当于一种传输数据的方式,和form和a 的href是差不多的,而且可以返回数据,通过xhr.responseText可以取到这些数据,所以在servlet中要解析这些数据,拼接成一个字符串,而且需要在这个Json中加一个空的键值对
21、while (streetIterator.hasNext()){
            Street street = streetIterator.next();
            jsonSession = jsonSession + "{'key':'" + street.getId() + "','value':'" + street.getName()+"'},";
        }
应该先用一个对象把.next()保存起来,然后再用这个对象去调用getId()和getName()方法,不能直接把streetIterator.next()直接甩进去,因为每次都会调用一次,这样容易造成读不到下一个元素
22、HQL语句写where语句的时候,where判断条件里应该把对象写进去  对象.属性 = 传进来的参数
23、HQL语句中的对象查询的时候要用别名来,只要起了别名,所有的都要取别名
24、My97的路径!项目名前面需要有/哦!
 <script type="text/javascript" src="/renthouse/js/My97DatePicker/WdatePicker.js"></script>
οnclick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss'})"
 
25、input {background-color:#ff0000;opacity:0.5;}这种方式不但输入框背景色变成50%透明度的红色,而且输入框的文字也变成50%的透明度了
      background:rgba(0,0,0,0.3);这种方式只会背景编程透明
26、除了new还有什么创建实例的方法?工厂模式、控制反转?
    1.用new语句创建对象,这是最常见的创建对象的方法。

     2.运用反射手段,调用java.lang.Class或者java.lang.reflect.Constructor类的newInstance()实例方法。

     3.调用对象的clone()方法。

     4.运用反序列化手段,调用java.io.ObjectInputStream对象的 readObject()方法。
27、equals方法重写的时候要用反射来判断一下是否真的存在这个对象,把cm的代码找出来
28、
 

转载于:https://www.cnblogs.com/ailsalin/p/6714198.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值