java杂记

    自定义异常使用方法:定义异常

    

package com.hrborse.application.exception;
/**
 * 自定义登录异常类
 * @author 王庆
 *
 */
public class UserLoginException extends  Exception{

    
    private static final long serialVersionUID = 1L;
    public UserLoginException() {
    }

    public UserLoginException(String message) {
        super(message);
    }

    public UserLoginException(Throwable cause) {
        super(cause);
    }

    public UserLoginException(String message, Throwable cause) {
        super(message, cause);
    }
}

  异常在service层抛出就好,如检测用户名账号密码,首先根据账号查找(这个按照索引查找效率更好,不可用用户名和密码同时做条件查询),如果查出的为空说明用户名不存在

则抛出异常,异常信息注明用户名不存在,否则在拿得到的对象获取密码属性与入参密码对比,成功则正确登录,失败抛出用户名密码错误异常.在Action捕捉到服务层的异常后传递到前台显示.

     最近发现工程越写越烦,之前没有做好架构的弊端在此显现了,维护起来相当困难,OH MY GOD 为何要我这个未毕业的实习生承担几乎全部的后台任务。我只能用空间换时间了,话说这也是一种方法,说到这正好把那个单例模式的两个方法写下:

饿汉式,空间换时间

  public Class  A{

 private  A a=new A();

private A(){

}

public static A getA(){

return a;

}

}

}

懒汉式  空间换时间

  public Class  A{

 private  A a=null;

private A(){

}

public static A getA(){

if(a==null){

a=new A();

}

return a;

}

}

}所谓懒汉就是说用你的时候才创建你这个对象,跟hibernate里面对象的延迟加载时一个道理的说.

 再记录下jdbc的基本步骤,虽然这都是基础,但也要牢牢掌握   加载驱动   class.FRONAME("jar包" ) 获取链接,创建preparestatemented 执行语句,获得结果集,处理结果集,关闭结果集,关闭preparestatemented,关闭连接。

还有个好东西就是连接池 Threadlocal 其实这个是线程局部变量实现的一种特殊方法,java没有在语法上使用线程局部变量却弄了这个方法,好吧,这个东西和异步sychronized的区别就是它也是用空间换的时间,就是说它管理了一些变量,对于线程来说如果要使用这变量就给它分配一个副本,这样就是传说中的"共产"人人都有资源,所以不会有"阶级斗争"

线程安全就得到了保障,这里理解不知道到不到位,想想这程序的思想本身就是模拟社会的,怪怪,果然妙哉.

posted @ 2013-03-25 23:51  塔塔兔  阅读(163)  评论(0编辑  收藏  举报