学习java以来第一个项目——soso移动大厅

        通过这个项目能够很好的总结前面的知识点,反映出前面所学习的漏洞,尤其是java.lang包里面的类和方法,忘记了很多,尤其是DATE类及其方法,还有静态代码块、未知参数的设置。然后这个项目设计到很多细节性的东西。

       首先,先总结项目涉及到的思想。

        第一、实现项目的分层:(1)bean层:封装项目涉及到的数据。(2)dao层:提供业务所需的数据,实现数据的读取,与数据库相关。注意dao层不能处理异常,只能抛出,因为在service层里面会设计到事务的问题,而事务具有一致性,所以不能在dao层去处理否则不能保持事务的一致性(3)service层:也是业务逻辑层,需要去实现各种功能,并且依赖于dao层。(4)view层:也是我们的视图层,用户是通过这个层去操作我们所设计的程序。

        第二、在dao层和service层中,先在一个接口中分析需求,写出所有设计到业务的方法,在创建一个子包impl去逐个的实现这些方法。这样做的目的是为了防止遗漏掉某些功能,从而导致程序运行出错。

        第三、养成写注释的习惯

        然后总结在写代码过程中所遇到的问题。       

        第一、为什么要创建dbUtil工具类?因为在导入连接池的对象中就有已经封装好的查询数据(query)和更改数据(update)的方法,所以只需要创建dbUtil工具类的对象,通过对象去调用这两个方法即可。

注意:dbUtil对象要设置为私有的,保护数据安全。

        第二、未知参数怎么去传参数?在sql语句中为了防止sql语句的注入,我们采取的是预编译所以在尚且位置的参数时要采取预编译(例如用户在输入密码的时候)用问号来代替参数,而传参的语句是:

此处代码的理解:Object是因为它是所有类的父类,params的中文意思就是参数个数,然后这个符号“[]”则是因为参数不止一个有点类似于数组,花括号里面的则是通过类的对象去调用get方法获取对应的值。

此处要注意:设置参数和我们的sql语句中的顺序要保持一致。

        第三、涉及到查询方法的时候,返回值类型一般都是List,因为查询的一般都不只有一个数据,而是多个数据,其对应的泛型则是对应的那个类。在修改数据方法的时候,返回值类型一般为boolean,因为sql中返回的是受影响的行数,我们只需要用三元运算符去判断即可。

        第四、什么是三元运算符?

        基本语法为:条件语句 ?true : false

理解:先执行问号前面的语句,如果为真则执行true里面的语句,为假则执行false里面的语句

例子:输出结果为8,而不是2

        第五、和io流一样每次使用了jdbc里面的接口都要关闭资源!!!

        rs.close();
        stmt.close();
        con.close();

        第六、在查询方法中,返回值的时候为什么要用类去.class?

        .class其实就是对象的序列化(对象信息转化为字符信息),在BeanListHandler方法里我们返回的是一个对象,但是直接返回的话打印出来的是一段地址,所以需要给对象进行序列化处理

        最后,总结一下需要注意的问题:

第一、设计到事务的内容,应该先开启事务,再提交事务,如果出现异常则回滚事务。

第二、对于写代码,不应该是去背代码怎么写的,而是应该去思考为什么要这样子写,通过这个项目我发现我比其他人效率低和写代码能力差的原因就是在这,经常去死记硬背代码,而不是去理解代码为什么要这样子写,去思考为什么这个代码会出现在这里。

  • 40
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值