在 MySQL Java 中,如果存在任何值,请正确使用 WHERE 条件的预处理语句
mysqlmysqli database
为此,您可以在 Java 中使用 PrepareStatement。以下是语法 −
String anyVariableName="select yourColumnName from yourTableName where name = ?"; PreparedStatement ps = (PreparedStatement) con.prepareStatement(yourVariableName); ps.setString(yourColumnIndex, yourValue);
让我们创建一个表 −
mysql> create table demo37 −> ( −> id int not null auto_increment primary key, −> name varchar(200) −> ); Query OK, 0 rows affected (2.46 sec)
使用 insert 命令向表中插入一些记录 −
mysql> insert into demo37(name) values('John'); Query OK, 1 row affected (0.09 sec) mysql> insert into demo37(name) values('Bob'); Query OK, 1 row affected (0.08 sec) mysql> insert into demo37(name) values('John'); Query OK, 1 row affected (0.09 sec) mysql> insert into demo37(name) values('Chris'); Query OK, 1 row affected (0.08 sec) mysql> insert into demo37(name) values('David'); Query OK, 1 row affected (0.12 sec) mysql> insert into demo37(name) values('John'); Query OK, 1 row affected (0.13 sec) mysql> insert into demo37(name) values('Mike'); Query OK, 1 row affected (0.09 sec)
使用 select 语句显示表中的记录 −/p>
mysql> select *from demo37;
这将产生以下输出 −
+----+-------+ | id | name | +----+-------+ | 1 | John | | 2 | Bob | | 3 | John | | 4 | Chris | | 5 | David | | 6 | John | | 7 | Mike | +----+-------+ 7 rows in set (0.00 sec)
示例
以下是 PrepareStatement 的 Java 代码 −
import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; public class PrepareStatementDemo { public static void main(String[] args) { Connection con = null; try { Class.forName("com.mysql.jdbc.Driver"); con = DriverManager.getConnection("jdbc:mysql://localhost:3306/sampledatabase", "root", "123456"); String query = "select name from demo37 where name = ?"; PreparedStatement ps = (PreparedStatement) con.prepareStatement(query); ps.setString(1, "John"); ResultSet rs = ps.executeQuery(); while (rs.next()) { System.out.println(rs.getString(1)); } } catch (Exception e) { e.printStackTrace(); } } }
输出
这将产生以下输出 −
John John John
以下是输出的快照 −