论坛首页 Java企业应用论坛

iBATIS for Java 2.3.0 Released (译)

浏览 13312 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2006-12-25  
jetever 写道
我现在还在用sqlmap 1.2版.升级有一堆的API都变了.不敢升级了.


一、说明iBATIS怪强了
二、应用不大、条件允许的话还是升级一把吧。
0 请登录后投票
   发表时间:2006-12-26  
SteveGY 写道
fight_bird 写道
舍弃paginated list有点可惜,有点因噎废食的嫌疑。

ibatis的sql map已经比较成熟,应该集中精力于最佳实践的问题,需要更多的第三方IDE插件、工具,现在找个实用的脚本生成器都很困难。

脚本生成器,还是比较简单的,问题是各人的规范可能完全不一样,生成的代码可能每个人看起来都不爽。所以还不如自己根据本开发组的情况,开发一个,很简单的。
我这里直接使用单个jsp文件,慢慢积累起来的代码,一共400行,连html代码都包含了,用来生成java map对象和CRUD基本操作的sql xml语句的文本,直接在页面上输入jdbc连接url,必要的表名字,java map类名称等参数,submit以后,jdbc获得数据库Schema,解析一下,生成的代码,够用就好,一般是需要适当修改的。但毕竟提高了编码效率,省得手写很多代码,而且基本没有拼写错误之类的问题了。
实际上,我这里所有项目,从.net到java, vbscript asp都有各一个自动生成CRUD基本sql语句的自动化工具,很好用。

能否share一下看看
0 请登录后投票
   发表时间:2006-12-26  
脚本生成器还是很好弄地
把数据库的元数据读一把,再搞个模板
velocity,freemarker都好使,
个人还是比较稀饭freemarker
0 请登录后投票
   发表时间:2006-12-26  
Ivan Li 写道
SteveGY 写道
fight_bird 写道
舍弃paginated list有点可惜,有点因噎废食的嫌疑。

ibatis的sql map已经比较成熟,应该集中精力于最佳实践的问题,需要更多的第三方IDE插件、工具,现在找个实用的脚本生成器都很困难。

脚本生成器,还是比较简单的,问题是各人的规范可能完全不一样,生成的代码可能每个人看起来都不爽。所以还不如自己根据本开发组的情况,开发一个,很简单的。
我这里直接使用单个jsp文件,慢慢积累起来的代码,一共400行,连html代码都包含了,用来生成java map对象和CRUD基本操作的sql xml语句的文本,直接在页面上输入jdbc连接url,必要的表名字,java map类名称等参数,submit以后,jdbc获得数据库Schema,解析一下,生成的代码,够用就好,一般是需要适当修改的。但毕竟提高了编码效率,省得手写很多代码,而且基本没有拼写错误之类的问题了。
实际上,我这里所有项目,从.net到java, vbscript asp都有各一个自动生成CRUD基本sql语句的自动化工具,很好用。

能否share一下看看


呵呵,实在不好意思,代码比较丑陋,生成的代码自己够用就可以了,不拿出来了。
其实,尽量减少其他环境的依赖性,因为大多数情况是用java开发web应用,所以只用jsp jdbc,其他库的关联尽量减少,而且单个jsp文件便于携带,随便往哪一个web目录下一扔就可以了(虽然话是这么说,但这个web应用程序如果没有你要的jdbc驱动也不行:D)。
主要核心就是获得DB Schema,然后,尽可以发挥了。
// 前面变量声明,从form中取值什么的省略了
           Class.forName(dbDriver);
           con = DriverManager.getConnection(dbUrl, username, password);
           if(con != null) {
               DatabaseMetaData dbmd = con.getMetaData();
               if(schemaName.length() == 0)
                   schemaName = username;
               ResultSet rst = dbmd.getColumns("", schemaName, tblName, "");
               ///buf = genMembers(rst);
               buf = new StringBuffer();
               buf.append("\r\n\r\n");
// 下面的genXXXXXX函数没有给出,实在有点丑陋,一堆的buf.append("....")
// autokey是一个提示,用来生成不同的sequence方法
// 例如,oracle和sybase的identity是不同的主键生成
               buf.append(genInsertSQL(dbmd, rst, schemaName, tblName, dbClassname, autokey));
               buf.append(genUpdateSQL(dbmd, rst, schemaName, tblName, dbClassname, autokey));
               buf.append(genRetrieveByKeySql(dbmd, rst, schemaName, tblName, dbClassname, autokey));
               buf.append(genDeleteSql(dbmd, rst, schemaName, tblName, dbClassname, autokey));
               bufc = genClassMember(rst);
               bufc.append(genClassVoid(dbmd, rst, schemaName, tblName, dbClassname, javaConfigClass));
           }
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics