u011844490
专修虚拟机
采纳率18.8%
2015-12-03 08:24 阅读 1.3k

sql语句写法问题‘“ ”“

求教为什么要这样写 为什么要写成 '" + name + "'为什么有加号,为什么双引号外面还要+个单引号
String sql = "select * from t where username = '" + name + "' and password = '" + passwd + "'";

String sql = "insert into emp(empno, ename, job, mgr, hiredate, sal, comm, deptno) values("
+ emp.getEmpNo()
+ ", "
+ " '"
+ emp.getEname()
+ "', "
+ " '"
+ emp.getJob()
+ "', "
+ emp.getMgr()
+ ","
+ "to_date('"
+ emp.getHiredate()
+ "','yyyy-mm-dd'), "
+ emp.getSal()
+ ", "
+ emp.getComm() + ", " + emp.getDeptno() + ")";

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

6条回答 默认 最新

  • qq_31080089 一个努力的人儿 2015-12-03 09:54

    这个是拼串的,双引号里面只能是单引号 才会有效果。。。

    点赞 1 评论 复制链接分享
  • u012357455 算个小名 2015-12-03 10:11

    不要习惯于用sql拼接 很容易被sql注入的 还有“‘是为了正确的格式化

    点赞 1 评论 复制链接分享
  • bdmh bdmh 2015-12-03 08:27

    name是一个变量,不能直接放到sql中,sql就是个字符串,你可以把多个变量拼接到一起组成一个完整的sql

    点赞 评论 复制链接分享
  • yangcheng8517 yangcheng8517 2015-12-03 08:31

    你把 System.out.println(sql );你就知道了

    点赞 评论 复制链接分享
  • u012431412 贾摆意思 2015-12-03 08:55

    你这是在字符串拼接,将动态数据如name(也就是你的变量)或者 emp.getComm() (也就是你的方法)的值组织成为SQL语句。另外,双引号和单引号交替使用其中一个将不会被编程语言解析,直接成为SQL语句中的引号。

    点赞 评论 复制链接分享
  • u011661028 _BenChen 2015-12-03 09:49

    觉得应该是怕你的name里面有特别的字符 比如是双引号什么的 毕竟是字符串类型的字段

    点赞 评论 复制链接分享

相关推荐