sql语句如何拼接Java变量
当数据库字段ID为整型时
select ID from table where ID=1
和
select ID from table where ID='1'
两条sql都是可以的,但是第一条sql不用进行隐式转换,速度上比第二条sql略快一些。
String sqlString="select * from tb_wf_main where trim(WF_NAME) = ' " + wfName.trim() + " ' ";
java中的字符串只能双引号(js可以单引号也可以双引号),以上,如果字符串中需要拼接变量,该变量用单引号括起来,然后加两个双引号再加两个加号,中间就是变量
只需要这样记住就行:单引号 括双引号 两个加号 中间变量 ( 0Q0 OMG)
js 也是可以这样拼接变量的。 单引号 加 双引号 再在双引号中间加 + 变量 + ,也就是: ' " + f + " '
cateChildfilterBrand('1', ' ',' ','1',this)
var appendpinpai = "<li class='li' οnclick='cateChildfilterBrand('1',' " + facetFieldList[i].name + " ',' "+ this.name +" ','1',this)'" ;
1、插入
字符串数据是用单引号包在外面的,而+号只是用来连接这些字符串的. 数据库里的字段是整型的时候不要加单引号,是字符串的时候要加,其它类型根据实际情况来,双引号就是用来拼接字符串的,单引号是sql文的固有写法,因为你要动态的来拼接,涉及到变量,所以要用“+”来组合各个字符串片段。最终结果无非就是得出能在数据库查询分析器中执行的sql文。
String sql = "insert into student values ( " + student.getId() + " ,' "
+ student.getUsername() + " ', " + student.getAge() + " ,' "
+ student.getClassnumber()+" ')";
因为id和age是int型的所以不用加单引号,
你的Username在数据库中定义的是一个varchar型的,而对字符型进行条件查询的时候是要加 ' '号的:
select count(*) from student where username= 'aaa '
因此在后台写查询字符串的时候就必须这样写:
string sql = "select count(*) from student where username= ' "+userName+ " ' "
这样映射成的查询语句就是:
select count(*) from student where student= 'aaa ' 了.
*用SQL语句往数据库某字段(字符型)中插入字符串,但是当该字符串中带有单引号(’)时就会出错!因为插入的字符串被从单引号处截断,造成SQL语句的语法错误
*处理方法:将包含单引号的字符中的(‘)换成(”),就OK了。SQL是用两个单引号来代替一个单引号的
str = str.replace(” ’ “, ” ” “);
实现目标语句是这个
注意,这里的java变量是idd
int idd;
String sql = "SELECT id, piUrl FROM picinfos WHERE id BETWEEN '" + idd + "' AND 10" ;
java中的字符串只能双引号,如果字符串中需要拼接变量,该变量用单引号括起来,然后加两个双引号再加两个加号,中间就是变量。
拼接步骤
- 写出SQL具体语句(无变量都是具体值的),比如上面的sql
//查询picinfos表中id为2到10的id和piUrl值
String sql = "SELECT id, piUrl FROM picinfos WHERE id BETWEEN 2 AND 10" ;
2.此时要将2改为id(int类型变量),只需要在中间修改
,先是删掉2,用单引' '代替
String sql = "SELECT id, piUrl FROM picinfos WHERE id BETWEEN ' ' AND 10" ;
3.接着在单引号中间加上双引" "
String sql = "SELECT id, piUrl FROM picinfos WHERE id BETWEEN ' " " ' AND 10" ;
4.接着在双引号中间加上加号+ +
String sql = "SELECT id, piUrl FROM picinfos WHERE id BETWEEN ' " + + " ' AND 10" ;
5.最后就是加号中间加上变量idd完事
String sql = "SELECT id, piUrl FROM picinfos WHERE id BETWEEN ' " + idd + " ' AND 10" ;
口诀:先SQL原型,替换为单引,中间加双引,中间加双加号,中间加变量。
先设置一个数据库,其中有张表,名为table,其中包含user和password。
假设一个login方法,其中需要用户名user和密码pwd,函数为:
public void login(String usr,String pwd){
...
}
函数中需要用到sql查询语句,通过传入user和pwd,此时在mysql中语句为:
select * from table where user ="mike" and password = "123456";
在java函数中需要将"mike"替换为"usr",将"123456"替换为"pwd"。
而sql语句在java中是以字符串的形式存在的,所以按照java的语法存在以下方式:
(1)
String sql = "select * from tb where uname = \""+user+"\" and upassword = \""+password+"\";";
这个方法中使用转义符号,将双引号转义为一个单纯的字符,这么理解:斜线\和紧跟着的第一个引号,代表正常sql查询语句中的引号。而第二个引号是与select前面的引号对应的。
(2)
String sql = "SELECT * FROM tb WHERE uname ='"+user+"' AND upassword = '"+password+"';";
这种方式是使用单引号和双引号避免冲突,这样理解:单引号等同于上面例子的斜线和引号组合\" ,然后双引号就是和select前面的双引号对应的。
int uid=1;
String sql="select * from users where uid="+uid
上面这个是整型变量
String ss=“test”;
String sql="select * from users where uid="+“‘ss’”就是了,先双引号,后单引号,双引号承接你前面sql语句里的双引号,而单引号表示你的变量,记住只有是变量才有单引号,我给你举个例,如果在mysql中使用函数now(),就应该这样写:
sql="select * from users where date=”+“now()”;没有单引号,
上面是三种在sql语句中加入其它符号的方式
例:如果,string sql="insert into A values (xx,xxx)"像这样的,其中xx,xxx需要用其它函数或是什么动态得到,应该怎样写???
"insert into A values ('"+var1+"','"+var2+"')"
里面是双引号, 外面是单引号.
sql语句如何拼接Java变量相关推荐
- Java中SQL语句的拼接规则
拼接规则示例 java中的字符串只能双引号,如果字符串中需要拼接变量,该变量用单引号括起来,然后加两个双引号再加两个加号,中间就是变量. 例如:查询数据库中的用户名和密码. 注:为和sql表中的use ...
- 动态SQL语句的拼接实现
动态SQL语句的拼接实现 平常经常遇到一些语句需要使用动态语句,来实现作业任务的计划执行.例如动态表名,在分表设计时使用了月份格式(A_201912) 在实现此类格式表名的作业任务时,必须采用动态语句 ...
- 动态sql语句(即sql语句的拼接)
10.1 if标签(属性:test(判断条件)) 缺点:如果仅仅是第二个条件满足导致sql语句出错(故使用if+where) 1 <select id="select1" ...
- oracle表名使用变量名,oracle 中动态sql语句,表名为变量,怎么解?
如果你用的是 Oracle 8i 及以上的版本,那简单,在过程中用 execute immediate sql_str 就行, sql_str 是一个拼凑的 SQL 语句,但这个动态语句中带参数,或 ...
- 【C# .NET】Oracle数据库连接的坑之传入parameters参数名SQL语句中的参数变量名不匹配(顺序不一致)的问题
问题描述 有一个user表,需要修改id为10086的用户的姓名和年龄,在C#的后台这样写: using (IDbConnection db = DapperFactory.GetConnection ...
- java代码执行mysql语句_三种执行SQL语句的的JAVA代码
问题描述: 连接数据库,执行SQL语句是必不可少的,下面给出了三种执行不通SQL语句的方法. 1.简单的Statement执行SQL语句.有SQL注入,一般不使用. public static voi ...
- 模糊查询和sql语句的拼接
如下面图片所示:进行模糊查询 前端的页面代码: 注意:请选择那里的value="" 一定要写 <body><form action="SearchSt ...
- oracle存储过程动态sql单引号拼接和变量拼接
1.单引号的作用 在oracle中单引号主要有两个作用: 一是字符串都用单引号引用,例如'abc':二是转义符,转义符在使用时一般会出现多个连在一起的单引号,相对难理解一些.下面举例说明. 实例1:s ...
- Mybatis中动态Sql语句的拼接分析
一.动态查询 1.方式一: <!--if标签--><!--if中的test属性必须录入,其内部为ognl表达式,不需要#{}.如果test内满足,则主体语句执行--><s ...
- 存储过程中将sql语句结果赋值给变量
create procedure procname AS declare @recount int select @recount=count(id) from school --最关键在这句 se ...
最新文章
- HR与HRBP的区别
- Android之抓取adb logcat全日志后怎么过滤掉只包含当前app进程的日志(一般抓启动app奔溃日志)
- (acm)C++加速输入的几种方法
- python弹出框多一个空白框_Selenium+python3 应对多个弹出框存在(alert_is_present)判断和处理...
- 回溯子集树与排列树——装载问题旅行售货员问题(算法设计课题)
- Tomcat 工作原理【转】
- 【鲁棒控制】平面2R型机器人的鲁棒逆推跟踪控制(matlab实现)
- iChart--组件定制
- 免费的API-手机号码归属地接口
- 基于Python绘制一个摸鱼倒计时界面
- [转载] 中华典故故事(孙刚)——35 一文钱难倒英雄汉
- ios15.6RC-15.7.1系统降级iOS14,适用于checkm8机型
- Linux C 网络编程 仿照网盘的功能
- MEDA: Meta-Learning with Data Augmentation for Few-Shot Text Classification
- 固定资产的四种折旧方式
- layui当前表格第一行_layui数据表格新增一行
- Ninth season twenty-first episode,Chandler and Monica may never have children??????
- selenium定位到元素后获取其属性_selenium 元素查找与属性
- 解决连接ORACLE错误:ORA-01033: ORACLE 正在初始化或关闭
- 苹果cms采集明星资源无分类绑定的解决方法