精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-12-14
tibetjungle 写道 与框架相比,lz的做的是Java类属性与db表字段的映射,目前可以生成select语句,如果lz愿意,还可以扩展完成cud功能。不过我有几个问题:
1、如果我是调用存储过程,存储函数怎么办? 2、如果生成的sql效率不高,怎么优化(hibernate的短板之一)? 3、事务如何控制? 4、缓存呢? 我觉得这些都是做框架要考虑的问题。 呵呵,我是新人,刚开始学东西。这些简单的问题可以让我学到很多东西。 |
|
返回顶楼 | |
发表时间:2009-12-15
z494627 写道 我怎么越看越像我写的VB代码了呢?
冲这点,下载下来看了下. |
|
返回顶楼 | |
发表时间:2009-12-15
或者试试对象流(组建一个内部服务器)
|
|
返回顶楼 | |
发表时间:2009-12-15
我没有下载LZ的代码看 , 但是我大概能猜出来你写的什么。其实把一些对数据库操作的一些框架学好 ,把原理搞清楚 ,自己写个也不错。。
|
|
返回顶楼 | |
发表时间:2009-12-16
ldinh 写道 感觉是annotation的另一种实现。
放弃了使用语言特性,可做的并不比他多,当元数据描述的内容增加,Mapping对象将变得臃肿。 对于表字段修改,注解需要改的,Mapping对象一样需要修改。查询语句,同样是运行时检查,hibernate也有类似的对象查询接口Criteria。 至于Annotation的侵入问题,我认为既然决定使用一个ORM实现,就很少会去改变它,如果想灵活,可以使用JPA。 个人觉得应该还有很多需要改进的地方。 当元数内容增加时,任何一个框架都需要跟新。这是不可避免的,只是操作方法不一样。这样操作是否会引起错误才是最关键的。hibernate修改xml很容易,但是你敢保证你所有的hsql都会被修改吗。而我的框架会,因为它是面向对象的,可以借助ide将错误扼杀在编译层。mapping配置臃肿也是因为你的表格臃肿,队同样的pojo做配置,xml就要比java苗条? |
|
返回顶楼 | |
发表时间:2009-12-17
syinhb 写道 夜神月 写道 大概看了一下你的代码 将配置文件换成了一个java类 里面大量的应用了反射机制 对效率不太好吧
使用反射,是有效率问题。尤其是annotation之后,反射的使用更是大大增加。但是要看目的是什么,我觉得安全,OO,减少入侵是更重要的。 现在ORM框架都缓存了配置信息,所以annotation只解析一次,效率应该还是可以的 |
|
返回顶楼 | |
发表时间:2009-12-17
楼主这个还不错,不过如果是大的产品涉及到的层次众多,框架也不少,所以元数据驱动还是必要的
|
|
返回顶楼 | |
发表时间:2010-01-08
支持原创!架构的全面性有待改进哦!
|
|
返回顶楼 | |
发表时间:2010-03-27
最后修改:2010-03-27
JavaLanguageFun 写道 我没有下载LZ的代码看 , 但是我大概能猜出来你写的什么。其实把一些对数据库操作的一些框架学好 ,把原理搞清楚 ,自己写个也不错。。
我也和楼主一样菜菜地写自己的持久化组件,每次在JE上发帖子都是被投新手帖、隐藏帖之类的,都害怕说话了。 主要是牛人太多了。 这是我做的效果: 组件的日志记录器级别为DEBUG时的控制台输出: 2010-03-27 02:03:15,812 main DEBUG [com.china.codingmouse.cmsdk4j.dao.sql.generator.SQLGenerator] [CmSdk4j Auto SQL Generator In 2010-03-27 02:03:15.812] SELECT accountid, accountname, onlinecount, birthday, loginname, loginpassword, email, accountstate FROM account WHERE accountname LIKE ? AND accountid <> ? ------------------------------ 2010-03-27 02:03:15,984 main DEBUG [com.china.codingmouse.cmsdk4j.dao.converter.DataTypeConverter] [SQL Parameter List Information In 2010-03-27 02:03:15.984] No:1 Type:java.lang.String Value:邓% ------------------------------ 2010-03-27 02:03:16,000 main DEBUG [com.china.codingmouse.cmsdk4j.dao.converter.DataTypeConverter] [SQL Parameter List Information In 2010-03-27 02:03:16.0] No:2 Type:java.lang.Integer Value:1 ------------------------------ [ accountid = 7, accountname = 邓远辰, onlinecount = 429, birthday = null, loginname = ChengCheng, loginpassword = chengchengpwd, email = chengchengdream@gmail.com, accountstate = true ] 还在改一些细节问题,比如添加兼容MS SQL Server、Oracle、DB2、MySQL四款数据库存储过程调用的接口。 我也只对单表做了ORM,没看楼主的实现细节,估计也没有处理关联映射逻辑吧。 |
|
返回顶楼 | |