简单的执行如下语句去做数据库的插入操作是有问题的!它处理不了单引号,双引号等需要转义的字符的插入问题!

String sql = "insert into emailOriginal(id,date,subject,source,target" +

") value(\""

+ vo.getId() + "\",\""

+ vo.getDate()+"\",\""

+ vo.getSubject()+"\",\""

+ vo.getSource()+"\",\""

+ vo.getTarget()+"\");";

。。。

pstmt = dbc.getConnection().prepareStatement(sql);

。。。

pstmt.execute(sql);

会有如下错误:

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'notional" stuff

经过查找发现是插入“nation”时,双引号没有经过转义!

现在修改成使用PreparedStatement,用?预处理查询条件,会避免上述简单的字符串拼接造成的转义问题。

String sql = "insert into emailOriginal(id,date,subject,source,target" +

") value(?,?,?,?,?);";

PreparedStatement pstmt = null;

try {

pstmt = dbc.getConnection().prepareStatement(sql);

pstmt.setString(1, vo.getId());

pstmt.setString(2, vo.getDate());

pstmt.setString(3, vo.getSubject());

pstmt.setString(4, vo.getSource());

pstmt.setString(5, vo.getTarget());

pstmt.execute();

//pstmt.execute(sql);

pstmt.close();

} catch (Exception e) {

e.printStackTrace();

}

其中的pstmt.setString(1, vo.getId());

会帮助字符串转义。

可以插入如下的记录了:

+------+------+--------+--------+----------+

| id   | date | source | target | subject  |

+------+------+--------+--------+----------+

| id   | date | source | target | "subject |

| id   | date | source | target | 'subject |

+------+------+--------+--------+----------+

java插入数据库字符串拼接_java中PreparedStatement解决需转义字符向数据库中插入时的转义问题 | 学步园...相关推荐

  1. java插入数据库字符串拼接_java连接mysql数据库实现单条插入和批量插入

    本文实例为大家分享了java连接mysql数据库实现单条和批量插入的具体代码,供大家参考,具体内容如下 本文插入数据库的数据来源:java + dom4j.jar提取xml文档内容 1.连接数据库 p ...

  2. java插入数据库字符串拼接_JAVA字符串怎么连接?

    1.length() 字符串的长度 例:char chars[]={'a','b'.'c'}; String s=new String(chars); int len=s.length(); 2.ch ...

  3. java字符串拼接_Java 8中字符串拼接新姿势:StringJoiner

    有一个重要的拼接方式,那就是Java 8中提供的StringJoiner ,本文就来介绍一下这个字符串拼接的新兵. 如果你想知道一共有多少种方法可以进行字符串拼接,教你一个简单的办法,在Intelli ...

  4. java字符串拼接_为什么阿里巴巴不建议在for循环中使用quot;+quot;进行字符串拼接...

    点击上方"Java专栏",选择"置顶或者星标" 第一时间阅读精彩文章! ☞ 程序员进阶必备资源免费送「21种技术方向!」 点击查看☜ 字符串,是 Java 中最 ...

  5. java 字符串拼接_JAVA字符串拼接常见方法汇总

    字符串的拼接,常使用到的大概有4种方式: 1.直接使用"+"号 2.使用String的concat方法 3.使用StringBuilder的append方法 4.使用StringB ...

  6. java字符连接字符串数组_Java中连接字符串的最佳方法

    java字符连接字符串数组 最近有人问我这个问题–在Java中使用+运算符连接字符串是否对性能不利? 这让我开始思考Java中连接字符串的不同方法,以及它们如何相互对抗. 这些是我要研究的方法: 使用 ...

  7. JAVA的MySQL字符串拼接_字符串的拼接-MYSQL

    SQL允许两个或者多个字段之间进行计算,字符串类型的字段也不例外.比如我们需要以"工号+姓名"的方式在报表中显示一个员工的信息,那么就需要把工号和姓名两个字符串类型的字段拼接计算: ...

  8. Java 5种字符串拼接方式性能比较。

    最近写一个东东,可能会考虑到字符串拼接,想了几种方法,但对性能未知,于是用Junit写了个单元测试. 代码如下: import java.util.ArrayList; import java.uti ...

  9. java web请求字符串处理_java web工作常用技能篇(三)-封装复杂请求对象2

    前言:在各类网站论坛上,没有找到与工作比较贴切的技能,所以特此写一些对刚步入工作或者工作中没有重视的技能与问题,各位大牛请及时关闭文章. ps1:文中所有标点都是英文的,看官请不要在意.为了便于平时敲 ...

最新文章

  1. r语言 not enough x observations_R基础知识
  2. window系统查看端口被哪个进程占用了,并将它结束
  3. vs2015安装与单元测试以及经过优化的算法
  4. c++ 管理员身份_CATIA的管理员模式和多版本环境变量设置
  5. 中压缩数组_Java稀梳数组,什么是稀梳数组?为什么使用稀梳数组?
  6. extract()和extact_first()的区别
  7. Security+ 学习笔记51 风险分析
  8. 分不清蓝牙适配器、蓝牙接收器和蓝牙发射器?伦茨科技为你讲解
  9. js遍历(js遍历json对象)
  10. 一个管理系统实体联系图
  11. 【云速建站】网站的基本设置
  12. 涉密计算机怎么更新补丁,windows系统补丁你更新还是不更新?
  13. 国产框架MindSpore联合山水自然保护中心,寻找、保护「中华水塔」中的宝藏生命
  14. NTFS下的USN日志文件研究
  15. 实践数据湖iceberg 第十四课 元数据合并(解决元数据随时间增加而元数据膨胀的问题)
  16. 虎门大桥抖动,千亿级的物联网市场被打开
  17. C++ COM组件的编写
  18. 定时任务:创建静态定时任务、动态定时任务
  19. Html5 学前须知
  20. mysql报警代码183_mysql误删操作回复

热门文章

  1. RESTful API实现APP订餐实例
  2. 汇编:用户登录以及简单数据加密
  3. 动易php,动易数据转成dedecms的php程序
  4. 起点计算机网,《零起点计算机》网第5课.pdf
  5. view.post(Runnable)
  6. Hadoop+Spark 集群部署
  7. 面试题6:从尾巴开始打印链表
  8. Java编写简单密码问题
  9. Qt:Qt实现Winsock网络编程—非阻塞模式下的简单远程控制的开发(WSAAsyncSelect)
  10. Mybatis的动态sql语句的查询