java中SQL拼接的问题
select*frominterntWHEREname=?andinstitute=?andgender=?andmajorCd=?andprovinceCd=?这个查询...
select * from intern t WHERE name=? and institute=? and gender=? and majorCd=? and provinceCd=?
这个查询SQL在JAVA中怎么拼接,还要判断里面字段是否为空,空就不拼接上去 展开
这个查询SQL在JAVA中怎么拼接,还要判断里面字段是否为空,空就不拼接上去 展开
5个回答
展开全部
//既然你说有可能不拼接,直接不拼接是无法实现的可以换一种思路,就是全部查询,比如,你不想加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);
}
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);
}
展开全部
你可以 定义一个 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 语句啦
Stringbuffer sql=new Stringbuffer( " select * from intern t WHERE 1=1 " );
if(name!=null ){
sql.append( " and t.name='"+name+"' " );
}
以此类推
最后把sql.tostring () 就能转换成 Strings类型的 sql 语句啦
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
StringBuilder sql = new StringBuilder();
sql.append(" select * from intern t WHERE 1=1 ");
if(name.length!=0)
{
sql.append(" name= " +name);
}
sql.toString
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=?
select * from intern
WHERE (name=? OR name IS NULL) and institute=? and gender=? and majorCd=? and provinceCd=?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
String basesql="select * from intern t where 1=1";
if(name!=null){
basesql+=" and name=?";
}
if(institute!=null){
basesql+=" and institute =?";
}
.........
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询