import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
public class DBFunction
{
public static Connection getConn(DbInfo dbInfo)
{
Connection conn = null;
try
{
if (null == conn)
{
Class.forName(dbInfo.getDriver());
conn = DriverManager.getConnection(dbInfo.getUrl(), dbInfo.getUserName(), dbInfo.getPwd());
}
}
catch (ClassNotFoundException cnfe)
{
System.out.println("ClassNotFoundException");
}
catch (SQLException sqle)
{
System.out.println("conn exception ");
}
return conn;
}
/**
* <一句话功能简述>执行sql语句并得到结果
* <功能详细描述>
* @param sql
* @return
* @throws SQLException
* @see [类、类#方法、类#成员]
*/
public static List executeSql(String sql, Connection conn)
throws SQLException
{
Statement st = null;
ResultSet rs = null;
List result = new ArrayList();
try
{
sql = sql.toUpperCase();
st = conn.createStatement();
rs = st.executeQuery(sql);
String columName = "";
String values = "";
// 只取select 和 from中间的字段信息
String[] columns = sql.substring(7, sql.indexOf(" FROM")).split(",");
while (rs.next())
{
values = "";
for (int i = 0; i < columns.length; i++)
{
columName = columns[i].trim();
// 这个字段的值是<long>型要特殊处理
if (columName.trim().equalsIgnoreCase("DATA_DEFAULT"))
{
values = values + Tools.streamToString(rs.getBinaryStream(i + 1));
}
else
{
values = values + rs.getString(i + 1);
}
if (i < columns.length - 1)
{
values = values + ",";
}
}
result.add(values);
}
}
catch (Exception ex)
{
System.out.println("sql:" + sql);
System.out.println("Excute sql occur exception:" + ex.getMessage());
}
finally
{
try
{
if (null != st)
{
st.close();
}
if (null != rs)
{
rs.close();
}
}
catch (Exception ex)
{
ex.printStackTrace();
}
}
return result;
}
}