当数据库字段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中的字符串只能双引号,如果字符串中需要拼接变量,该变量用单引号括起来,然后加两个双引号再加两个加号,中间就是变量。

拼接步骤

  1. 写出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变量相关推荐

  1. Java中SQL语句的拼接规则

    拼接规则示例 java中的字符串只能双引号,如果字符串中需要拼接变量,该变量用单引号括起来,然后加两个双引号再加两个加号,中间就是变量. 例如:查询数据库中的用户名和密码. 注:为和sql表中的use ...

  2. 动态SQL语句的拼接实现

    动态SQL语句的拼接实现 平常经常遇到一些语句需要使用动态语句,来实现作业任务的计划执行.例如动态表名,在分表设计时使用了月份格式(A_201912) 在实现此类格式表名的作业任务时,必须采用动态语句 ...

  3. 动态sql语句(即sql语句的拼接)

    10.1  if标签(属性:test(判断条件)) 缺点:如果仅仅是第二个条件满足导致sql语句出错(故使用if+where) 1 <select id="select1" ...

  4. oracle表名使用变量名,oracle 中动态sql语句,表名为变量,怎么解?

    如果你用的是 Oracle 8i 及以上的版本,那简单,在过程中用 execute immediate sql_str 就行, sql_str 是一个拼凑的 SQL 语句,但这个动态语句中带参数,或 ...

  5. 【C# .NET】Oracle数据库连接的坑之传入parameters参数名SQL语句中的参数变量名不匹配(顺序不一致)的问题

    问题描述 有一个user表,需要修改id为10086的用户的姓名和年龄,在C#的后台这样写: using (IDbConnection db = DapperFactory.GetConnection ...

  6. java代码执行mysql语句_三种执行SQL语句的的JAVA代码

    问题描述: 连接数据库,执行SQL语句是必不可少的,下面给出了三种执行不通SQL语句的方法. 1.简单的Statement执行SQL语句.有SQL注入,一般不使用. public static voi ...

  7. 模糊查询和sql语句的拼接

    如下面图片所示:进行模糊查询 前端的页面代码:  注意:请选择那里的value="" 一定要写 <body><form action="SearchSt ...

  8. oracle存储过程动态sql单引号拼接和变量拼接

    1.单引号的作用 在oracle中单引号主要有两个作用: 一是字符串都用单引号引用,例如'abc':二是转义符,转义符在使用时一般会出现多个连在一起的单引号,相对难理解一些.下面举例说明. 实例1:s ...

  9. Mybatis中动态Sql语句的拼接分析

    一.动态查询 1.方式一: <!--if标签--><!--if中的test属性必须录入,其内部为ognl表达式,不需要#{}.如果test内满足,则主体语句执行--><s ...

  10. 存储过程中将sql语句结果赋值给变量

    create  procedure procname AS declare @recount int select @recount=count(id) from school --最关键在这句 se ...

最新文章

  1. HR与HRBP的区别
  2. Android之抓取adb logcat全日志后怎么过滤掉只包含当前app进程的日志(一般抓启动app奔溃日志)
  3. (acm)C++加速输入的几种方法
  4. python弹出框多一个空白框_Selenium+python3 应对多个弹出框存在(alert_is_present)判断和处理...
  5. 回溯子集树与排列树——装载问题旅行售货员问题(算法设计课题)
  6. Tomcat 工作原理【转】
  7. 【鲁棒控制】平面2R型机器人的鲁棒逆推跟踪控制(matlab实现)
  8. iChart--组件定制
  9. 免费的API-手机号码归属地接口
  10. 基于Python绘制一个摸鱼倒计时界面
  11. [转载] 中华典故故事(孙刚)——35 一文钱难倒英雄汉
  12. ios15.6RC-15.7.1系统降级iOS14,适用于checkm8机型
  13. Linux C 网络编程 仿照网盘的功能
  14. MEDA: Meta-Learning with Data Augmentation for Few-Shot Text Classification
  15. 固定资产的四种折旧方式
  16. layui当前表格第一行_layui数据表格新增一行
  17. Ninth season twenty-first episode,Chandler and Monica may never have children??????
  18. selenium定位到元素后获取其属性_selenium 元素查找与属性
  19. 解决连接ORACLE错误:ORA-01033: ORACLE 正在初始化或关闭
  20. 苹果cms采集明星资源无分类绑定的解决方法

热门文章

  1. [JavaEE] Hibernate连接池配置测试
  2. 小米手机抓取Log教程
  3. 常见导航菜单实现方式
  4. ceph12.0.1的源码编译安装
  5. 牛客练习赛9 F - 珂朵莉的约数
  6. CentOS下Vim编辑器的使用
  7. [js高手之路]深入浅出webpack教程系列3-配置文件webpack.config.js详解(下)
  8. jquery实现上拉加载更多
  9. tts语音合成小玩具
  10. Ubuntu 14.04 java环境安装配置(不是openJAVA)