public class queryDAOImpl implements queryDAO {
/**
* 動態拼裝查詢
* @param mq 封裝查詢條件的類
* @return
* @throws java.sql.SQLException
*/
public List<Map> queryAll(MnewsQ mq) throws SQLException {
List<Map> v = new Vector<Map>();
Connection con = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
Vector t = new Vector(); //儲存查詢條件
Vector<String> t2 = new Vector<String>(); //儲存查詢條件類型
String sql = "SELECT * FROM mnews WHERE mnews.sc=0";
//如果提交了查詢條件gj (int型)
if (mq.getGj() > 0) {
sql = sql + " AND gj=?";
t.add(mq.getGj());
t2.add("int");
}
//如果提交了查詢條件gjz4 (String型)
if (mq.getGjz4() != null && mq.getGjz4().length() > 0) {
sql = sql + " AND gjz4=?";
t.add(mq.getGjz4());
t2.add("String");
}
try {
con = ConnectionMannagerJNDI.getCon(); //取得數據庫連接
pstmt = con.prepareStatement(sql);
int paramNum = t.size(); //查詢條件數量
for (int i=0; i<paramNum; i++) {
if ("int".equals(t2.get(i).toString())) {
pstmt.setInt(i + 1 + 2, Integer.parseInt(t.get(i).toString()));
} else if ("String".equals(t2.get(i).toString())) {
pstmt.setString(i + 1 + 2, t.get(i).toString());
}//Date、float等類型依此類推
}
rs = pstmt.executeQuery();
//以字段名為鍵,以字段值為值,將查詢結果存入Map,再裝進Vector
ResultSetMetaData rsmd = rs.getMetaData();
int columnNum = rsmd.getColumnCount();
while (rs.next()) {
Map map = new HashMap();
for (int i=1; i<=columnNum; i++) {
map.put(rsmd.getColumnName(i),rs.getObject(i));
}
v.add(map);
}
} finally {
ConnectionMannagerJNDI.releaseConnection(rs, pstmt, null, con);
}
return v;
}
}
/**
* 動態拼裝查詢
* @param mq 封裝查詢條件的類
* @return
* @throws java.sql.SQLException
*/
public List<Map> queryAll(MnewsQ mq) throws SQLException {
List<Map> v = new Vector<Map>();
Connection con = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
Vector t = new Vector(); //儲存查詢條件
Vector<String> t2 = new Vector<String>(); //儲存查詢條件類型
String sql = "SELECT * FROM mnews WHERE mnews.sc=0";
//如果提交了查詢條件gj (int型)
if (mq.getGj() > 0) {
sql = sql + " AND gj=?";
t.add(mq.getGj());
t2.add("int");
}
//如果提交了查詢條件gjz4 (String型)
if (mq.getGjz4() != null && mq.getGjz4().length() > 0) {
sql = sql + " AND gjz4=?";
t.add(mq.getGjz4());
t2.add("String");
}
try {
con = ConnectionMannagerJNDI.getCon(); //取得數據庫連接
pstmt = con.prepareStatement(sql);
int paramNum = t.size(); //查詢條件數量
for (int i=0; i<paramNum; i++) {
if ("int".equals(t2.get(i).toString())) {
pstmt.setInt(i + 1 + 2, Integer.parseInt(t.get(i).toString()));
} else if ("String".equals(t2.get(i).toString())) {
pstmt.setString(i + 1 + 2, t.get(i).toString());
}//Date、float等類型依此類推
}
rs = pstmt.executeQuery();
//以字段名為鍵,以字段值為值,將查詢結果存入Map,再裝進Vector
ResultSetMetaData rsmd = rs.getMetaData();
int columnNum = rsmd.getColumnCount();
while (rs.next()) {
Map map = new HashMap();
for (int i=1; i<=columnNum; i++) {
map.put(rsmd.getColumnName(i),rs.getObject(i));
}
v.add(map);
}
} finally {
ConnectionMannagerJNDI.releaseConnection(rs, pstmt, null, con);
}
return v;
}
}