1. 在java中一条sql语句中有多个函数和where条件如何替换其中的字段为空格
用占位符,${id},${name},然后用值去替换这些占位符
2. 用Select*from where like。Java
假如你要接受用户的输入,让他可以查询一些数据,支持模糊查找的,所以他输入一些字符,你要把包含这些字符的返回,所以用户的输入当作一个函数的参数被传入,你用String userInput接收,例如用户输入"刘"
public List<User> searchUsers(String userInput) {
... 获得Connection conn
PreparedStatement pstmt = conn.prepareStatement("SECLET*FROM 图书表 WHERE 作者 LIKE ?");
pstmt .setString(1,"%" + userInput + "%");
获得结果集,返回。
}
注意通过pstmt .setString和直接把这个userInput写到SQL语句里的效果不一样,写到SQL语句里用户的输入就当成SQL语句的一部分了,用户的输入还能包含sql语句,虽然用户不这写,而且用户如果输入一些特殊的字符会把你的sql语句破坏掉,而pstmt .setString是不一样的,他是预编译的,会把 ? 留一个位置(占位)然后完全按照你输入的string进行匹配。你自己理解一下吧
楼上两位的很有可能造成SQL注入式攻击, 如果用户查找时这么输入
String strInput = "刘%' or 1=1 --"; 则执行后所有结果都将被查出来。
PreparedStatement 实例包含已编译的 SQL 语句。这就是使语句“准备好”。包含于 PreparedStatement 对象中的 SQL 语句可具有一个或多个 IN 参数。IN参数的值在 SQL 语句创建时未被指定。相反的,该语句为每个 IN 参数保留一个问号(“?”)作为占位符。每个问号的值必须在该语句执行之前,通过适当的setXXX 方法来提供。 由于 PreparedStatement 对象已预编译过,所以其执行速度要快于 Statement 对象。因此,多次执行的 SQL 语句经常创建为 PreparedStatement 对象,以提高效率。 作为 Statement 的子类,PreparedStatement 继承了 Statement 的所有功能。另外它还添加了一整套方法,用于设置发送给数据库以取代 IN 参数占位符的值。同时,三种方法 execute、 executeQuery 和 executeUpdate 已被更改以使之不再需要参数。这些方法的 Statement 形式(接受 SQL 语句参数的形式)不应该用于 PreparedStatement 对象。
3. Java往MySQL输入数据时where后有两个值怎么弄
兄台,因为你数据库的各个字段类型不一样,你如果直接拼串的话,数据库是varchar或varchar2,支持你拼,并且格式如下,注意单引号啊!!!!!
sql="SELECT * "+ " FROM workingandclosingtime "+" WHERE gh='"+a+"' and date=to_date("+b+",'yyyy-mm-dd')";
记住了,sql语句一定要通过转换,保证和数据库的类型一致,这样做很麻烦的,如下就非常简单了:
sql="SELECT * "+ " FROM workingandclosingtime "+" WHERE gh=? and date=?";
PreparedStatement pstmt = con.prepareStatement(sql);
pstmt.setBigDecimal(1, 153833.00)
pstmt.setInt(2, 110592)
pstmt.execute();
这样,查询结果就出来了。
但愿答对了!!!!
4. javaweb 求wheresql语句怎么写
先学习JAVA的基础。
然后学习数据库。如:MySQL的
然后学习HTML,CSS,JavaScript和等等。
然后学习JSP
然后学习Servlet的
的JavaBean
5. 关于sql语句添加where条件问题,用java语句
对字符串的合法性判断应该放到页面上去,可以采用正则表达式,写到script脚本里去。这样首先就做到了从页面传来的信息都是合法的。
声明一个字符串变量sql,初始化为where前的sql语句。
声明一个整形变量count,初始化为0;
将从页面得到的信息进行判断,如果为空值则不加到sql后,如果不为空值,则先count++ ,再判断count是否为1,如果是1,那将条件直接加到sql语句之后,如果大于1,那么就在条件之前加"and"。
6. 数据库 Java SQL select from where 两个条件并列情况
SELECT `id`, `searchTimes` FROM `relationship` WHERE ('word_one' = 'man' AND 'word_two' = 'banana') OR ('word_one' = 'banana' AND 'word_two' = 'man')
7. java怎么像sql的where条件那样处理list里面的数据
public static void main(String[] args){
vo vo1 = new vo("张三",12,"武汉");
vo vo2 = new vo("李四",12,"武汉");
vo vo3 = new vo("王五",12,"北京");
List<vo> list = Arrays.asList(vo1,vo2,vo3);
//条件
vo vo4 = new vo("",null,"武汉");
if(vo4.getName() != null && !"".equals(vo4.getName())){
list = list.stream().filter(vo -> vo.getName().equals(vo4.getName()))
.collect(Collectors.toList());
}
if(vo4.getAge() != null){
list = list.stream().filter(vo -> vo.getAge().equals(vo4.getAge()))
.collect(Collectors.toList());
}
if(vo4.getCity() != null && !"".equals(vo4.getCity())){
list = list.stream().filter(vo -> vo.getCity().equals(vo4.getCity()))
.collect(Collectors.toList());
}
list.stream().forEach(vo -> {
System.out.println(vo);
});
}
8. 在sql的where条件下怎么加判断语句
是oracle,A是外界传入,需要判断A是否为空 来决定where后面的提啊件。 我只是把语句简化成这样会容易理解一点回答: 你这个是存储过程不,前面有定义变量用来接受外界传入的值吗?判断是不是空的用A is null来判断追问: 不是存储过程,是一个function方法 ,我的sql语句很长,只需要where后面的这一个条件需要变动 ,用if else的方法是可以实现我的需求,不过就会造成很多冗余代码。两段长长的代码不一样的地方就是 一个是num =A 一个是num is null 。 所以需要一个方便点的办法回答: function和存储过程类似的 if length(A)<0 then 刚才上面那个我的回答错了,不是function, 是一个存储过程(procere) , 这个如果用java或者c#代码来解决就非常简单了,不过在直接的sql语句上去操作就有点~回答: 先建3个变量,前两个保存不同的where语句,第三个空着 var a := 'num =A' var b :='num is nul'var c然后根据参数选择用哪个语句变量 用变量把语句存起来 if A = null thenc=b;elsif A<null thenc=a;end if;最后和前面的select语句用连接符和变量c连接起来用 " || " 最后sql样式如下: select......from .......||c既可补充: 掉了个关键字where
9. 在用 SQL 查询页号的时候采用模糊查询 并嵌套在JAVA中 加where 跟不加where
如果是用MYSQL试试用LIMIT先把分页在查询过程中做好,
然后再通过你传进去的参数来计算你的页数
在limit后面加两个参数,起始,结束.
如果是ORACLE就嵌套分页吧.
这种代码网上一搜一大堆的..