JAVA解决插入数据库时遇到的引号问题

今天在论坛上看到了问题,自己也总结一下先:
帖子如下:http://topic.csdn.net/u/20081204/01/c45bda75-e429-4600-8924-7f2c7d67406e.html?seed=1788175006
高手们已经做了解答,基本有两个解决方法
一、是采用PreparedStatement,然后setString

  1. Stringsql= "updateinterface_customersetPK_CORP=?,DEF1=?" ;
  2. PreparedStatementpstmt=con.prepareStatement(sql);
  3. pstmt.setString(1,customers[i].getPk_corp());
  4. pstmt.setString(2,customers[i].getDef1());
  5. pstmt.executeUpdate();


二、对有引号的值转換:

  public static String getSafeSQL(String inStr) {

		String result = "";
		try {
			inStr = inStr.trim();
			char c;
			int strLen = inStr.length();
			for (int i = 0; i < strLen; i++) {

				c = inStr.charAt(i);

				switch (c) {
				case '\'':
					result = result + "''";
					break;
				case '\\':
					result = result + "\\\\";
					break;
				default:
					result = result + String.valueOf(c);
					break;
				}

			}

		} catch (Exception e) {
			return "";
		}

		return result;
	}
 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值