iis服务器助手广告
返回顶部
首页 > 资讯 > 精选 >SQL语句怎么利用PrepareStatement方法进行打印
  • 297
分享到

SQL语句怎么利用PrepareStatement方法进行打印

preparestatementsql 2023-05-31 09:05:47 297人浏览 独家记忆
摘要

这期内容当中小编将会给大家带来有关sql语句怎么利用PrepareStatement方法进行打印,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。方法如下:首先,我们看看典型的一个 PrepareStatem

这期内容当中小编将会给大家带来有关sql语句怎么利用PrepareStatement方法进行打印,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

方法如下:

首先,我们看看典型的一个 PrepareStatement 调用方法,如下一个函数,

 public static Map<String, Object> query(Connection conn, String sql, Object... params) {  Map<String, Object> map = null;  printRealSql(sql, params); // 打印真实 SQL 的函数    try (PreparedStatement ps = conn.prepareStatement(sql);) {   if(params != null)    for (int i = 0; i < params.length; i++)     ps.setObject(i + 1, params[i]);      try (ResultSet rs = ps.executeQuery();) {    if (rs.isBeforeFirst()) {     map = getResultMap(rs);    } else {     LOGGER.info("查询 SQL:{0} 没有符合的记录!", sql);    }   }  } catch (SQLException e) {   LOGGER.warning(e);  }    return map; }

值得注意该函数里面:

printRealSql(sql, params); // 打印真实 SQL 的函数

其参数一 sql 就是类似 SELECT * FROM table WHERE id = ? 的语句,参数二 params 为 Object... params 的参数列表,可以是任意类似的合法 SQL 值。最后,通过 printRealSql 函数最终得出形如 SELECT * FROM table WHERE id =  12 的结果。

printRealSql 函数源码如下:

 public static String printRealSql(String sql, Object[] params) {  if(params == null || params.length == 0) {   LOGGER.info("The SQL is------------>\n" + sql);   return sql;  }    if (!match(sql, params)) {   LOGGER.info("SQL 语句中的占位符与参数个数不匹配。SQL:" + sql);   return null;  }   int cols = params.length;  Object[] values = new Object[cols];  System.arraycopy(params, 0, values, 0, cols);   for (int i = 0; i < cols; i++) {   Object value = values[i];   if (value instanceof Date) {    values[i] = "'" + value + "'";   } else if (value instanceof String) {    values[i] = "'" + value + "'";   } else if (value instanceof Boolean) {    values[i] = (Boolean) value ? 1 : 0;   }  }    String statement = String.fORMat(sql.replaceAll("\\?", "%s"), values);   LOGGER.info("The SQL is------------>\n" + statement);   ConnectionMgr.addSql(statement); // 用来保存日志    return statement; }   private static boolean match(String sql, Object[] params) {  if(params == null || params.length == 0) return true; // 没有参数,完整输出    Matcher m = Pattern.compile("(\\?)").matcher(sql);  int count = 0;  while (m.find()) {   count++;  }    return count == params.length; }

上述就是小编为大家分享的SQL语句怎么利用PrepareStatement方法进行打印了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注编程网精选频道。

--结束END--

本文标题: SQL语句怎么利用PrepareStatement方法进行打印

本文链接: https://www.lsjlt.com/news/224652.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • SQL语句怎么利用PrepareStatement方法进行打印
    这期内容当中小编将会给大家带来有关SQL语句怎么利用PrepareStatement方法进行打印,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。方法如下:首先,我们看看典型的一个 PrepareStatem...
    99+
    2023-05-31
    preparestatement sql
  • Mybatis控制台打印SQL语句的方法
    小编给大家分享一下Mybatis控制台打印SQL语句的方法,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!问题描述在使用mybatis进行开发的时候,由于可以动态拼接sql,这样大大方便了我们。但是也有一定的问题,当我们动态...
    99+
    2023-06-14
  • mybatis-plus的sql语句打印问题怎么解决
    本篇内容介绍了“mybatis-plus的sql语句打印问题怎么解决”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!第一种方式:mybatis...
    99+
    2023-06-30
  • 怎么在springboot中将sql语句打印到控制台
    本篇文章为大家展示了怎么在springboot中将sql语句打印到控制台,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。1.简介每当写完持久化语句时肯定免不了要查漏补缺一波。这里就可以将执行的sql打...
    99+
    2023-06-15
  • 怎么使用SQL语句将行和列进行转换
    小编给大家分享一下怎么使用SQL语句将行和列进行转换,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!  如何使用SQL语句将行和列...
    99+
    2024-04-02
  • 怎么执行SQL语句进行归档备份
    这篇文章主要介绍“怎么执行SQL语句进行归档备份”,在日常操作中,相信很多人在怎么执行SQL语句进行归档备份问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么执行SQL语句进...
    99+
    2024-04-02
  • 怎么使用thinkphp5将错误SQL语句打印到日志中
    这篇文章主要介绍了怎么使用thinkphp5将错误SQL语句打印到日志中的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么使用thinkphp5将错误SQL语句打印到日志中文章都会有所收获,下面我们一起来看看吧...
    99+
    2023-07-06
  • 执行SQL语句进行表空间备份的方法是什么
    这篇文章主要介绍“执行SQL语句进行表空间备份的方法是什么”,在日常操作中,相信很多人在执行SQL语句进行表空间备份的方法是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”...
    99+
    2024-04-02
  • 利用怎么对Java输出打印工具类进行封装
    这篇文章将为大家详细讲解有关利用怎么对Java输出打印工具类进行封装,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。在进行Java打印输出,进行查看字段值的时候,觉得每次写了System.ou...
    99+
    2023-05-31
    java ava
  • 怎么对MySQL SQL语句性能进行分析
    本篇文章为大家展示了怎么对MySQL SQL语句性能进行分析,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。MySQL SQL语句性能分析 set prof...
    99+
    2024-04-02
  • 怎么用sql delete语句删除行
    今天小编给大家分享一下怎么用sql delete语句删除行的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。1、概念d...
    99+
    2023-06-30
  • 批量执行sql语句的方法是什么
    批量执行sql语句的方法是什么,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。 代码如下: DECLARE @MyCo...
    99+
    2024-04-02
  • java jdbc执行sql语句的方法是什么
    在Java中使用JDBC执行SQL语句的方法主要有以下几种:1. 使用Statement对象执行SQL语句:```javaState...
    99+
    2023-09-27
    java jdbc sql
  • mysql怎么利用Join来优化SQL语句
    这篇文章主要讲解了“mysql怎么利用Join来优化SQL语句”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“mysql怎么利用Join来优化SQL语句”吧!...
    99+
    2024-04-02
  • mysql中怎么利用sniffer捕获SQL语句
    这篇文章给大家介绍mysql中怎么利用sniffer捕获SQL语句,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。MySQL5.1之前general log不能在运行时启用或禁用,有时想...
    99+
    2024-04-02
  • java中怎么用jdbc执行sql语句
    在Java中使用JDBC执行SQL语句的一般步骤如下:1. 加载数据库驱动程序(一般在应用程序的入口处执行):javaClass.f...
    99+
    2023-10-23
    java jdbc sql
  • sqlplus直接执行sql语句的方法是什么
    在SQL Plus中直接执行SQL语句的方法是通过在SQL Plus命令行中输入SQL语句并以分号结尾来实现。具体步骤如下:1. 打...
    99+
    2023-09-29
    sqlplus sql
  • 怎么利用ibatis对sql进行注入
    这篇文章将为大家详细讲解有关怎么利用ibatis对sql进行注入,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。于ibaits参数引用可以使用#和两种写法,其中#写法会采用预编译方式,将转义交...
    99+
    2023-05-31
    ibatis sql
  • 利用golang怎么在屏幕上打印进度条
    今天就跟大家聊聊有关利用golang怎么在屏幕上打印进度条,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。什么是golanggolang 是Google开发的一种静态强类型、编译型、并...
    99+
    2023-06-06
  • 怎么在Java8中利用forEach语句对List和Map进行循环
    本文章向大家介绍怎么在Java8中利用forEach语句对List和Map进行循环的基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。Java是什么Java是一门面向对象编程语言,可以编写桌面应用程序、Web应用程序...
    99+
    2023-06-06
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作