专栏名称: JavaScript
面向JavaScript爱好人员提供:前端最新资讯、原创内容、JavaScript、HTML5、Ajax、jQuery、Node.js等一系列教程和经验分享。
目录
相关文章推荐
51好读  ›  专栏  ›  JavaScript

Java升职必备技术

JavaScript  · 公众号  · Javascript  · 2017-08-08 11:00

正文

java



大型分布式应用系统架构

随着互联网的发展,大型分布式系统也越来越多、越来越复杂、越来越重要。如何有效地保证大型分布式系统7×24小时全天候持续稳定地运行也就成为了一个重要课题。

而要想拿下这个重要课题,在基础上,我们要明白JDBC自定义套件封装这些组件是怎样从原始的编码方式一步步封装过来的呢 ?

在这里做了一个教程分享给大家。往下看↓


1) DbUtil工具类

通过查看最原始编码方式的代码,我们可以看出,获取数据库的连接和关闭数据库连接的代码,在每一次操作中都需要,所以我们可以思考一下,将这部分代码提取出去。新建DbUtil工具类 ,用于数据库的开连接和关连接通过工具类的封装,我们可以继续在工具类里面将数据库的信息通过配置文件加载,以及启用流行的连接池技术,在这里不在赘述。


2) 增删改方法的封装

在封装了DbUtil工具类的基础上,我们试着做一个单表的增删改查,请看以下代码:

进一步观察增删改方法 ,除了Sql语句和参数传入的不同,其他代码其实也是重复的,我们是否可以考虑将这些公用的代码也提取出去呢?

伟大的Java程序员们都是”懒鬼”,一切都是为了少些一些重复的代码以提高工作效率。

我们可以新建一个模板类JdbcTemplate,对增删改方法进行封装,外部只需要传入sql语句和sql语句需要用到的参数。

通过上面步骤的封装,我们再来看看让对单表增删改的操作是如何方便简单的,新建一个单表增删改的测试类,继承我们封装的模板类。回过头看看我们的封装过程和代码,是不是对于开发人员来讲 ,越来越简单,代码写的越来越少,这就是Java在实际开发过程中需要用到大量前辈们封装的组件的原因。


3) 查询方法的封装

在增删改方法的封装过程当中,我们发现,增删改的操作,方法的返回值是固定的,但是查询方法的返回值是不固定的,查询不同的表,返回的是不同对象,也有可能是返回的其他类型的值。

两种方式:

A:返回一个List结构

在JdbcTemplate模板类面新加查询模板方法

这种封装方式在执行查询时候,获取的结果是List>结构的值,需要自己再进行转化,但是对于查询来说,就非常的简单了。

在UserDaoTemplateTest类里面新加查询方法

B:返回一个接口的匿名内部类

这种方式,封装起来稍微复杂一些,但是对于查询方来说,就可以直接在查询方法里面获取自己想要的对象,返回List,

非常简单。

*  在JdbcTemplate模板类里面新增模板查询方法

 * 查询的时候,通过实现匿名的内部类来获取结果,直接映射到Java对象当中 ,最终的代码目录结构如下,希望对大家的学习有所帮助。


我们可以了解到Java封装组件的一个基本思路,有助于大家以后在用到相关的ORM组件时,对它们有一个更深得到认识。当然,对于大型分布式应用系统的架构来说这只是冰山一角。


如果你在系统架构时并没有扎实的基础,或者并没有选择更优的策略,那么到时候重构起来将会是一个噩梦,所以分享课上会详细讲解现在流行的十大框架以及应用。大家可以直接通过QQ 或微信扫描海报下方的二维码,即可加入我们的Java大家族一起展开学习之旅哦!


长按识别二维码或加Q群(658366541


学习收获:

课堂后会对全文检索技术有个初步的了解、Lucene在站内搜索应用中的底层操作原理,以及在分布式系统中的应用和传统架构方式的区别。



点击“阅读原文”也可以加入学习交流群