大家好,今天小编关注到一个比较有意思的话题,就是关于javascript连接oracle的问题,于是小编就整理了1个相关介绍javascript连接oracle的解答,让我们一起看看吧。
为什么不能在前端连接数据库呢?
这个思路早就有之,甚至在富浏览器之前。微软在他的IE浏览器中提供了ActiveX的扩展,允许你安装插件。此时你如果安装同样是微软的Access数据库插件。就可以直接在浏览器操作数据库了。
2,使用轻量数据库嵌到前端。
富客户端概念兴起后,在前端存数据也不新鲜了。只是前端不认为这是数据库,更多认为是缓存。因为最终避免数据丢失,安全,一致性,还是需要后端的。此外,将sqlite类似的数据库嵌到app是非常常见了,但是***可能不被认为是“前端”。
正儿八经说一下这一条。这个无疑是未来去除讨厌的服务端的发展方向。借助nodejs,graphQL等框架,面向前端编程已经非常流行了。这里也推荐题主看一下Pri***a。坚定自己想法,前端走遍天下是可行的。
前端连接数据库,一个是安全问题,第二是并发性能问题,第三是系统的可维护性问题。
当然第三个问题如果真想解决,通过一些设计还是可以解决的,第一第二问题那就关系到互联网的一些基础性东西,基础决定上层建筑,目前的这些设计都是建立在这些基础上形成的相对最优的方案。
也不是完全不行
我以前做程序的时候也是在前端直接连接数据,那时候我刚入行一年,我们公司的项目属于内网项目,不需要考虑什么安全问题,当时我负责的一个模块是基于***let的,使用j***a程序嵌入网页。
我在***let里面写了jdbc连接,然后使用js拼接sql,调用***let操作数据库,完全不经过后台,开发起来非常方便,网页刷新一下就能调试了,不需要重启后台。
不过那个项目也就客户那边几个人在用,不存在安全性问题,也没有并发问题,所以那样做其实一点问题都没有。
但是,如果是其他web项目甚至是互联网项目,这样弄纯粹就是不想混了,在js里面写sql,连接数据库,别人稍微会点技术的,直接运行一句delete,或者drop table,这时候你怎么办,特别是你数据库数据高达百万或者十几亿的数据,足够让你公司破产了。
其实现在也是有一些基于web端的存储,比如sqlite,websql,sessionstorage,localStorage,session,cookie,或者基于js自己实现个简易数据库,我曾经就尝试实现过js版数据库,然后服务器上开着一个浏览器,后台用websocket交互这个浏览器上的数据库。
浏览器内部提供的存储一般是为了提升交互体验而使用,而不是直接存储账号密码,特别是明文密码或者其他重要数据,所以,不能为了完全的性能而忽略安全性问题。
但是如果是小型项目又是个内网项目,本来就没什么钱挣的项目,如果你觉得在前端存数据方便那就在前端存就行了,这种情况当然是怎么开发快怎么来了。
技术上可以,但是一般都不会这样做,原因如下:
- 前端信息都是公开的,从前端访问数据库,就需要将数据库的地址,密码写在前端的代码中,这样就相当于公开了数据库的访问;
- 数据库公开访问的话,用户就可以随意访问数据库,操作数据库,这是很严重的问题,比如随便修改账户金额,[_a***_]数据,盗取其他用户敏感信息等;
- 无法扩容,流量控制等,比如数据库现在要迁移到另一台设备上,可以地址已经写死到了客户端,数据库地址变了,前端就无法访问了;
- 限制了数据库表的修改,比如数据库表中某个字段名变了,前端就访问数据库的代码就挂掉了;
- 性能差,放在前端的话,限流,异步队列,熔断,兜底,缓存等服务端的一些高可用服务都没有用武之地了。
因此,基本上数据库访问的业务代码都是放在服务端的,客户端通过访问服务端来了解访问数据库。
因为要分工,你不能把一个人把所有事情都干了。每个人做好自己的事,可以提高效率。
模块化方便,查找问题比较快速。便于更多人协同作业。就象前端还有三种文件一样,不然,你全弄些二进制数据,一个文件搞定。
到此,以上就是小编对于j***ascript连接oracle的问题就介绍到这了,希望介绍关于j***ascript连接oracle的1点解答对大家有用。
[免责声明]本文来源于网络,不代表本站立场,如转载内容涉及版权等问题,请联系邮箱:83115484@qq.com,我们会予以删除相关文章,保证您的权利。 转载请注明出处:http://www.rongung.com/post/15552.html