我们在使用mybatis开发过程中,经常需要打印sql以及输入输出,下面说一下mybatis结合log4j打印sql的。...1、添加mybatis配置 mybatis的日志打印方式比较多,SLF4J | LOG4J | LOG4J2 | JDK_LOGGING | COMMONS_LOGGING | STDOUT_LOGGING...sql,由于我们用的是mybatis3.3,高于mybatis3.2 所以如果需要打印查询sql、参数和结果,则配置如下: SQL_ERROR" /> 其中name中填写的是mapper中的namespace路径:预约模块的都是com.example.mapper...单独打印,则添加如下配置 SQL_DEBUG" class="org.apache.log4j.DailyRollingFileAppender"> <param name
上文我们实现了“打印一个月日历”的需求,今天在原来的基础实现一个更复杂的需求:打印一年的日历。...其实,打印一年的日历和打印一个月的实现思路很相似,本质上都是通过行转列实现,只不过年历要考虑的东西多一点。 ? 如上图,如果我们要输出 4 x 3 版式的年历,要考虑哪些地方?...观察图片可知,这里的年历的月份和上文的月历不同的地方是星期天放在一周的前面,因此获取日期所在周的函数的参数要调整。...具体实现的 SQL 如下: SET @someday := CURDATE();SELECT MAX(IF(m % 3 = 1 AND row_no = 0, m, '')) AS '月份...说些不足的地方,SQL 写了一坨,理解起来会有点费劲,这也和使用的数据库工具有关系。我使用的 MySQL 5.6 版本,如果在该版本里面就支持使用一些新语法、函数,结果会更好。
springboot mybatis项目,想要打印sql语句,可以直接下载Mybatis Log Plugin插件,下载后重启下idea,然后配置文件中添加logging.level.cn=debug配置即可...注意,这里的cn,是个包名,如果你的包名是com开头的,换成com即可。 然后debug项目时,就会看到执行的sql语句。
我们在上一篇文章SQL 打印矩阵 (一)中介绍了怎么用 SQL 打印 5 x 5 的矩阵,今天的内容仍旧围绕这个主题,只不过规则稍有点不同。 先来看看要实现的效果。...完整的规则: 有一张 5 x 5 的表格,我们要往这张表格中填充 1~25 的数字; 如果是奇数行,则从左到右填充数字;如果是偶数行,就需要按从右到左的顺序填入数字。...row_number () over () AS seq FROM x0 ORDER BY group_no, ordered) SELECT * FROM x1 注意,我们在 SQL...中加入了一个新字段 seq,seq 存储的是 1~25 的自然数,它将作为后面步骤的行转列的依据。...执行上面的 SQL ,部分结果如下。
使用 SQL 输出 5 x 5 的矩阵,矩阵的值由 1~25 填充,实现的效果如下表所示。...后再向上取整得到的是同一个值; 排在同一列的数是因为它们本身对 5 求余的结果一致; 同一行的数从左到右是递增;同样,同一列的数从上到下也是递增的。...因此,我们可以将 1~25 的数除 5 后再向上取整得到的值作为分组的依据;同时,1~25 对 5 求余结果为 1 的放到 A 列,结果为 2 的放到 B 列,结果为 3 对应的是 C 列,结果为 4...对应的是 D 列,E 列则放结果为 0 的数。...第一步,生成 1~25 的数。 可借助数字表或者使用递归达到此目的,本文使用的是递归的方式。
MYSql在表(table_name)的指定位置(exist_field_name之后)添加字段(字段名,类型(长度): new_field_name,type_name(length)):alter
SQL命令 INTO 一个SELECT子句,指定在宿主变量中存储选定的值。 大纲 INTO :hostvar1 [,:hostvar2]......INTO子句使用在SELECT-ITEM列表中检索(或计算)的值来设置相应的输出主机变量,从而使这些返回的数据值可用于ObjectScript。...在嵌入式SQL中,可以通过声明游标,然后为每一连续行发出FETCH命令,从多行返回数据。INTO子句主机变量可以在DECLARE查询中指定,也可以在FETCH中指定。...然后,ObjectScript写入命令使用这些变量。在从嵌入式SQL返回时立即测试SQLCODE变量被认为是很好的编程实践。如果SQLCODE不等于0,则将输出主机变量的值初始化为空字符串。...} } 下面的嵌入式SQL示例将逗号分隔的主机变量列表(用于非字段值)和主机变量数组(用于字段值)组合在一起: ClassMethod Into9() { &sql( SELECT
$rawSql : $this->getRawSql()]; } 找到 $rawSql = $this->getRawSql(); 打印就可以得到Sql
在springboot+mybatis项目中,我们有时候需要打印mybatis执行的SQL语句,默认是不打印的,这不利于我们调试。
Province(name=u'河南', code='0371') >>> p.save() >>> print connection.queries [{u'time': u'0.439', u'sql...u"INSERT INTO `core_province` (`name`, `code`) VALUES ('\u5e7f\u5dde', 20)"}, {u'time': u'0.056', u'sql...从结果中可以看出结果是一个列表(包含了我之前的测试语句) 如果只想拿到最后一条查询语句可进行切片操作 >>> print connection.queries[-1:] [{u'time': u'0.102...sql语句 在Django项目的settings.py文件中,在最后复制粘贴如下代码: ?...其实就是为你的Django项目配置上一个名为django.db.backends的logger实例即可查看翻译后的SQL语句。
-- 打印查询语句 --> 方法二: # 打印dao包下面的日志 在配置文件中加:包名改为自已的就行。
SQL通配符字符 通配符字符用于替代字符串中的一个或多个字符。通配符字符与LIKE运算符一起使用。LIKE运算符用于在WHERE子句中搜索列中的指定模式。...表示一个单个字符 [] 表示括号内的任何单个字符 ^ 表示括号内不在括号内的任何字符 - 表示指定范围内的任何单个字符 {} 表示任何转义字符 *不支持在PostgreSQL和MySQL数据库中。...演示数据库 以下是示例中使用的 Customers 表的一部分: CustomerID CustomerName ContactName Address City PostalCode Country...,如果括号内的任何字符都匹配。...t 可以找到 hot、hat 和 hit [] 表示括号内的任何单个字符 hoat 可以找到 hot 和 hat,但不会找到 hit ! 表示括号内不在括号内的任何字符 h!
SQL命令 FETCH 重新定位游标,并从中检索数据。...游标名称是在DECLARE命令中指定的。 游标名称区分大小写。 INTO host-variable-list - 可选—将取操作列中的数据放入局部变量中。...在未打开的游标上尝试FETCH会导致SQLCODE -102错误。 作为SQL语句,这只在嵌入式SQL中得到支持。 通过ODBC使用ODBC API支持等价的操作。...%ROWID值与之前的值(如果有的话)保持不变。 没有声明游标的嵌入式SQL SELECT不会设置%ROWID。 在完成一个简单的SELECT语句后,%ROWID值是不变的。..."SQL关闭游标错误:",SQLCODE," ",%msg q } } 下面的嵌入式SQL示例显示了一个无参数的FOR循环调用FETCH,从名为EmpCursor的游标检索数据
此事务可以是由START TRANSACTION或SAVEPOINT发起的SQL事务。它也可以是由TSTART发起的ObjectScript事务。 事务嵌套对%INTRANSACTION没有影响。...$TLEVEL指示事务是否正在进行以及当前的事务级别数。...&sql(SET TRANSACTION %COMMITMODE EXPLICIT) n SQLCODE &sql(%INTRANSACTION) w "SetTran %INTRANS...&sql(SAVEPOINT a) n SQLCODE &sql(%INTRANSACTION) w "Savepoint %INTRANS SQLCODE=",SQLCODE,...&sql(COMMIT) n SQLCODE &sql(%INTRANSACTION) w "After Commit %INTRANS SQLCODE=",SQLCODE,"
SQL命令 SAVEPOINT 在事务中标记一个点。 大纲 SAVEPOINT pointname 参数 pointname - 保存点的名称,指定为标识符。...保存点名称可以是分隔的标识符。 如果指定的保存点没有点名,或者指定的点名不是有效的标识符或SQL保留字,则会发出运行时SQLCODE-301错误。...如果pointname不存在或已经回滚,此命令将回滚整个事务,将$TLEVEL重置为0,并释放所有锁。 回滚回滚当前事务期间完成的所有工作,回滚自START TRANSACTION以来完成的工作。...事务处理与使用SQL语句START transaction、SAVEPOINT和COMMIT的SQL事务处理不同,也不兼容。...ObjectScript和InterSystems SQL都提供了对嵌套事务的有限支持。 ObjectScript事务处理不与SQL锁控制变量交互; 特别需要关注的是SQL锁升级变量。
DISTINCT子句应用于SELECT语句的结果集。它将每个不同(唯一)值返回的行数限制为一个任意行。如果未指定DISTINCT子句,则默认情况下显示满足选择条件的所有行。...简单查询中没有意义,因为在这种类型的嵌入式SQL中,SELECT始终只返回一行数据。...未使用优化. */ 可以使用管理门户优化包含DISTINCT子句的查询的查询性能。依次选择系统管理、配置、SQL和对象设置、SQL。...(此优化也适用于GROUP BY子句。)。默认值为“否”。 此默认设置按字母值的大写排序规则对字母值进行分组。此优化利用选定字段的索引。因此,只有在一个或多个选定字段存在索引时才有意义。...CLOSE EmpCursor3 ) } 查询行为的这种更改仅适用于基于游标的嵌入式SQL SELECT查询。
SQL命令 UNLOCK 解锁表 大纲 UNLOCK [TABLE] tablename IN EXCLUSIVE MODE [IMMEDIATE] UNLOCK [TABLE] tablename...描述 UNLOCK命令用来解锁被LOCK命令锁定的SQL表。 此表必须是已存在的表,您对其具有必要的特权。 如果tablename是临时表,则命令执行成功,但不执行任何操作。...即使没有锁被持有,UNLOCK命令也会成功完成。 可以使用LOCK多次锁定一个表; 必须显式解锁表,解锁次数为表被显式锁定的次数。 权限 该命令为特权操作。...可以通过调用%CHECKPRIV命令来确定当前用户是否具有必要的特权。...通过调用$SYSTEM.SQL.Security.CheckPrivilege()方法,可以确定指定的用户是否具有必要的表级特权。
库 DB SHOW DATABASES 数据库列表 USE 库名 切换/使用某数据库 CREATE DATABASE 库名 创建新库 DROP DATABAS...
1. sql 主要命令描述 所有 MySQL 命令的列表:注意,所有文本命令必须在一行的开头,并且以分号“;”结束 命令 缩写 命令说明 示例 ? ? “help”的同义词。 mysql> ?...clear c 清除当前输入的语句。一般用于多行命令。 mysql> c connect r 重新连接到服务器。可选参数是 db 和 host。连接 ID 将会改变。...mysql> notee print p 打印当前命令。 mysql> SHOW TABLESp; prompt R 改变你的 MySQL 提示符。...mysql> q rehash # 重建完整的 hash(用于自动完成名称)。 mysql> # source . 执行一个 SQL 脚本文件。使用一个文件名作为参数。...SQL约束(Constraints) 不同数据库的约束不同,详细查看菜鸟教程的API描述。 SQL 约束用于规定表中的数据规则。 如果存在违反约束的数据行为,行为会被约束终止。
SQL命令 TOP 指定返回多少行的SELECT子句。...它用于在这些情况下支持使用ORDER BY子句,满足在子查询或CREATE VIEW中使用的查询中ORDER BY子句必须与TOP子句配对的要求。 TOP ALL不限制返回的行数。...描述 可选的TOP子句出现在SELECT关键字和可选的DISTINCT子句之后,以及第一个选择项之前。 TOP关键字用于动态SQL和基于指针的嵌入式SQL。...因此,使用TOP 7和TOP ALL的相同查询将生成两个不同的缓存查询。 TOP和ORDER BY TOP通常用于带ORDER BY子句的SELECT中。...它用于在这些情况下支持使用ORDER BY子句,以满足在子查询或CREATE VIEW查询中ORDER BY子句必须与TOP子句配对的要求。 TOP ALL不限制返回的行数。
领取专属 10元无门槛券
手把手带您无忧上云