JbdcCRUD- 成都传智播客

我们已经开始学习数据库了,教学使用的是mysql数据库,老师花了接近一天的时间给我们讲了数据库的基本操作,如创建数据库,创建表,对表以及表数据的增、删、查、改等操作。当然重点还是对JDBC的教学了。

因为我们之前是学习过使用xml文件来实现CRUD的,但是xml毕竟是文本文件,不适合用来储存特殊数据格式的内容,所以我们需要专门的数据库。

老师在给我们讲解jdbc的时候,也是由浅入深,循序渐近的。整个过程是通过一个web版通讯录的实例来贯穿的,最开始的时候还是利用面向过程的方式,这种方式很易理解,代码却比较繁多,而且大多数都是重复性的代码,今天老师就通过不断地对联系人实例的jdbcDao的实现进行重构,渐渐地把我们面向过程的思维引向到面向对象和面向接口编程,重构以后,代码相当精简,但对于我来说,思维的跳跃却没有那么多了,被很多问题疑惑着,比如为什么要封装出一个第一眼就看不出干什么的方法,为什么要搞其它很多类出来,设计一个方法的时候为什么要传递这样的参数,为什么我们的sql语句的拼写越来越简单,而且我们还使用了DBUtis这个工具,这个工具为我们屏蔽了哪些细节,它为什么能实现这些功能。

当老师用大量的时间把这个实例完整地重构以后,我的脑子里像是浆糊一样,晚上回到寝室,吃完饭以后,仔细地研究起老师的代码来,不懂的地方就查阅身边的资料。最开始的时候真的很难下手,不知道该从哪里看起,于是我决定把老师的代码对照着敲一遍,边敲边联想自己已有的知识和老师在课堂上的讲解,遇到问题就思考,实现想不出就浏览一下课堂视频,经过几个小时的探索,逐渐地对老师的代码有所领悟了,也能更深入地理解一些知识了。

经过我的探求,我发现,dao这一块操作主要集中在三个类上,一个是被老师抽取出来的BaseDao这个类,这个类里面只有两个方法,一个是dim(String sql,Object…params),这个类里使用到了DBUtils里面的QueryRunner类,该类的update方法就帮我们完成了dml操作,比如对数据的增加,修改和删除操作,而对于需要处理返回结果的查询操作则是写了一个query(Stringsql,ResultSetHandler rsh,Object…params)方法,还写了一个IContractDao接口,

该接口主要用于定义数据的增、删、改、查的方法,用一个ContractDaoJdbcImpl 类去继承BaseDao类并实现IContractDao接口里面的方法,ContractDaoJdbcImpl里面的代码就变得相当简洁了,直接调用从父类继承而来的那两个方法,就轻轻松松地完成了CRUD操作。这里有一点比较关键的就是在传入ResultSetHandlerrsh的时候用到了匿名内部类,因为ResultSetHandler是一个接口嘛,所以需要写一个实现它的子类。

今天还学习了数据库连接池,老师非常形象地给我们讲解了数据连接池的作用。数据连接池其实就是在我们的web应用和数据库中间起一个缓冲的作用,并使之优化整个系统的性能,我们也学习了dbcp包,重点讲解了要我们如何去学习一个新的jar包,里面比较关键的就是如何创建DataSource这个类,使用过程中用到了BasicDataSourceFactory,基于此,老师又给我们拓展了java里面的工厂设计模式。当应用中的一个类会被频繁地使用时(频繁地new出来),它会“生出许多儿子”来,这个时候就需要考虑使用工厂模式了。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值