# 基于rmi的数据库中间件设计
#### 介绍
分布式对象技术课程实践:基于rmi的数据库中间件设计,并利用中间件建立一个数据库应用(Java web项目)。
#### 软件架构
1. 前端:React
2. 后端:Springboot
3. 数据库中间件:Java Rmi服务
#### 安装教程
1. 主机安装Node.js,并在控制台进入front-end-pages目录下,按顺序执行以下命令运行前端:
> npm install<br>npm start
2. 后端安装eclipse、Springboot插件,运行即可;
3. 运行中间件前需要配置
* jdk 1.8
* Mysql(5.6)、Sql Server(2017 express)(其余关系型数据库也行)
* 导入各家数据库的JDBC工具包
* 绑定Rmi服务端口和主机(如果Rmi服务放在远程主机需要注意避开防火墙,并绑定主机,更有甚者需要指定另外一个通信端口)
#### 项目需求分析
1. 数据库操作中间件:
* 提供数据库连接接口。该接口可使“数据库操作中间件”连接当前主流的数据库,如Oracle、SQLServer、MySQL、Access等;参数要求:指示数据库类型,数据库相应的连接参数。
* 提供关闭数据库连接接口。该接口可关闭“数据库操作中间件”当前的数据库连接。
* 提供数据库查询语句接口。该接口传入组装好的字符串型的SQL查询语句,返回参数为列表,该列表代表查询的结果。
* 提供数据库操纵语句接口。该接口传入参数为哈希表,哈希表中记录了查询的表名、字段名、操纵语句类型标志、“where”语句的条件等;传出参数为成功和失败的布尔值。针对哈希表中的这些信息,服务端需要做到:
* 多类型(insert、update、delete)操纵语句的自动拼装,必要时需要拼接“where”语句的条件;
* 根据表名自动获取数据类型,从而在拼装SQL语句时决定数值是否加单引号;
* 提供事务确认和回滚处理。
* 接口设计如下表所示:<br>![Image text](./doc/2.JPG)
* 哈希表参数传递示意表如下表所示:<br>![Image text](./doc/1.JPG)
2. Web应用:
利用Web技术构建一个学生、教师消费记录管理系统,通过系统可以:
* 学生、教师信息的查询、增加、删除(可批量)、修改。
* 学生、教师的消费记录的查询。
#### 参与贡献
1. 数据库中间件设计
* 本次项目主要是我和实践组长一起完成,我负责编写中间件,他负责写应用,我们交流的很频繁,组长说这就是敏捷开发中的“结对编程”,幡然醒悟,哈哈哈哈哈哈,果然软工的课都是白学了。
* 我将编写好的Rmi服务半成品挂在服务器上,他就可以直接利用已经编写好的接口进行应用的编写,而我可以在本地继续完善Rmi服务,我们两个的工作可以说互不干扰,所有合作“肥肠”愉快!
2. 中间件客户端在Springboot后端的部署
3. 项目存在的已知缺陷:
* 在使用sql server时,“根据表名自动获取数据类型,从而在拼装SQL语句时决定数值是否加单引号”这一功能存在bug,在装配哈希表中字段时还是需要为非数值类型数据加上单引号。bug原因出在获取数据库表字段信息时未指定表所在的scheme(模式),mysql无需指定,但是sqlserver、oracle需要指定。
* rmi服务调用只支持单用户连接调用,且并没有设置同步,所以不可以多用户同时连接该服务;
* 调用Rmi服务连接数据库后一定要记住调用接口方法关闭连接,不然服务会长时间消耗资源来保持与数据库的连接。如果不需要使用rollback、commit等事务操作,建议修改Rmi服务源码直接让服务端在执行完sql语句后自主关闭连接。
#### 更多详情参看本人[实践文档](./doc/实践文档.pdf)
没有合适的资源?快使用搜索试试~ 我知道了~
Java开发基于rmi的数据库中间件设计源码,并利用中间件建立一个数据库应用(Java web项目),分布式对象技术课程实践
共109个文件
jar:30个
java:10个
xml:9个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
5星 · 超过95%的资源 1 下载量 155 浏览量
2023-01-28
09:51:44
上传
评论 3
收藏 16.59MB ZIP 举报
温馨提示
Java开发基于rmi的数据库中间件设计源码,并利用中间件建立一个数据库应(Java web项目),分布式对象技术课程实践 主机安装Node.js,并在控制台进入front-end-pages目录下,按顺序执行以下命令运行前端: npm install npm start 后端安装eclipse、Springboot插件,运行即可; 运行中间件前需要配置 jdk 1.8 Mysql(5.6)、Sql Server(2017 express)(其余关系型数据库也行) 导入各家数据库的JDBC工具包 绑定Rmi服务端口和主机(如果Rmi服务放在远程主机需要注意避开防火墙,并绑定主机,更有甚者需要指定另外一个通信端口)
资源推荐
资源详情
资源评论
收起资源包目录
Java开发基于rmi的数据库中间件设计源码,并利用中间件建立一个数据库应用(Java web项目),分布式对象技术课程实践 (109个子文件)
searchController.class 9KB
RmiClient.class 2KB
RmiClient.class 828B
distributedApp.class 713B
RmiInterface.class 562B
RmiInterface.class 400B
.classpath 1KB
.classpath 226B
org.eclipse.wst.common.component 673B
org.eclipse.wst.jsdt.ui.superType.container 49B
App.css 564B
index.css 397B
.eslintcache 34KB
.gitignore 310B
.gitignore 22B
.gitignore 12B
.gitignore 6B
index.html 2KB
favicon.ico 4KB
front-end-pages.iml 336B
mysql-connector-java-8.0.21.jar 2.29MB
mysql-connector-java-8.0.21.jar 2.29MB
mysql-connector-java-8.0.21.jar 2.29MB
mssql-jdbc-8.4.1.jre8.jar 1.24MB
mssql-jdbc-8.4.1.jre8.jar 1.24MB
mssql-jdbc-8.4.1.jre8.jar 1.24MB
sqljdbc42.jar 878KB
sqljdbc42.jar 878KB
sqljdbc42.jar 878KB
commons-collections-3.0.jar 506KB
commons-collections-3.0.jar 506KB
commons-collections-3.0.jar 506KB
commons-lang-2.1.jar 203KB
commons-lang-2.1.jar 203KB
commons-lang-2.1.jar 203KB
commons-beanutils.jar 116KB
commons-beanutils.jar 116KB
commons-beanutils.jar 116KB
xom-1.0d10.jar 104KB
xom-1.0d10.jar 104KB
xom-1.0d10.jar 104KB
ezmorph-1.0.2.jar 76KB
ezmorph-1.0.2.jar 76KB
ezmorph-1.0.2.jar 76KB
json-lib-1.1-jdk13.jar 65KB
json-lib-1.1-jdk13.jar 65KB
json-lib-1.1-jdk13.jar 65KB
commons-logging.jar 31KB
commons-logging.jar 31KB
commons-logging.jar 31KB
SearchController.java 10KB
RmiServer.java 5KB
DB.java 2KB
func.java 2KB
RmiClient.java 1KB
RmiClient.java 1KB
CustomerSocketFactory.java 631B
RmiInterface.java 616B
RmiInterface.java 474B
distributedApp.java 344B
2.JPG 129KB
1.JPG 88KB
jquery-3.4.1.min.js 86KB
App.js 528B
index.js 467B
reportWebVitals.js 362B
App.test.js 246B
setupTests.js 241B
.jsdtscope 626B
package-lock.json 727KB
package.json 840B
manifest.json 492B
index.jsp 111B
teacherTable.jsx 13KB
studentTable.jsx 13KB
mainPage.jsx 5KB
recordTable.jsx 2KB
teacherSerch.jsx 1KB
studentSerch.jsx 1KB
allRecordSerch.jsx 375B
README.md 4KB
README.md 3KB
MANIFEST.MF 105B
MANIFEST.MF 100B
org.eclipse.wst.jsdt.ui.superType.name 6B
实践文档.pdf 1.01MB
logo512.png 9KB
logo192.png 5KB
org.eclipse.jdt.core.prefs 422B
org.eclipse.m2e.core.prefs 86B
org.eclipse.core.resources.prefs 72B
org.eclipse.wst.validation.prefs 48B
.project 1KB
.project 368B
pom.properties 275B
pom.properties 269B
logo.svg 3KB
robots.txt 67B
workspace.xml 33KB
pom.xml 1KB
共 109 条
- 1
- 2
资源评论
- 月下游鸢2024-01-04资源很实用,对我启发很大,有很好的参考价值,内容详细。
Python代码大全
- 粉丝: 2730
- 资源: 688
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 原生微信小程序源码 - -滴滴公交-查公交
- 人工智能实验四 感知器算法的设计实现
- java小项目多线程多线程 复制文件 冒泡排序 群聊
- 四数之和(java代码).docx
- 701837906919458TapScanner v3.0.10 (Pro).apk
- 青岛大学人工智能实验二 利用α-β搜索的博弈树算法编写一字棋游戏
- ### 1、项目介绍 本项目Scrapy进行数据爬取,并使用Django框架+PyEcharts实现可视化大屏 效果如下:
- # 微信小程序-健康菜谱 基于微信小程序的一个查找检索菜谱的应用 ### 效果 !动态图(./res/gif/demo
- zabbix-get命令包资源
- 289ssm-mysql-jsp 计算机课程实验管理系统.zip(可运行源码+数据库文件+文档)
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功