宿管系统项目总结

1.Bean层属性类型尽量与数据库一致,有多种情况可以使用Int,若只有2中情况,如性别,可以用Boolean.

2.在Dao层中,注意各种方法与数据库值的联系,可以使用conn.setAutoCommit(false)和conn.commit()来设置事务,保证逻辑上的正确性。在从数据库得到数据库时要得到所有属性,包括导航属性所有数据,坚决不能偷懒!

3.判断字符串是否为空的方法:if(str==null||str.trim().equals("").注意判断是否为空必须写在前面,否则会由于短路原则导致出现逻辑错误。

4.当使用数据库中的数据进行展示,而非修改时,Date可以使用sql包中的。若需要修改,则需要进行转换成unit包中的。

5.在使用正则表达式时,需用“^$”进行结尾。

6.匹配汉字的正则表达式为[u4e00-u9fa5]。

7.将字符串转换成Int的方法int n=Integer.parseInt(str).注意该方法若str内容不是数字则会出错,此时需用try,catch来避免错误,若无法转换抛出异常。

8.在使用lovo 张老师做的包时,下拉列表中传的集合可以使用泛型直接传对象进去,然后在其对于的Bean层重写toString方法来得到下拉列表所要的属性。

eg:private LovoComboBox<ClassBean> classCmb;

this.classCmb = new LovoComboBox<ClassBean>("班级", cs.getAllClasses(), 20, 200, this);

然后在Bean层写public String toString(){
    return name;
}

9.在java中使用对象序列号与反序列化复制文件方法:

                    File f=new File(headPic.getFilePath());//创建一个原文件对象
                    String str=headPic.getFilePath();
                    char[]chars=str.toCharArray();
                    int l=0;
                    for (int i = chars.length-1; i >=0; i--) {
                        if (chars[i]=='.') {
                            l=i;
                        }
                    }
                    str=str.substring(l+1);//得到文件的后缀名
                    int m;
                    path="head/"+new Date().getTime()+"."+str;//通过拼接得到目标文件的相对路径
                    try {
                        FileInputStream ins=new FileInputStream(f);
                        FileOutputStream out=new FileOutputStream(path);
                        while ((m=ins.read())!=-1) {
                            out.write(m);//读一个,写一个
                        }
                        out.close();
                        ins.close();   

10.保证无论如何调用业务逻辑层的方法,始终保证数据正确

11.DeBug模式中的快捷键:

1):F3  转到定义

2):F8 让程序继续运行,知道运行到下一个断点。

3):F6:单步执行(步入)step over,让程序执行完当前断点所在的语句,停在下一条语句

4):F5:步入(step into) 让程序进入当前断点所在语句中调试的方法

12.让界面中的表的数据更“正常”,而非数据库中的1,0等的方法:

private void update(){
        roomTab.updateLovoTable(rs.getRooms());//先跟新表格
        for (int i = 0; i < roomTab.getRowCount(); i++) {//roomTab.getRowCount()得到表格中的行数
            int n=Integer.parseInt(roomTab.getValueAt(i, 4).toString());//将表格的第i行,第4列的值转换成int,注意行和列均从0开始
            if (n==1) {
                roomTab.setValueAt("正常", i, 4);//对显示的值进行修改
            }
            else {
                roomTab.setValueAt("损坏", i, 4);
            }
            int m=Integer.parseInt(roomTab.getValueAt(i, 7).toString());
            if (m==1) {
                roomTab.setValueAt("男生寝室", i, 7);
            }
            else {
                roomTab.setValueAt("女生寝室", i, 7);
            }
        }
    }

原文地址:https://www.cnblogs.com/Onedayzk/p/5840283.html