sql动态条件查询语句
sql动态条件查询语句,比如,一张表Student的字段如下:姓名,学号,班级,年龄,性别。然后我根据要求进行查询,比如select*fromStudentwhere()...
sql动态条件查询语句,比如,一张表Student的字段如下:姓名,学号,班级,年龄,性别。
然后我根据要求进行查询,比如select * from Student where ()
后面的条件是动态的,我该怎么写?
比如:开始我是按班级查询的【select * from Student where 班级=“XX”】,
但感觉范围太大,我又加上性别这个限制
【select * from Student where 班级=“XX” and 性别=“男”】。
这个性别如何动态加上?
求帮助!!!!! 展开
然后我根据要求进行查询,比如select * from Student where ()
后面的条件是动态的,我该怎么写?
比如:开始我是按班级查询的【select * from Student where 班级=“XX”】,
但感觉范围太大,我又加上性别这个限制
【select * from Student where 班级=“XX” and 性别=“男”】。
这个性别如何动态加上?
求帮助!!!!! 展开
2个回答
展开全部
你的意思是通过程序来添加查询吧,我给你一个代码参考
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import Jdbc.Util.DBPUtil;
public class PreparedStatementDemo {
public static void main(String[] args)
{
PreparedStatementDemo psd = new PreparedStatementDemo();
psd.updateSalary("JACOB",3000);//给方法传入2个参数,执行sql语句
psd.selectSalary("JACOB");
}
public void updateSalary(String ename,double sal)
{
String sql = "Update stu_emp set sal= ? Where ename = ?";
Connection cn = null;
PreparedStatement ps = null;
try
{
cn = DBPUtil.getConnection();
ps = cn.prepareStatement(sql);
ps.setDouble(1, sal);
ps.setString(2, ename);
int num = ps.executeUpdate();
System.out.println("提示:总共有 "+num+" 条数据已经更新!");
}
catch (SQLException e)
{
e.printStackTrace();
}
finally
{
DBPUtil.stmtClose(ps);
DBPUtil.connClose(cn);
}
}
public void selectSalary(String name)
{
String sql = "Select * From stu_emp Where ename = ?";
Connection cn = null;
PreparedStatement ps = null;
ResultSet rs = null;
try
{
cn = DBPUtil.getConnection();
ps = cn.prepareStatement(sql);
ps.setString(1, name);
rs = ps.executeQuery();
while(rs.next())
{
System.out.println(rs.getString("ename")+" 的工资是: "+ rs.getInt("sal"));
}
}
catch (SQLException e)
{
e.printStackTrace();
}
finally
{
DBPUtil.stmtClose(ps);
DBPUtil.rsClose(rs);
DBPUtil.connClose(cn);
}
}
}
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import Jdbc.Util.DBPUtil;
public class PreparedStatementDemo {
public static void main(String[] args)
{
PreparedStatementDemo psd = new PreparedStatementDemo();
psd.updateSalary("JACOB",3000);//给方法传入2个参数,执行sql语句
psd.selectSalary("JACOB");
}
public void updateSalary(String ename,double sal)
{
String sql = "Update stu_emp set sal= ? Where ename = ?";
Connection cn = null;
PreparedStatement ps = null;
try
{
cn = DBPUtil.getConnection();
ps = cn.prepareStatement(sql);
ps.setDouble(1, sal);
ps.setString(2, ename);
int num = ps.executeUpdate();
System.out.println("提示:总共有 "+num+" 条数据已经更新!");
}
catch (SQLException e)
{
e.printStackTrace();
}
finally
{
DBPUtil.stmtClose(ps);
DBPUtil.connClose(cn);
}
}
public void selectSalary(String name)
{
String sql = "Select * From stu_emp Where ename = ?";
Connection cn = null;
PreparedStatement ps = null;
ResultSet rs = null;
try
{
cn = DBPUtil.getConnection();
ps = cn.prepareStatement(sql);
ps.setString(1, name);
rs = ps.executeQuery();
while(rs.next())
{
System.out.println(rs.getString("ename")+" 的工资是: "+ rs.getInt("sal"));
}
}
catch (SQLException e)
{
e.printStackTrace();
}
finally
{
DBPUtil.stmtClose(ps);
DBPUtil.rsClose(rs);
DBPUtil.connClose(cn);
}
}
}
更多追问追答
追问
恩,你这个也是一种方法,受教了。不过我用的是框架,是直接将SQL语句写在配置文件里的,所以不通过程序来实现
追答
我正在学spring,不过还没有学到你这里。应该是通过Bean来获得参数吧,客户端发送请求,容器接受请求后,Bean里面得到请求参数,我今天刚学了通过Bean方法动态获得验证码,应该和这个相似。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询