自做代码生成器(二)规则格式定义

数据库表到Java类映射及代码生成
本文介绍了一种将数据库表名及其字段名转换为Java类名及变量名的方法,并通过XML配置文件来定义代码生成所需的信息,包括数据库连接参数、模板类型等。
   首先是数据表和java类之间的转换规则,数据库以oracle举例,我一般的命名方式是这样,表的名字是 表前缀_表含义 这种,比如手机杂志项目有个文章表,表的名字就叫做magazine_article,而类的名字就叫做magazinearticle,字段也是一样,比如有个字段叫做article_title,相应的变量名就是articletitle。当然这些规则以后是可以手动修改的。    接着就是考虑生成代码需要获取的信息,这些信息当然是最好保存在配置文件里,比如可以定义如下xml文件:
<div class='codearea xml'><div style='color: #000000;'><br/><font color='#0000ff'><</font>?<font color='#a52a2a'>xml</font> <font color='#ff0000'>version</font>=<font color='#000000'>"1.0"</font> <font color='#ff0000'>encoding</font>=<font color='#000000'>"gb2312"</font>?<font color='#0000ff'>></font><br/><font color='#0000ff'><</font><font color='#a52a2a'>auto</font>-<font color='#a52a2a'>coder</font> <font color='#a52a2a'>comment</font>=<font color='#000000'>"代码生成器配置文件"</font><font color='#0000ff'>></font><br/> <font color='#0000ff'><</font><font color='#a52a2a'>file</font>-<font color='#a52a2a'>path</font> <font color='#a52a2a'>comment</font>=<font color='#000000'>"生成代码保存的路径"</font><font color='#0000ff'>></font><font color='#a52a2a'>gen</font><font color='#0000ff'></</font><font color='#a52a2a'>file</font>-<font color='#a52a2a'>path</font><font color='#0000ff'>></font><br/> <font color='#0000ff'><</font><font color='#a52a2a'>database</font> <font color='#a52a2a'>comment</font>=<font color='#000000'>"数据库配置"</font><font color='#0000ff'>></font><br/>  <font color='#0000ff'><</font><font color='#a52a2a'>driver</font><font color='#0000ff'>></font><font color='#a52a2a'>oracle</font>.<font color='#a52a2a'>jdbc</font>.<font color='#a52a2a'>driver</font>.<font color='#a52a2a'>oracledriver</font><font color='#0000ff'></</font><font color='#a52a2a'>driver</font><font color='#0000ff'>></font><br/>  <font color='#0000ff'><</font><font color='#a52a2a'>url</font><font color='#0000ff'>></font><font color='#a52a2a'>jdbc</font>:<font color='#a52a2a'>oracle</font>:<font color='#a52a2a'>thin</font>:@<font color='#a52a2a'>192</font>.<font color='#a52a2a'>168</font>.<font color='#a52a2a'>0</font>.<font color='#a52a2a'>186</font>:<font color='#a52a2a'>1521</font>:<font color='#a52a2a'>testdb</font><font color='#0000ff'></</font><font color='#a52a2a'>url</font><font color='#0000ff'>></font><br/>  <font color='#0000ff'><</font><font color='#a52a2a'>username</font><font color='#0000ff'>></font><font color='#a52a2a'>wap</font><font color='#0000ff'></</font><font color='#a52a2a'>username</font><font color='#0000ff'>></font><br/>  <font color='#0000ff'><</font><font color='#a52a2a'>password</font><font color='#0000ff'>></font><font color='#a52a2a'>a123</font><font color='#0000ff'></</font><font color='#a52a2a'>password</font><font color='#0000ff'>></font><br/>  <font color='#0000ff'><</font><font color='#a52a2a'>dbflag</font> <font color='#a52a2a'>comment</font>=<font color='#000000'>"是否从数据库读取"</font><font color='#0000ff'>></font><font color='#a52a2a'>false</font><font color='#0000ff'></</font><font color='#a52a2a'>dbflag</font><font color='#0000ff'>></font><br/> <font color='#0000ff'></</font><font color='#a52a2a'>database</font><font color='#0000ff'>></font><br/> <font color='#0000ff'><</font><font color='#a52a2a'>templates</font> <font color='#a52a2a'>comment</font>=<font color='#000000'>"单个数据表模板"</font><font color='#0000ff'>></font><br/>  <font color='#0000ff'><</font><font color='#a52a2a'>template</font><font color='#0000ff'>></font><br/>   <font color='#0000ff'><</font><font color='#a52a2a'>template</font>-<font color='#a52a2a'>type</font><font color='#0000ff'>></font><font color='#a52a2a'>java</font><font color='#0000ff'></</font><font color='#a52a2a'>template</font>-<font color='#a52a2a'>type</font><font color='#0000ff'>></font><br/>   <font color='#0000ff'><</font><font color='#a52a2a'>template</font>-<font color='#a52a2a'>file</font><font color='#0000ff'>></font><font color='#a52a2a'>dao</font>.<font color='#a52a2a'>vm</font><font color='#0000ff'></</font><font color='#a52a2a'>template</font>-<font color='#a52a2a'>file</font><font color='#0000ff'>></font><br/>   <font color='#0000ff'><</font><font color='#a52a2a'>java</font>-<font color='#a52a2a'>package</font><font color='#0000ff'>></</font><font color='#a52a2a'>java</font>-<font color='#a52a2a'>package</font><font color='#0000ff'>></font><br/>   <font color='#0000ff'><</font><font color='#a52a2a'>class</font>-<font color='#a52a2a'>name</font><font color='#0000ff'>></font><font color='#a52a2a'>classnamedao</font>.<font color='#a52a2a'>xml</font><font color='#0000ff'></</font><font color='#a52a2a'>class</font>-<font color='#a52a2a'>name</font><font color='#0000ff'>></font><br/>  <font color='#0000ff'></</font><font color='#a52a2a'>template</font><font color='#0000ff'>></font><br/> <font color='#0000ff'></</font><font color='#a52a2a'>templates</font><font color='#0000ff'>></font> <br/><br/> <font color='#0000ff'><</font><font color='#a52a2a'>table</font>-<font color='#a52a2a'>templates</font> <font color='#a52a2a'>comment</font>=<font color='#000000'>"多个数据表模板"</font><font color='#0000ff'>></font><br/>  <font color='#0000ff'><</font><font color='#a52a2a'>template</font><font color='#0000ff'>></font><br/>   <font color='#0000ff'><</font><font color='#a52a2a'>template</font>-<font color='#a52a2a'>type</font><font color='#0000ff'>></font><font color='#a52a2a'>other</font><font color='#0000ff'></</font><font color='#a52a2a'>template</font>-<font color='#a52a2a'>type</font><font color='#0000ff'>></font><br/>   <font color='#0000ff'><</font><font color='#a52a2a'>template</font>-<font color='#a52a2a'>file</font><font color='#0000ff'>></font><font color='#a52a2a'>create</font>.<font color='#a52a2a'>vm</font><font color='#0000ff'></</font><font color='#a52a2a'>template</font>-<font color='#a52a2a'>file</font><font color='#0000ff'>></font><br/>   <font color='#0000ff'><</font><font color='#a52a2a'>java</font>-<font color='#a52a2a'>package</font><font color='#0000ff'>></</font><font color='#a52a2a'>java</font>-<font color='#a52a2a'>package</font><font color='#0000ff'>></font><br/>   <font color='#0000ff'><</font><font color='#a52a2a'>class</font>-<font color='#a52a2a'>name</font><font color='#0000ff'>></font><font color='#a52a2a'>create</font>.<font color='#a52a2a'>sql</font><font color='#0000ff'></</font><font color='#a52a2a'>class</font>-<font color='#a52a2a'>name</font><font color='#0000ff'>></font><br/>  <font color='#0000ff'></</font><font color='#a52a2a'>template</font><font color='#0000ff'>></font> <br/> <font color='#0000ff'></</font><font color='#a52a2a'>table</font>-<font color='#a52a2a'>templates</font><font color='#0000ff'>></font><br/> <font color='#0000ff'><</font><font color='#a52a2a'>table</font>-<font color='#a52a2a'>file</font> <font color='#a52a2a'>comment</font>=<font color='#000000'>"要生成的数据表文件"</font><font color='#0000ff'>></font><font color='#a52a2a'>tables</font>.<font color='#a52a2a'>txt</font><font color='#0000ff'></</font><font color='#a52a2a'>table</font>-<font color='#a52a2a'>file</font><font color='#0000ff'>></font><br/><font color='#0000ff'></</font><font color='#a52a2a'>auto</font>-<font color='#a52a2a'>coder</font><font color='#0000ff'>></font>
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值