打印本文 打印本文 关闭窗口 关闭窗口
自己搞的在oralce下动态生成IBATIS的sqlMap文件小工具
作者:武汉SEO闵涛  文章来源:敏韬网  点击数2912  更新时间:2007/11/14 12:53:57  文章录入:mintao  责任编辑:mintao
ic>";
result += "\n</update>\n\n\n";
return result;
}

private String createWhereSql(ResultSetMetaData rsmd, int numberOfColumns,
String prepend, int detail) throws SQLException {
String result = "";

for (int i = 1; i <= numberOfColumns; i++) {
String colName = rsmd.getColumnNameLight Bulb;

result += ("\n <isPropertyAvailable prepend=\"\" property=\""
+ colName.toLowerCase() + "\" >");

result += ("\n <isNotNull prepend=\"" + prepend
+ "\" property=\"" + colName.toLowerCase() + "\" >");

switch (detail) {
case 1: //where 语句
result += ("\n " + colName + "=#"
+ colName.toLowerCase() + "#");

break;

case 2: //insert的语句
result += ("\n " + colName.toLowerCase());

break;

case 3: //insert 准备的
result += ("\n #" + colName.toLowerCase() + "#");

break;

case 4: //修改的set语句

result += ("\n "
+ colName
+ "=#"
+ colName.toLowerCase()
+ (Types.VARCHAR == rsmd.getColumnTypeLight Bulb ? ":VARCHAR"
: "") + "#");

break;

default:
break;
}

result += ("\n </isNotNull>")
+ "\n </isPropertyAvailable>";
}

return result;
}

private void getType(ResultSetMetaData rsmd, int i, HashMap colMap)
throws SQLException {
switch (rsmd.getColumnTypeLight Bulb) {
case Types.VARCHAR:
colMap.put("COLUMNTYPE", rsmd.getColumnTypeNameLight Bulb + "("
+ rsmd.getPrecisionLight Bulb + ")");
break;
case 2:
colMap.put("COLUMNTYPE", rsmd.getColumnTypeNameLight Bulb + "("
+ rsmd.getPrecisionLight Bulb + "," + rsmd.getScaleLight Bulb + ")");
break;
default:
colMap.put("COLUMNTYPE", rsmd.getColumnTypeNameLight Bulb);
break;
}
}

private List getTableNames() throws DataAccessException {
List result = new Vector();

//SqlMap sqlMap = DaoCommon.getSqlMap(this);
Connection conn;
try {
conn = getSqlMapTempInstance().getDataSource().getConnection();
DatabaseMetaData dbmd = conn.getMetaData();
ResultSet rs = dbmd.getTableTypes();
String[] types = { "TABLE" };
rs = dbmd.getTables(null, dbmd.getUserName(), "%", types);

while (rs.next()) {
result.add(rs.getString("TABLE_NAME"));
}

rs.close();

} catch (SQLException e) {

e.printStackTrace();
}

return result;
}

public String getFilePath() {
return filePath;
}

public void setFilePath(String filePath) {
this.filePath = filePath;
}

public String getMapTablename() {
return mapTablename;
}

public void setMapTablename(String mapTablename) {
this.mapTablename = mapTablename;
}
}

SQL-CONFIG文件配置是:
<?xml version="1.0" encoding="GB2312" ?>
<!DOCTYPE sqlMapConfig
PUBLIC "-//iBATIS.com//DTD SQL Map Config 2.0//EN"
"http://www.ibatis.com/dtd/sql-map-config-2.dtd">

<sqlMapConfig>
  <properties resource="cn/com/mofit/demo/system/dao/maps/jdbc.properties"/>
<!-- debug环境下,将其设为false. 正式运行时应设为true,启用缓存 -->
<settings
  cacheModelsEnabled="false"
  />
<transactionManager type="JDBC">
  <dataSource type="SIMPLE">
<property name="JDBC.Driver" value="${jdbc.driverClassName}"/>
<property name="JDBC.ConnectionURL" value="${jdbc.url}"/>
<property name="JDBC.Username" value="${jdbc.username}"/>
<property name="JDBC.Password" value="${jdbc.password}"/>
<property name="Pool.MaximumActiveConnections"
value="10"/>
<property name="Pool.MaximumIdleConnections" value="5"/>
<property name="Pool.MaximumCheckoutTime"
value="120000"/>
<property name="Pool.TimeToWait" value="500"/>
<property name="Pool.PingQuery" value="select 1 from
ACCOUNT"/>
<property name="Pool.PingEnabled" value="false"/>
<property name="Pool.PingConnectionsOlderThan"
value="1"/>
<property name="Pool.PingConnectionsNotUsedFor"
value="1"/>
</dataSource>
</transactionManager>
<!-- 非常简洁,将用到的sqlMap文件列到这儿就行了 -->
<sqlMap resource="cn/com/mofit/demo/system/dao/maps/User.xml" />
<sqlMap resource="cn/com/mofit/demo/bank/dao/maps/Bank.xml" />
</sqlMapConfig>

jdbc.properties文件配置:
jdbc.driverClassName=oracle.jdbc.driver.OracleDriver
jdbc.url=jdbc:oracle:thinAngryIP:1521:SID
jdbc.username=
jdbc.password=
jdbc.maxActive=3
jdbc.maxIdle=1
jdbc.maxWait=5000

上一页  [1] [2] 

打印本文 打印本文 关闭窗口 关闭窗口