String sql = "SELECT userid,name FROM tuser WHERE userid=? AND password=?" ;

pstmt = conn.prepareStatement(sql) ;

pstmt.setString(1,userid) ; // 这里设置了第一个?的值

pstmt.setString(2,password) ; // 这里设置了第二个?的值 等你“setString”完所有的?后,你的sql就构造好了。

--------------------- 本文来自 feidegenggao1 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/feidegenggao1/article/details/6243961

若要创建每次使用不同值的查询,可以在查询中使用参数。参数是在运行查询时所提供值的占位符。带参数的 SQL 语句可能如下所示,其中“?”表示代表作者 ID 的参数:

SELECT title_id

FROM titleauthor

WHERE (au_id = ?)

可使用参数的位置可以将参数用作文本值(文本值或数值)的占位符。最常见的是,参数经常在单个行或组的搜索条件中(即在 SQL 语句的 WHERE 或 HAVING 子句中)用作占位符。 某些数据库允许在表达式中将参数用作占位符。

--------------------- 本文来自 limengmeng9006 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/limengmeng9006/article/details/8200538

 
 

使用PreparedStatement执行SQL语句时占位符(?)的用法

1.Student数据库表

ID  name gender
     

2.Java代码

public static void main(String[] args) {
int _id=1;
String _name="张三";
String _gender="男";
Connection con=null;
PreparedStatement ps=null;

try {
//加载驱动
Class.forName("com.mysql.jdbc.Driver");
//使用驱动创建连接
con=DriverManager.getConnection("jdbc:mysql://localhost:3306/mysql","root","111111");
//定义sql语句
String sql="insert into hehe values(?,?,?)";
//创建执行命令对象
ps= con.prepareStatement(sql);
//设置参数
ps.setInt(1, 1);
ps.setString(2,_name);
ps.setString(3, _gender);

//执行命令并接受结果
int result=ps.executeUpdate();
System.out.println(result);

} catch (ClassNotFoundException e) {

e.printStackTrace();
} catch (SQLException e) {

e.printStackTrace();
}finally{
try {
if(null!=ps)
ps.close();
if(null!=con)
con.close();
} catch (SQLException e) {

e.printStackTrace();
}
}

}

}

3.得到结果

ID name gender
1 张三

--------------------- 本文来自long_street_to_walk 博客 ,全文地址请点击:https://www.cnblogs.com/wffj150926/p/6141241.html

最终个人理解,占位符就是字面意思,占位用的,传入参数便会代替这个位置

sql语句中的占位符?有什么作用的更多相关文章

  1. SQl语句中使用占位符的优点

    1.增加SQL代码可读性2.占位符可以预先编译,提高执行效率3.防止SQL注入4用占位符的目的是绑定变量,这样可以减少数据SQL的硬解析,所以执行效率会提高不少 绑定变量是Oracle解决硬解析的首要 ...

  2. C#sql语句如何使用占位符

    背景:在程序中,写sql语句时,可能要根据变量的值不同,SQL语句产生相应的变化.比如说存在变量StuName,根据变量值的不同,检索不同姓名的学生记录,这时需用到占位符的知识. 1,{0}占位符,代 ...

  3. SQL语句中的换行符

    直接看示例(顺便注意下连接符) 示例1:Access INSERT INTO ZD_DJDCB (DJH,ZDSZ) VALUES ('150105101204JC00428', '北: 地块1' + ...

  4. sql语句中charindex的用法 可用于截取字符串

    使用CHARINDEX和PATINDEX函数来搜索文字列和字符串.这两个函数是如何运转的,解释他们的区别.同时提供一些例子,通过这些例子,你可以可以考虑使用这两个函数来解决很多不同的字符搜索的问题. ...

  5. SQL语句中的单引号处理以及模糊查询

    为了防止程序SQL语句错误以及SQL注入,单引号必须经过处理.有2种办法: 1.使用参数,比如SELECT * FROM yourTable WHERE name = @name; 在C#中使用Sql ...

  6. sql语句中----删除表数据drop、truncate和delete的用法

    sql语句中----删除表数据drop.truncate和delete的用法 --drop drop table  tb   --tb表示数据表的名字,下同 删除内容和定义,释放空间.简单来说就是把整 ...

  7. Java C# C语言中的占位符

    一般拼接一段字符串在编程中是很常见的事,下面简单做个总结: 什么是占位符?占位符就是先占住一个固定的位置,等着你再往里面添加内容的符号. 1.Java中处理方法: package com.amos; ...

  8. sql语句中获取datetime的日期部分或时间部分

    sql语句中获取datetime的日期部分 sql语句中 经常操作操作datetime类型数据.今天在写一个存储过程的时候需要将 一个datetime的值的 日期部分提取出来.网上有许多这方面的介绍. ...

  9. 解析sql语句中left_join、inner_join中的on与where的区别

    以下是对在sql语句中left_join.inner_join中的on与where的区别进行了详细的分析介绍,需要的朋友可以参考下 table a(id, type):id     type ---- ...

随机推荐

  1. 基于SymmetricDS的多主一从数据库同步方案

    原文参照:https://blog.csdn.net/seattle0564/article/details/22096901 下面就记录下测试的一款第三方同步方案SymmetricDS(以下简称S) ...

  2. [学习笔记] Blender 常用工具栏,选择及游标

    Shift + A 创建物体 选择工具: 默认是框选 shift 鼠标左键 加选, 再次可减选 游标 默认情况下游标在世界中心.创建新物体时,会自动被创建在游标的位置.可以随意改变游标的位置,便于建模 ...

  3. Git使用两个用户名两个公钥链接同一个Git服务器

    同篇文章以Gitee举例, 支持国产, 首先关联一下我的另外一篇文章: 在码云上添加公钥时提示不允许重复添加(实际上当前公钥数为0) 在这篇文章中, 我后续有补充解释为什么会出现我之前没有弄明白的这个 ...

  4. golang之面向对象编程

    1.Golang语言面向对象编程说明 1)Golang也支持面向对象编程(OOP),但是和传统的面向对象编程有区别,并不是纯粹的面向对象语言.所以我们说Golang支持面向对象编程特性是比较准确的. ...

  5. linux运维命令3

    1.grep 逐行搜索所指定的文件或标准输入,并显示匹配模式的每一行. grep [-abcEFGhHilLnqrsvVwxy][-A<显示列数>][-B<显示列数>][-C& ...

  6. (1+x)^n

    #include<stdio.h> int main() { int n,i; while(scanf("%d %d",&n,&i)!=EOF) { i ...

  7. 去除element-ui table表格右侧滚动条的高度

    /* //element-ui table的去除右侧滚动条的样式 */ ::-webkit-scrollbar { width: 1px; height: 1px; } /* // 滚动条的滑块 */ ...

  8. SAS学习笔记10 宏变量

    一个宏变量存放的值保持不变直到被修改(全局变量) 引用时,变量名前加上"&" 宏变量在引用时放在双引号之间会被解读(单引号不会被解读) 用户定义的宏变量,有三种方式: %l ...

  9. redis 缓存对象、列表

    在spring boot环境下有个StringRedisTemplate对象,默认已经为我们配置好了,只需要自动注入过来就能用,但是使用它只能在Redis中存放字符串.具体操作如下: @RunWith ...

  10. Merkle树

    在分布式系统.P2P应用中或者是区块链中,会经常使用一种数据结构Merkle tree(默克尔树),这里我们将详细讨论一下这个常用数据结构. Merkle tree Merkle树看起来非常像二叉树, ...