从零开始学后端(4)——JDBC的重构设计

重构(Refactoring)就是通过调整程序代码,改善软件的质量、性能,使其程序的设计模式和架构更趋合理,提高软件的扩展性和维护性。

问题1:每个DAO方法中都会写:驱动名称/url/账 /密码,不利于维护.

此时DAO代码:

此时DAO代码:
conn = JdbcUtil.getConn();

问题4:我们分析右图JdbcUtil类中的getConn方法的代码,发现,每次调用getConn方法都需要加载注册驱动,而我们其实就只需要在最初加载一次即可.

解决方案:在静态代码块中去加载和注册数据库驱动即可.

关闭DML操作资源:JdbcUtil.close(conn,st,null);
关闭DQL操作资源: JdbcUtil.close(conn,st,rs);

问题6:在JdbcUtil类中提供了四个字段分别表示连接数据库的四要素(驱动类名,URL,账 ,密码),存在硬编码,如果需要修改连接的数据库,就只能来修改该源代码.

接下来再通过Properties类来加载资源文件,并读取其中的信息即可.

问题7:在DAO方法中拼接SQL语句,很恶心,稍后使用PreparedStatement解决.
问题8:在每一个DAO方法中都创建一个新的Connection对象,使用之后,就立刻释放了,也就是说没有充分利用Connection对象,而创建Connection对象的成本非常大,
问题9:DML操作模板是相同的,DQL操作模板也是相同的.

预编译语句对象

预编译语句对象 VS 静态语句对象

Statement和PreparedStatement的区别:
PreparedStatement 的优点:
1).PreparedStatement 代码的可读性和可维护性. (SQL模板,使用占位符表示参数)
2).PreparedStatement 能最大可能提高性能(预编译),MySQL不支持PreparedStatement的性能优化.
3).PreparedStatement 能保证安全性.
可以防止SQL注入:演示登陆操作
选择:使用PreparedStatement.

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2018年7月3日
下一篇 2018年7月4日

相关推荐