`
ritcher
  • 浏览: 82329 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

PreparedStatement like 的用法

SQL 
阅读更多
 

  

String expr = "select * from table where url like ?";
pstmt = con.prepareStatement(expr);
String a="a";
pstmt.setString(1, "%"+a+"%");
pstmt.execute();

这样写 PreparedStatement  会默认生成sql语句: select * from table where url like '%http%' 

不要这样写

String expr = "select * from table where url like %?%";

 也不要这样写

pstmt = con.prepareStatement(expr);
String a="%a%";
pstmt.setString(1, a);
pstmt.execute();

 


   

分享到:
评论
5 楼 yvfish 2012-04-19  
最后一个和第一个相同的!!!
4 楼 wyt1213 2011-02-26  
最后一个写法哪里有问题呢?
3 楼 fztzzh 2011-02-14  
太棒了,我还以为找不到相关文章呢,谢谢了
2 楼 寒枫无云 2010-07-19  
我也学习了!
1 楼 windrlee 2008-10-22  
学习了!!!!

相关推荐

    parastatement的方法

    5. `searchEmployees(String keyword)`:搜索包含关键词的员工,可能使用LIKE操作符和PreparedStatement,将关键词作为参数。 在实际使用中,PreparedStatement还需要正确管理和关闭资源,如使用try-with-resources...

    第24讲 JDBC编程2.ppt

    在回顾存储过程的概念后,CallableStatement的使用方法与PreparedStatement类似,只是它处理的SQL语句通常以`CALL`开头,用于调用数据库中预定义的函数或过程。例如: ```java CallableStatement cs = con....

    java模糊查询方法

    在Java中通过JDBC连接数据库并执行SQL查询时,可以使用`LIKE`关键字来进行模糊匹配。 ```java String sql = "SELECT * FROM table WHERE column LIKE ?"; PreparedStatement pstmt = connection.prepareStatement...

    JAVAJdbcMVC04之高级查询

    5. **使用PreparedStatement进行参数化查询**:当条件是变量时,使用PreparedStatement能避免SQL注入,同时提高性能。例如,`PreparedStatement pstmt = conn.prepareStatement("SELECT * FROM users WHERE name=? ...

    oracleDay7优化

    - PreparedStatement允许使用参数化查询,可以有效防止SQL注入攻击,并且对于重复执行的SQL语句,只需要编译一次,后续执行时可以直接使用,从而提高了执行效率。 #### 二、索引的创建与使用 1. **索引的创建** ...

    代码走查注意事项

    - 避免过多使用like、exist和not exist,这些操作可能影响性能。根据结果集大小谨慎使用。 7. 错误处理和自定义异常: - 定义并抛出自定义异常,如LcUserFailedException,以封装业务层可能出现的异常。 - 在BO...

    利用JDBC的图书馆管理系统

    此外,JDBC提供了一系列方法来执行SQL语句,包括Statement、PreparedStatement和CallableStatement。在本项目中,PreparedStatement更适合,因为它允许预编译SQL语句,提高性能并防止SQL注入攻击。例如: ```java ...

    完整JSP模糊查询完整JSP模糊查询

    在将输入值插入到SQL语句之前,应使用`PreparedStatement`的set方法设置参数,而不是直接拼接字符串。 5. **五种模糊查询方式**: - **前置模糊**:查询以特定字符串开头的数据,如`'%关键词'`。 - **后置模糊**...

    SQL语句拼接

    尽管使用`StringBuffer`拼接SQL语句是一种简单有效的方法,但它也存在一些潜在的安全隐患,尤其是在处理用户输入时。例如,如果用户提交恶意输入,可能会导致SQL注入攻击。为了避免这种情况的发生,建议采用以下措施...

    JAVA,多条件,模糊查询,多个条件同时查询显示结果

    你需要导入对应的数据库驱动类,例如对于MySQL,可能是`com.mysql.jdbc.Driver`,然后通过`Class.forName()`方法注册驱动。接着,使用`DriverManager.getConnection()`创建数据库连接。 在连接建立后,你可以创建一...

    jsp分页技术及其对数据库两张表的增删查改和模糊查询

    例如,在getAll方法中,我们可以看到使用了LIKE语句来查询包含指定字符串的数据。这种查询方式可以实现模糊查询的功能,提高查询效率。 4. 数据库两张表的关联查询 在ContactDao类中,我们可以看到使用了关联查询...

    SQL课堂笔记

    例如,`PreparedStatement`允许我们使用占位符,如`SET @name=?`,然后通过`setString()`方法设置实际值,这样可以避免因用户输入的恶意数据导致的安全问题。 这些笔记中的知识点涵盖了SQL的基本操作和一些高级特性...

    java编写的增加,修改的小例子

    - **Create(创建)**:在Java中,我们通常使用PreparedStatement或Statement对象来执行SQL的INSERT语句,以向数据库中插入新记录。 - **Read(读取)**:通过SELECT语句从数据库获取数据,结果集可以通过...

    计算机专业jsp结课大作业知识.pdf

    Java Bean中,创建PreparedStatement对象,使用`like`操作符进行模糊匹配,如`"select * from student where id like '%" + query + "%'"`,并用`executeQuery()`获取结果集。将查询结果存储在ArrayList中,每个元素...

    JAVA—JDBC数据库查询小程序

    这通常通过`Class.forName()`方法加载驱动,然后使用`DriverManager.getConnection()`方法建立到数据库的连接。连接字符串包含数据库URL、用户名和密码。 ```java Class.forName("com.mysql.jdbc.Driver"); ...

    java使用oracle数据库

    - **模糊查询**:使用`LIKE`操作符进行模糊匹配,例如`SELECT * FROM Student WHERE name LIKE '%张%'`,找到所有名字包含"张"的学生。 了解这些基本概念和操作后,你可以编写Java程序来实现与Oracle数据库的连接...

    JDBC+struts1模糊查询分页

    在模糊查询中,我们通常会使用`LIKE`关键字配合通配符(如`%`)来实现。例如,要查询名字包含"张"的所有用户,SQL语句可能为:`SELECT * FROM users WHERE name LIKE '%张%'`。 接下来,让我们看看如何在Struts1...

    java学生信息管理系统

    在设计查询模块时,可以使用PreparedStatement的setString方法设置参数,然后执行查询语句,最后通过ResultSet获取结果。为了提升用户体验,可以实现模糊查询,比如使用LIKE操作符配合通配符进行姓名的模糊匹配。 ...

    用struts对数据库进行增删改查

    其中使用了`PreparedStatement`来防止SQL注入攻击,并通过`setString`和`setInt`等方法设置参数值。 ##### 2. DeleteDAO.java ```java package dao; import java.sql.Connection; import java.sql....

    servlet增删改查改进版(增加模糊查询)

    在数据库查询语句中,这通常通过使用通配符来实现,比如SQL中的`LIKE`关键字配合`%`或`_`符号。 在Servlet中,实现模糊查询的过程如下: 1. **用户输入处理**:在前端页面,用户输入查询条件,可能是一个部分...

Global site tag (gtag.js) - Google Analytics