51,410
社区成员
发帖
与我相关
我的任务
分享public class PersonServices {
public List<Map<String,String>> queryperson(String...val)throws Exception
{
Connection conn=null;
PreparedStatement psmt=null;
ResultSet rs=null;
Db2 db2=new Db2();
try{
String pname=val[0];
String pnumber=val[1];
String xl=val[2];
String jszc=val[3];
String bsal=val[4];
String esal=val[5];
System.out.println(pname);
System.out.println(pnumber);
System.out.println(xl);
System.out.println(jszc);
System.out.println(bsal);
System.out.println(esal);
conn=db2.ConnAcc();
List<Object> pars=new ArrayList<>();
StringBuilder sql=new StringBuilder("select * from X where 1=1");
if(pname != null && !pname.trim().isEmpty()){
sql.append(" and PNAME=");
sql.append(pname);
pars.add(pname);
}
if(pnumber != null && !pnumber.trim().isEmpty()){
sql.append(" and PNUMBER=");
sql.append(pnumber);
pars.add(pnumber);
}
if(xl != null && !xl.trim().isEmpty()){
sql.append(" and XL=");
sql.append(xl);
pars.add(xl);
}
if(jszc != null && !jszc.trim().isEmpty()){
sql.append(" and JSZC=");
sql.append(jszc);
pars.add(jszc);
}
if(bsal != null && !bsal.trim().isEmpty()){
sql.append(" and BSAL>=");
sql.append(bsal);
pars.add(bsal);
}
if(esal != null && !esal.trim().isEmpty()){
sql.append(" and ESAL<=");
sql.append(esal);
pars.add(esal);
}
System.out.println(sql);
System.out.println(pars);
psmt=conn.prepareStatement(sql.toString());
int index=1;
for (Object parm : pars) {
psmt.setObject(index++, parm);
}
rs=psmt.executeQuery();
ResultSetMetaData rsmd=rs.getMetaData();
int count=rsmd.getColumnCount();
int init_size=((int)(count/0.75))+2;
List<Map<String,String>> rows=new ArrayList<>();
Map<String,String> ins=null;
while(rs.next()){
ins=new HashMap<>(init_size);
for(int i=1;i<=count;i++){
ins.put(rsmd.getColumnLabel(i).toLowerCase(),rs.getString(i));
}
rows.add(ins);
}
return rows;
}catch(SQLException e){
throw new RuntimeException(e);
}
//return null;
}
public class a1servlet extends HttpServlet{
public void init(ServletConfig config) throws ServletException{
super.init(config);
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String pname=request.getParameter("qpname");
String pnumber=request.getParameter("qpumber");
String xl=request.getParameter("qxl");
String jszc=request.getParameter("qjszc");
String bsal=request.getParameter("bsal");
String esal=request.getParameter("esal");
String val[]={pname,pnumber,xl,jszc,bsal,esal};
PersonServices service=new PersonServices();
try {
List<Map<String,String>> rows=service.queryperson(val);
request.setAttribute("rows", rows);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(pname);
System.out.println(pnumber);
System.out.println(xl);
System.out.println(jszc);
System.out.println(bsal);
System.out.println(esal);
}
<form action="/index/a1" method="get">
<!-- 数据查询条件区 -->
<div class="query">
<table>
<caption>
员工管理
<hr>
</caption>
<tr class="title">
<td colspan="100">查询条件</td>
</tr>
<tr>
<td>姓名</td>
<td>
<input type="text" name="qpname">
</td>
<td>身份证</td>
<td>
<input type="text" name="qpnumber">
</td>
</tr>
<tr>
<td>学历</td>
<td>
<select name="qxl">
<option value="">==不限==</option>
<option value="1">高中以下</option>
<option value="2">高中</option>
<option value="3">专科</option>
<option value="4">本科</option>
</select>
</td>
<td>技术职称</td>
<td>
<select name="qjszc">
<option value="">==不限==</option>
<option value="01">初级职称</option>
<option value="02">中级职称</option>
<option value="03">副高级职称</option>
<option value="04">高级职称</option>
</select>
</td>
</tr>
<tr>
<td>工资[B]</td>
<td>
<input type="number" step="0.01" name="bsal">
</td>
<td>工资[E]</td>
<td>
<input type="number" step="0.01" name="esal">
</td>
</tr>
</table>
</div>
<!-- 数据迭代区(以表格形式显示查询结果) -->
<div class="data">
${rows }
</div>
<!-- 按钮区 -->
<div class="button">
<table>
<tr>
<td>
<input type="submit" name="next" value="查询">
<input type="submit" name="next" value="添加">
<input type="submit" name="next" value="删除" disabled="disabled">
</td>
</tr>
</table>
</div>
</form>
[/quote]
其实我不太清楚这部分的代码

[/quote]
那说明sql拼接没有问题,拼接完直接这样
psmt=conn.prepareStatement(sql.toString());
rs = psmt.executeQuery();






