高灵活的SQL使用

2008-07-24 15:01:27.0     浏览:964     来源:中国IT实验室
关键词:  SQL     使用   
/**
* @return执行sql语句(Insert、pdate、delete)
*/
public void execMySQL(String inSQL) throws SQLException {
sql = inSQL;
util = new DBManager();
conn = util.getConn();
conn.setAutoCommit(false); // .setAutoCommit(false);
try {
util.getStmt().execute(sql);
conn.commit();
} catch (SQLException e) {
// TODO Auto-generated catch block
conn.rollback();
e.printStackTrace();
}
util.close();
}
/**
* @return执行sql语句(select)
*/public MyTable execMySQLSelect2(String inSQL) {
MyFunc func = new MyFunc();
sql = inSQL;
//list = new ArrayList();
util = new DBManager();
MyTable kfse = new MyTable();
String s;
int type;
int iValue;
List rows = new ArrayList();
Integer itg = new Integer(0);
BigDecimal ftg = new BigDecimal(0.0);
java.sql.Date date;
try {
rs = util.getStmt().executeQuery(sql);
ResultSetMetaData rsmd = rs.getMetaData();//可用于获取关于 ResultSet 对象中列的类型和属性信息的对象
String[] cols = new String[rsmd.getColumnCount()];//rsmd.getColumnCount()返回此 ResultSet 对象中的列数
String[] colsType = new String[rsmd.getColumnCount()];
for (int i = cols.length; i > 0; i--) {
cols[i - 1] = rsmd.getColumnName(i);//rsmd.getColumnName(i)获取指定列的名称
colsType[i - 1] = String.valueOf(rsmd.getColumnType(i));//rsmd.getColumnType(i)检索指定列的 SQL 类型
}
if (rs != null) {
while (rs.next()) {
Object[] row = new Object[cols.length];
rows.add(row);
for (int i = cols.length; i > 0; i--) {
//row[i - 1] = rs.getString(cols[i - 1]);
type = rsmd.getColumnType(i);
//row[i - 1] = String.valueOf(type);
switch (type) {//type数值参照java.sql.types
case 1 :
row[i - 1] = rs.getString(cols[i - 1]);
break;
case 2 :
ftg = new BigDecimal(0.0);
if (rs.getBigDecimal(cols[i - 1]) != null)
ftg = rs.getBigDecimal(cols[i - 1]); row[i - 1] = ftg;
break;
case 3 :
ftg = new BigDecimal(0.0);
if (rs.getBigDecimal(cols[i - 1]) != null)
ftg = rs.getBigDecimal(cols[i - 1]); row[i - 1] = ftg;
break;
case 4 : //对u24212 数u25454 库u23383 段NTEGER//ok
itg = new Integer(rs.getInt(cols[i - 1]));
row[i - 1] = itg;
break;
case 5 :
itg = new Integer(rs.getInt(cols[i - 1]));
row[i - 1] = itg;
break;
case 6 :
ftg = new BigDecimal(0.0);
if (rs.getBigDecimal(cols[i - 1]) != null)
ftg = rs.getBigDecimal(cols[i - 1]);

[第1页]   [第2页]   [下一页]