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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 活动图(Activity Diagram)

    活动图(Activity Diagram)一、什么是活动图?二、活动图的基本要素?三、活动图的作用?

    2022年6月6日
    221
  • H3C交换机配置命令大全【转载】[通俗易懂]

    H3C交换机配置命令大全【转载】[通俗易懂]杭州华三通信技术有限公司(简称H3C),致力于IP技术与产品的研究、开发、生产、销售及服务。H3C不但拥有全线路由器和以太网交换机产品,还在网络安全、IP存储、IP监控、语音视讯、WLAN、SOHO及软件管理系统等领域稳健成长。在以太网领域,H3C经历多年的耕耘和发展,积累了大量业界领先的知识产权和专利,可提供业界从核心到接入10多个系列上百款交换机产品。所有产品全部运行H3C自主知识产权的…

    2022年6月20日
    31
  • 实例分割综述(单阶段/两阶段/实时分割算法汇总)

    实例分割综述(单阶段/两阶段/实时分割算法汇总)点击上方“3D视觉工坊”,选择“星标”干货第一时间送达简介目标检测或定位是数字图像从粗到细的一个渐进过程。它不仅提供了图像对象的类,还提供了已分类图像中对象的位置。位置以边框或中心的形式…

    2022年8月23日
    6
  • 湖南省第六届大学生计算机程序设计竞赛—数字整除

    湖南省第六届大学生计算机程序设计竞赛—数字整除

    2022年2月2日
    50
  • 【实用软件】局域网传输神器-LANDrop[通俗易懂]

    【实用软件】局域网传输神器-LANDrop[通俗易懂]软件介绍LANDrop是一款开源免费的支持跨平台的「局域网文件传输工具」 它的使用体验上可以媲美苹果生态的“隔空投送”功能! 能超级快速方便地将各种设备上的照片、视频、文档、文件发送到别的设备去软件功能LANDrop完全依靠局域网WIFI进行无线传输,速度极快 而且这款软件完全免费,并不限制任何平台 即便发送体积巨大的视频文件也完全没有问题,比起使用微信、QQ、网盘更加方便,速度更快,也不必担心图片/视频画质被压缩的烦恼下载地址下载地址https://url37.ctfile

    2022年5月4日
    227
  • python进阶(13)装饰器[通俗易懂]

    python进阶(13)装饰器[通俗易懂]装饰器装饰器放在一个函数开始定义的地方,它就像一顶帽子一样戴在这个函数的头上。和这个函数绑定在一起。在我们调用这个函数的时候,第一件事并不是执行这个函数,而是将这个函数做为参数传入它头顶上这顶帽子,

    2022年7月28日
    7

发表回复

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

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