mybatis的xml文件中数据传输符号#和$的区别
2016-06-15 15:41
246 查看
1.用#传参相当于
String sql = "select * from admin_domain_location order by ?";
PreparedStatement st = con.prepareStatement(sql);
st.setString(1, "domain_id");
System.out.println(st.toString());
这条sql最终为:select * from admin_domain_location order by
'domain_id'
2.用$传参相当于
String input = "domain_id";
String sql = "select * from admin_domain_location
order by "+input;
PreparedStatement st = con.prepareStatement(sql);
System.out.println(st.toString());
这条sql最终为:select * from admin_domain_location order by
domain_id
3.总结:
#传过来的数据会自动加上引号,$则不会;
因此order by语句后面的列名不能用#传输;
#和$可以用xml文件中显式加引号的方式达到一致的效果,但$容易发生sql注入;
因此,最好是用#。
String sql = "select * from admin_domain_location order by ?";
PreparedStatement st = con.prepareStatement(sql);
st.setString(1, "domain_id");
System.out.println(st.toString());
这条sql最终为:select * from admin_domain_location order by
'domain_id'
2.用$传参相当于
String input = "domain_id";
String sql = "select * from admin_domain_location
order by "+input;
PreparedStatement st = con.prepareStatement(sql);
System.out.println(st.toString());
这条sql最终为:select * from admin_domain_location order by
domain_id
3.总结:
#传过来的数据会自动加上引号,$则不会;
因此order by语句后面的列名不能用#传输;
#和$可以用xml文件中显式加引号的方式达到一致的效果,但$容易发生sql注入;
因此,最好是用#。
相关文章推荐
- XML 与 JSON 优劣对比
- As3.0 xml + Loader应用代码
- 网马生成器 MS Internet Explorer XML Parsing Buffer Overflow Exploit (vista) 0day
- ext读取两种结构的xml的代码
- 实例解析Ruby程序中调用REXML来解析XML格式数据的用法
- Ruby中XML格式数据处理库REXML的使用方法指南
- C#中如何使用 XmlReader 读取XML文件
- C#针对xml基本操作及保存配置文件应用实例
- Ruby使用REXML库来解析xml格式数据的方法
- Ruby程序中创建和解析XML文件的方法
- Ruby的XML格式数据解析库Nokogiri的使用进阶
- asp下查询xml的实现代码
- sqlserver FOR XML PATH 语句的应用
- 使用sp_xml_preparedocument处理XML文档的方法
- EBS xml publisher中文乱码问题及解决办法
- C#中的Linq to Xml详解
- C#操作XML文件实例汇总
- C# XML序列化方法及常用特性总结分析
- SQL Server中的XML数据进行insert、update、delete