RMI是java进行分布式开发的一种常见的解决方案。今天跟大家聊一聊远程数据存储,使用RMI可以完成自定义对象的网络传递,那么自然使用RMI结合JDBC就可以完成远程的数据存储。这篇文章就跟头条的网友分析一下如何使用RMI结合JDBC完成远程数据存储任务。
为了演示开发流程,我们设计一个小的任务:把一个学生对象通过RMI完成传递,在服务端把接收到的学生对象存储到数据库中。通过这个任务可以举一反三,完成其他的数据库操作。
***步创建数据库表格student,表设计为三列:id、name、age,分别代表学生的学号、姓名和年龄,为了演示的清晰性,就不定义更多的列,如图:
第二步定义Student类,由于为了演示远程数据存储,所以并不需要在Student类中定义业务方法,当然定义业务方法也并不影响程序的结果。Student类如下所示:
注意Student类实现了Serializable接口,此接口位于java.io包中,主要解决的是对象序列化的问题。RMI要通过网络传递对象,需要被传递对象时可序列化对象,所以要求自定义类要实现Serializable接口,以声明其可序列化。
第三步定义RMI接口,此接口只定义一个方法,即完成数据远程存储的方法。RMI接口如下所示:
第四步定义RMI服务类,此类完成数据的存储任务。如图:
第五步完成测试类调用,创建一个学生对象并完成远程存储。代码及运行的结果如下:
例子中只演示了如何使用存储服务,并没有实现查询、修改和删除操作。如果大家想完成其他操作,可以自己动手试一下。
本例中使用RMI完成了简单的数据存储,下一步需要对这个流程进行模块化改造。模块化改造的***个工作就是把数据库操作采用DAO模式进行重写,由于我在头条上已经写了如何创建java的DAO操作流程,所以这里就不再累述了,头条的网友可以关注我并到我的回答栏目中查找对应的文章。时间仓促,难免有纰漏,恳请大家多多指正。