java中SQL拼接的问题

select*frominterntWHEREname=?andinstitute=?andgender=?andmajorCd=?andprovinceCd=?这个查询... select * from intern t WHERE name=? and institute=? and gender=? and majorCd=? and provinceCd=?
这个查询SQL在JAVA中怎么拼接,还要判断里面字段是否为空,空就不拼接上去
展开
 我来答
希尼卡米
2013-05-21 · TA获得超过170个赞
知道答主
回答量:123
采纳率:0%
帮助的人:78.7万
展开全部
//既然你说有可能不拼接,直接不拼接是无法实现的可以换一种思路,就是全部查询,比如,你不想加proviceCd=”“的判断,可以让他全部查询出来,因为不加条件就是全盘检查,使用模糊查询,让条件 like ‘%’ ,”%“代表任意长度任意字符,所以都符合条件,不会排除任何一个其他项目。希望这个思路能帮到你,如果不行我也没办法了。
String sql = select * from intern t WHERE name like '?' and institute like '? 'and gender like '?' and majorCd like '?' and provinceCd like '?';

PreparedStatement pstmt = null;
int status = -1;
try {
pstmt = conn.prepareStatement(sql);
if(name==null)
{
pstmt.setString(1, %);
}
else
{
pstmt.setString(1, name);
}
/*
其他条件判断,
*/
status = pstmt.executeUpdate();
if (status > 0) {
System.out.println("成功");
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
DBResources.resource(conn, pstmt);
}
luckylcs
推荐于2017-10-03 · 超过14用户采纳过TA的回答
知道答主
回答量:58
采纳率:0%
帮助的人:19.7万
展开全部
你可以 定义一个 Stringbuffer 例如

Stringbuffer sql=new Stringbuffer( " select * from intern t WHERE 1=1 " );

if(name!=null ){
sql.append( " and t.name='"+name+"' " );
}
以此类推

最后把sql.tostring () 就能转换成 Strings类型的 sql 语句啦
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
pangzhiming
2013-05-21 · TA获得超过374个赞
知道小有建树答主
回答量:787
采纳率:100%
帮助的人:347万
展开全部
StringBuilder sql = new StringBuilder();
sql.append(" select * from intern t WHERE 1=1 ");
if(name.length!=0)
{
sql.append(" name= " +name);
}
sql.toString
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-05-21
展开全部
用OR/AND 操作

select * from intern

WHERE (name=? OR name IS NULL) and institute=? and gender=? and majorCd=? and provinceCd=?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友9efab9e8c
2013-05-21 · 超过14用户采纳过TA的回答
知道答主
回答量:82
采纳率:0%
帮助的人:36.6万
展开全部
String basesql="select * from intern t where 1=1";
if(name!=null){
basesql+=" and name=?";
}
if(institute!=null){
basesql+=" and institute =?";
}
.........
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式