java PrepareStatement[通俗易懂]

java PrepareStatement[通俗易懂]PrepareStatementStatement对同一个sql语句charrette不同值需要重新发送一条sql语句sql注入selectusername,passwordfromempwhereusername=’admin’andpassword=’123’or1=1;insertintoempvalues(?,?,?);接口PrepareStatement表示预编译的SQL语句的对象。SQL语句被预编译并存储在Prepare…

大家好,又见面了,我是你们的朋友全栈君。

 PrepareStatement
 Statement 对同一个sql语句charrette不同值 需要重新发送一条sql语句
 sql注入
 select username,password from emp where username=’admin’ and password =’123’or 1=1;
 insert into emp values(?,?,?);
接口   PrepareStatement
     表示预编译的 SQL 语句的对象。 SQL 语句被预编译并存储在 PreparedStatement 对象中。
     然后可以使用此对象多次高效地执行该语句。  
ps=con.createPrepareStatement(sql);
    方法1:void addBatch() 
              将一组参数添加到此 PreparedStatement 对象的批处理命令中。
    方法2:boolean execute() 
              在此 PreparedStatement 对象中执行 SQL 语句,该语句可以是任何种类的 SQL 语句。 
     方法3:ResultSet executeQuery() 
              在此 PreparedStatement 对象中执行 SQL 查询,并返回该查询生成的 ResultSet 对象。
           方法4: int executeUpdate() 
              在此 PreparedStatement 对象中执行 SQL 语句,该语句必须是一个 SQL 数据操作语言(
              Data Manipulation Language,DML)语句,
              比如 INSERT、UPDATE 或 DELETE 语句;或者是无返回内容的 SQL 语句,比如 DDL 语句。 
  注:此对象执行的sql语句没有具体参数,用?占位符代替,通过setObject给值
类 Properties
    Properties 类表示了一个持久的属性集。Properties 可保存在流中或从流中加载。
    属性列表中每个键及其对应值都是一个字符串。 
    一个属性列表可包含另一个属性列表作为它的“默认值”;如果未能在原有的属性列表中搜索到属性键,则搜索第二个属性列表。
    方法1:String getProperty(String key) 
              用指定的键在此属性列表中搜索属性。  通过对象中的key获得预支对应的string类型的value
    方法2: void load(InputStream inStream) 
              从输入流中读取属性列表(键和元素对)。  
DAO(date access object) 数据库转化为对象的过程
ORM(object relation mapping)              

 

PreparedStatement
    方法1:addBatch():可以实现ps对sql语句的批处理命令
            然后调用executeBatch()去执行批处理命令
接口 Statement
     方法1 :void addBatch(String sql) 
              将给定的 SQL 命令添加到此 Statement 对象的当前命令列表中。 
             int[] executeBatch() 
                  将一批命令提交给数据库来执行,如果全部命令执行成功,则返回更新计数组成的数组。 
接口 ResultSetMetaData
    可用于获取关于 ResultSet 对象中列的类型和属性信息的对象。
    以下代码片段创建 ResultSet 对象 rs,创建 ResultSetMetaData 对象 rsmd,
    并使用 rsmd 查找 rs 有多少列,以及 rs 中的第一列是否可以在 WHERE 子句中使用。 
        ResultSet rs = stmt.executeQuery(“SELECT a, b, c FROM TABLE2”);
         ResultSetMetaData rsmd = rs.getMetaData();
         int numberOfColumns = rsmd.getColumnCount();
        boolean b = rsmd.isSearchable(1);
       方法1:int getColumnCount() 
              返回此 ResultSet 对象中的列数。            
    方法2: String getColumnLabel(int column) 
              获取用于打印输出和显示的指定列的建议标题。 
        3: String getColumnName(int column) 
              获取指定列的名称。 
        4: int getColumnType(int column) 
              获取指定列的 SQL 类型。 
jdbc支持的事物
1 原子性
2 一致性
3 隔离性
4   永久性
(dbcp)c3p0 连接池

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/133654.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • PHP中用下划线开头的变量含义

    PHP中用下划线开头的变量含义

    2021年10月21日
  • 滴滴开源夜莺Nightingale:企业级监控解决方案「建议收藏」

    滴滴开源夜莺Nightingale:企业级监控解决方案「建议收藏」导读:滴滴开源又双叒发布新开源项目啦——夜莺(Nightingale)是滴滴基础平台联合滴滴云研发和开源的企业级监控解决方案。旨在满足云原生时代企业级的…

    2022年6月2日
  • C和指针-终于看到指针这一章

    C和指针-终于看到指针这一章

    2021年8月22日
  • java孙鑫老师视频教程笔记「建议收藏」

    java孙鑫老师视频教程笔记「建议收藏」此笔记是我开始系统学习java孙鑫老师视频教程的笔记。可供初学者学习参考哈 今天先附上第一课Java的一些基本概念第二课Java面向对象编程后面的将陆续为大家奉上 但是如果你是初学者的话,我笔记里边可能有些东西只是点了一下,没有再详尽的描述了那是因为我以前学过一段java,有一定java基础,所以如果你需要这部分更的详细讲解的话还是得麻烦你自己在网上搜一

    2022年5月17日
  • leetcode 通配符匹配_匹配任意一个字符的通配符是

    leetcode 通配符匹配_匹配任意一个字符的通配符是给定一个字符串 (s) 和一个字符模式 § ,实现一个支持 ‘?’ 和 ‘*’ 的通配符匹配。‘?’ 可以匹配任何单个字符。‘*’ 可以匹配任意字符串(包括空字符串)。两个字符串完全匹配才算匹配成功。说明:s 可能为空,且只包含从 a-z 的小写字母。p 可能为空,且只包含从 a-z 的小写字母,以及字符 ? 和 *。示例 1:输入:s = “aa”p = “a”输出: false解释: “a” 无法匹配 “aa” 整个字符串。示例 2:输入:s = “aa”p = “*

    2022年8月9日
  • eBPF 简史「建议收藏」

    eBPF 简史「建议收藏」最近总能看到bpf,但苦于找不到合适的资料理解,终于找到一个分析讲解较全面的文章,分享给大家,原网址如下:http://www.linux-ren.org/tech/2230.mhtmlhttps://www.ibm.com/developerworks/cn/linux/l-lo-eBPF-history/index.html数日之前,笔者参加某一技术会议之时,为人所安利了一款开源项…

    2022年9月15日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号