续:小弟我们需不需要像存储过程一样的跨数据库的JA
发布时间:2010-05-20 14:01:29 文章来源:www.iduyao.cn 采编人员:星星草
续:我们需不需要像存储过程一样的跨数据库的JA
(原:我们需不需要像存储过程一样的跨数据库的JAVA存储过程)
接触过数据库的同学肯定知道存储过程,先列一下好处?
1:易于调试。
2:随时可以查看其原代码。
3:便于测试及跟踪。
4:性能良好。
缺点:
1:只能用于特定的数据库。
2:保密性不强。
3:语言单一。
以下是一些简单说明,如果我们开发出一款类似于存储过程的"Java存储过程",他有存储过程的好处,又可以克服存储过程的缺点,你会用吗????
经过这段时间的讨论以及对技术的调研,总结如下:
1、SQLJ:这个确实是好东西,与我的想法基本一致,也试用了一下。可以在数据库上用JAVA写储储过程,是基于JDBC上的封装,目前只看到Oracle与DB2有解析,开发工具也是这两家独有的,第三方的开发工具基本没有(可能我没找到),还有解析器也没有开源的,用到j2ee服务器上会不会有法律问题,这个没有深入了解。还有SQL语句是在标准的基础上加了一些扩展,不能做到跨数据库,与传统的存储过程对比,移植方面会更好。很可惜的是不能成为Java的一项标准,否则现在的Hibernate应该就不会这么火了。
2、JSQLParser:SQL的语法解析器,这玩意儿也不错,可以校验SQL语句,或许能够派上用处。
3、LINQ to SQL:微软的玩意儿,这个还是相当的好的,功能强大,在Java方面只有Linq,LINQ to SQL还没见着,可惜了。
4、自已写一个解析器,这个可行性还是很高的,而且现有有很多文法解析框架,实现起来应该不难,关键是还得有配套的开发工具,这个是个大工程,短期内很难实现,而且价值不高。
5、使用模板引擎结合JSQLParser来实现,这个可行性还是很高的,但看着模板引擎的语法怎么看怎么不舒服。
6、利用注释+Java语法+JSQLParser作为扩展脚本来实现(非常怪异、应该没看懂)。简单上说就是在java的注释里写sql脚本。如下:
/**
SQL{
--这是一个获是用户的sql语句。(对sql的备注)
select * from users where a.user = 'super';
--这个太普通了,再来一句有深度的。
select user_code to ${userBean.user_code},user_name to ${userBean.user_name} from a.user = 'super';
}
*/
这个类的扩展名不是java叫sqld(SQL帝).将sqld根据简单的规则转换成java源码(SQLJ的原理一致),写在注释也有好处,生成的java doc里,就有业务逻辑,以后查小问题你就不用看代码了。或者这样说,哪些蛋疼的问题就让客服和工程去忙去吧。
当然,这么干的话很多开发人员会拍砖。
所以、数风流人物还看今朝。看各位了.........
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。
其他相似内容:
-
如何将从数据库查找出的对相(集合)转化成转化成属性的形式。
如何转化成**
解决方案:重写toString()这个方法,但是首先要...
-
多部件上传excel文档,解析后存入mysql数据库
说明:此处使用的是java的ssm框架
jsp的界面
...
-
oracle怎样创建表空间和用户
1)创建表空间。在sql窗口中输入create tablespace test datafile 'D:test.ora' size 1000m;这...
-
创建函数例子
创建mysql的函数的例子
BEGIN
declare current_sequence bigint;
select sequence into current_sequence...
-
怎样利用JDBC连接并操作Oracle数据库
怎样利用JDBC连接并操作Oracle数据库
...
-
Hadoop 50070端口打不开怎么办?hadoop课程
Hadoop 50070是hdfs的web管理页面,在搭建Hadoop集群环境时,有些大数据开发技术人员...
-
Oracle的连接详解(左连接、右连接、全连接...)
https://www.cnblogs.com/guogl/articles/5929852.html
1 说明:
提到数据...
-
再谈全局网HBase八大应用场景
摘要: HBase可以说是一个数据库,也可以说是一个存储。拥有双重属性的HBase天生就具备广阔的...
-
Oracle 中分组后,如何拼接字符串
Oracle在版本11g提供的listagg函数之前,如果要对字符串的字段进行聚合即拼接字段内容的话,有...
-
Druid 是 Java 的数据库连接池组件。Druid 能够提供强大的监控和扩展功能。比如可以监控 SQL ,在监控业务可以查询慢查询 SQL 列表...